Reproductor de Música Tema Oscuro

Intermedio

Un elegante reproductor de música con tema oscuro, acentos neón, efectos brillantes y diseño moderno de UI oscura.

Vista Previa en Vivo

Implementación del Código

HTML
<div class="dark-player">
  <div class="player-header">
    <div class="album-art">
      <div class="album-cover">
        <div class="vinyl-record">
          <div class="vinyl-center"></div>
        </div>
        <div class="play-indicator"></div>
      </div>
    </div>
    
    <div class="track-details">
      <h2 id="track-title">Sueños de Neón</h2>
      <p id="track-artist">Colectivo Synthwave</p>
      <div class="genre-tag">Electrónica</div>
    </div>
  </div>
  
  <div class="waveform-container">
    <div class="waveform">
      <div class="wave-bar" style="height: 20%"></div>
      <div class="wave-bar" style="height: 45%"></div>
      <div class="wave-bar" style="height: 30%"></div>
      <div class="wave-bar" style="height: 60%"></div>
      <div class="wave-bar" style="height: 80%"></div>
      <div class="wave-bar" style="height: 40%"></div>
      <div class="wave-bar" style="height: 70%"></div>
      <div class="wave-bar" style="height: 25%"></div>
      <div class="wave-bar" style="height: 55%"></div>
      <div class="wave-bar" style="height: 35%"></div>
      <div class="wave-bar" style="height: 65%"></div>
      <div class="wave-bar" style="height: 50%"></div>
    </div>
  </div>
  
  <div class="progress-section">
    <div class="time-display">
      <span id="current-time">2:14</span>
      <span id="total-time">4:32</span>
    </div>
    <div class="progress-container">
      <div class="progress-track" id="progress-track">
        <div class="progress-fill" id="progress-fill"></div>
        <div class="progress-thumb" id="progress-thumb"></div>
      </div>
    </div>
  </div>
  
  <div class="control-panel">
    <div class="secondary-controls">
      <button class="control-btn" id="shuffle-btn" aria-label="Aleatorio">
        <svg viewBox="0 0 24 24" fill="currentColor">
          <path d="M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z"/>
        </svg>
      </button>
      
      <button class="control-btn" id="repeat-btn" aria-label="Repetir">
        <svg viewBox="0 0 24 24" fill="currentColor">
          <path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z"/>
        </svg>
      </button>
    </div>
    
    <div class="main-controls">
      <button class="control-btn" id="prev-btn" aria-label="Anterior">
        <svg viewBox="0 0 24 24" fill="currentColor">
          <path d="M6 6h2v12H6zm3.5 6l8.5 6V6z"/>
        </svg>
      </button>
      
      <button class="play-btn" id="play-btn" aria-label="Reproducir/Pausar">
        <svg class="play-icon" viewBox="0 0 24 24" fill="currentColor">
          <path d="M8 5v14l11-7z"/>
        </svg>
        <svg class="pause-icon" viewBox="0 0 24 24" fill="currentColor" style="display: none;">
          <path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/>
        </svg>
      </button>
      
      <button class="control-btn" id="next-btn" aria-label="Siguiente">
        <svg viewBox="0 0 24 24" fill="currentColor">
          <path d="M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z"/>
        </svg>
      </button>
    </div>
    
    <div class="volume-control">
      <button class="control-btn" id="volume-btn" aria-label="Volumen">
        <svg viewBox="0 0 24 24" fill="currentColor">
          <path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"/>
        </svg>
      </button>
      <div class="volume-slider">
        <input type="range" id="volume-range" min="0" max="100" value="75">
      </div>
    </div>
  </div>
  
  <div class="playlist-dark">
    <h3>A Continuación</h3>
    <div class="track-list">
      <div class="track-item active" data-title="Sueños de Neón" data-artist="Colectivo Synthwave" data-duration="4:32">
        <div class="track-info">
          <span class="track-name">Sueños de Neón</span>
          <span class="track-artist">Colectivo Synthwave</span>
        </div>
        <span class="track-duration">4:32</span>
      </div>
      <div class="track-item" data-title="Ciudad Cibernética" data-artist="Pulso Digital" data-duration="3:58">
        <div class="track-info">
          <span class="track-name">Ciudad Cibernética</span>
          <span class="track-artist">Pulso Digital</span>
        </div>
        <span class="track-duration">3:58</span>
      </div>
      <div class="track-item" data-title="Noches Eléctricas" data-artist="Futuro Retro" data-duration="5:12">
        <div class="track-info">
          <span class="track-name">Noches Eléctricas</span>
          <span class="track-artist">Futuro Retro</span>
        </div>
        <span class="track-duration">5:12</span>
      </div>
    </div>
  </div>
  
  <audio id="audio-element"></audio>
</div>

Características del Fragmento

Diseño Responsivo: Sí
Soporte para Modo Oscuro: Sí
Categoría: content-cards
Nivel de Dificultad: Intermedio

Compatibilidad del Navegador

🟢
chrome 60+
🟠
firefox 55+
🔵
safari 10+
🟦
edge 15+