Item Description
.color-picker { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; justify-content: center; } .color-option { width: 28px; height: 28px; border-radius: 50%; cursor: pointer; border: 2px solid transparent; transition: all 0.3s; box-shadow: 0 2px 5px rgba(0,0,0,0.3); } .color-option.active { border-color: var(--light); transform: scale(1.15); box-shadow: 0 0 10px currentColor; } .cover-shape-selector { display: flex; gap: 10px; margin-top: 10px; } .cover-shape-btn { flex: 1; padding: 8px; border-radius: 8px; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); cursor: pointer; text-align: center; transition: var(--transition); color: var(--light); font-size: 0.8rem; } .cover-shape-btn.active { background: var(--primary); color: white; box-shadow: 0 0 10px var(--primary); } .background-upload-btn { background: rgba(255, 255, 255, 0.1); border: none; color: white; padding: 10px 16px; border-radius: 20px; font-size: 0.8rem; cursor: pointer; display: flex; align-items: center; gap: 6px; transition: var(--transition); font-weight: 600; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); width: 100%; justify-content: center; margin-top: 10px; } .background-upload-btn:hover { background: rgba(255, 255, 255, 0.15); transform: translateY(-2px); box-shadow: 0 0 10px var(--primary); } .opacity-slider-container { margin-top: 10px; } .opacity-slider { width: 100%; height: 6px; -webkit-appearance: none; background: rgba(255, 255, 255, 0.1); border-radius: 5px; outline: none; } .opacity-slider::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; background: var(--primary); border-radius: 50%; cursor: pointer; transition: var(--transition); box-shadow: 0 0 5px var(--primary); } .opacity-value { text-align: center; margin-top: 5px; font-size: 0.8rem; color: var(--gray); } /* - */ .mini-player { position: fixed; bottom: 20px; right: 20px; width: 300px; height: 80px; background: rgba(10, 10, 20, 0.9); backdrop-filter: blur(20px); border-radius: 12px; box-shadow: var(--shadow); border: 1px solid rgba(255, 255, 255, 0.1); display: none; z-index: 1000; overflow: hidden; cursor: move; } .mini-player.active { display: flex; } .mini-player-content { display: flex; align-items: center; width: 100%; height: 100%; padding: 10px; } .mini-album-art { width: 60px; height: 60px; border-radius: 8px; margin-right: 10px; background: var(--vinyl-color); display: flex; align-items: center; justify-content: center; color: white; font-size: 1.2rem; position: relative; overflow: hidden; flex-shrink: 0; } /* - */ .mini-album-art.playing { animation: none !important; } .mini-album-art.square { border-radius: 8px; } .mini-album-art::before { content: ''; position: absolute; width: 20px; height: 20px; background: #000; border-radius: 50%; z-index: 2; } .mini-player-info { flex: 1; min-width: 0; margin-right: 10px; } .mini-song-title { font-size: 0.8rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--light); } .mini-song-artist { font-size: 0.7rem; color: var(--gray); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .mini-player-controls { display: flex; align-items: center; gap: 5px; } .mini-control-btn { background: rgba(255, 255, 255, 0.1); border: none; color: var(--light); width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: var(--transition); font-size: 0.7rem; } .mini-control-btn:hover { background: rgba(255, 255, 255, 0.2); } .mini-play-pause { background: var(--primary); color: white; } .mini-play-pause:hover { background: var(--primary-dark); } .mini-visualizer { height: 20px; width: 100%; display: flex; align-items: flex-end; justify-content: center; gap: 1px; margin-top: 5px; } .mini-visualizer-bar { width: 2px; background: var(--primary); border-radius: 1px 1px 0 0; transition: height 0.2s ease; box-shadow: 0 0 3px var(--primary); } .mini-progress-bar { position: absolute; bottom: 0; left: 0; width: 100%; height: 3px; background: rgba(255, 255, 255, 0.1); cursor: pointer; } .mini-progress { height: 100%; width: 0%; background: var(--primary); transition: width 0.1s linear; } /* / */ .playlist-save-load { display: flex; gap: 8px; padding: 10px; border-top: 1px solid rgba(255, 255, 255, 0.1); } .playlist-save-btn, .playlist-load-btn { flex: 1; background: rgba(255, 255, 255, 0.1); border: none; color: var(--light); padding: 8px 12px; border-radius: 10px; font-size: 0.75rem; cursor: pointer; transition: var(--transition); display: flex; align-items: center; justify-content: center; gap: 5px; } .playlist-save-btn:hover, .playlist-load-btn:hover { background: rgba(255, 255, 255, 0.15); } /* */ .copy-link-btn { background: rgba(255, 255, 255, 0.1); border: none; color: white; padding: 10px 16px; border-radius: 20px; font-size: 0.8rem; cursor: pointer; display: flex; align-items: center; gap: 6px; transition: var(--transition); font-weight: 600; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); width: 100%; justify-content: center; margin-top: 10px; } .copy-link-btn:hover { background: rgba(255, 255, 255, 0.15); transform: translateY(-2px); box-shadow: 0 0 10px var(--primary); } /* */ ::-webkit-scrollbar { width: 4px; } ::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.05); border-radius: 10px; } ::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 10px; } /* */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeIn 0.5s ease forwards; } /* */ @media (max-width: 768px) { .music-player { flex-direction: column; max-height: 95vh; } .player-sidebar { width: 100%; height: 40%; border-left: none; border-top: 1px solid rgba(255, 255, 255, 0.1); } .album-art-container { width: 198px; height: 198px; } .equalization-presets { grid-template-columns: 1fr; } .player-footer { flex-wrap: wrap; gap: 10px; justify-content: center; } .color-picker { gap: 6px; } .color-option { width: 24px; height: 24px; } .mini-player { width: 250px; height: 70px; } } @media (max-height: 600px) { .music-player { max-height: 95vh; } .album-art-container { width: 162px; height: 162px; } .song-title { font-size: 1.1rem; } } </style> </head> <body> <div class="music-player" id="music-player"> <div class="player-main"> <div class="player-header"> <p id="header-text"> </p> <div class="window-controls"> <button class="window-control-btn minimize-btn" id="minimize-btn" title=""> <i class="fas fa-minus"></i> </button> <button class="window-control-btn close-btn" id="close-btn" title=""> <i class="fas fa-times"></i> </button> </div> </div> <div class="player-content"> <div class="album-art-container circle" id="album-art-container"> <div class="vinyl-record" id="vinyl-record"> <div class="vinyl-grooves"></div> <div class="vinyl-label" id="vinyl-label">MUSIC PLAYER</div> <div class="vinyl-center"></div> </div> </div> <div class="song-info"> <div class="song-title" id="song-title"> </div> <div class="song-artist" id="song-artist"> </div> <div class="song-album" id="song-album"> </div> </div> <div class="visualizer" id="visualizer"> <!-- --> </div> <div class="progress-area"> <div class="progress-bar" id="progress-bar"> <div class="progress" id="progress"> <div class="progress-handle"></div> </div> </div> <div class="timer"> <span class="current" id="current-time">0:00</span> <span class="duration" id="duration">0:00</span> </div> </div>
Features
Main Features:
1. Appearance and design
Dark neon theme with gradients and glass effect (glassmorphism)
Realistic vinyl record animation with rotation and engraving
Responsive design for mobile devices
The effect of transparency with the ability to adjust
2. Main functions
Playback of local audio files (supports multiple upload)
A playlist with the ability to manage tracks
8-band graphic equalizer with 25 presets
Audio visualizer with animated bars
Mini-player mode
Dragging the player window
3. Controls
Standard buttons: play/pause, stop, next/previous
Volume control with quick adjustment buttons
Repeat and random playback modes
A progress bar with the ability to rewind
4. Technical capabilities
Using the Web Audio API for audio analysis
The hotkey system
Saving a playlist to localStorage and JSON files
Customize the color theme (16+ colors)
Choosing the shape of the cover (circle/square)
Support for selecting an audio output device
5. Additional functions
Modal settings and help windows
Developer Support Button
Track time indication
Animations and transitions
Drag & Drop to move the window
6. HTML/CSS/JS structure
HTML: Structured markup with semantic classes
CSS: Modern CSS variables, flexbox, grid, animations
JavaScript: Modular structure, event handling, working with files
7. Language support
Russian-language interface with localization support
8. Implementation features
Handling playback errors
Automatic transition to the next track
Support for both local and online tracks
Customization of appearance
It is a modern, fully functional music player that can be launched in any browser. The code is well organized, contains detailed comments, and uses modern web technologies.
All Reviews
Verified source code
Free support included
100% Satisfaction guarantee
Download code immediately after purchase
Published by the developer
Quality guarantee for your satisfaction
Support: info@sellanycode.com or live chat
All Questions
Information
| Category | Scripts & Code / JavaScript |
| First Release | 1 December 2025 |
| Last updated | 1 December 2025 |
| Files included | .html, .css, Javascript .js, .cs, .c |
| Framework HTML/CSS | Skeleton |
| Framework Javascript | Node.js |
| File Size | 1 MB |
| Frameworks | JavaScript |
Start Selling Your Code. Enjoy 80% Revenue Share, Fast Payouts Without Restrictions!
START SELLING NOWItem Purchase
MUSIC Desktop ($35.00)
*Price does not include processing fee