soundwave-htmx / style.css
PsyEyes's picture
Давай сделаем красивый музыкальный плеер на HTMX и Tailwind визуально похожий на Spotify. Что нужно:
7421366 verified
/* Global Styles */
:root {
--primary-color: #1DB954;
--secondary-color: #191414;
--background-color: #121212;
--sidebar-color: #000000;
--player-color: #181818;
}
body {
margin: 0;
padding: 0;
box-sizing: border-box;
background-color: var(--background-color);
color: white;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
height: 100vh;
overflow: hidden;
}
/* Scrollbar Styling */
.playlist-container::-webkit-scrollbar {
width: 8px;
}
.playlist-container::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.05);
border-radius: 4px;
}
.playlist-container::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.1);
border-radius: 4px;
}
.playlist-container::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.2);
}
/* Track Item Styles */
.track-item {
transition: all 0.2s ease;
cursor: grab;
}
.track-item:active {
cursor: grabbing;
}
.track-item.drag-over {
border-top: 2px solid var(--primary-color);
}
.track-item.drag-over-after {
border-bottom: 2px solid var(--primary-color);
}
/* Progress Bar Customization */
.progress-bar {
-webkit-appearance: none;
appearance: none;
height: 4px;
background: rgba(255, 255, 255, 0.3);
outline: none;
border-radius: 2px;
}
.progress-bar::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 12px;
height: 12px;
border-radius: 50%;
background: var(--primary-color);
cursor: pointer;
opacity: 0;
transition: opacity 0.2s;
}
.progress-bar:hover::-webkit-slider-thumb {
opacity: 1;
}
/* Volume Slider Customization */
.volume-slider {
-webkit-appearance: none;
appearance: none;
height: 4px;
background: rgba(255, 255, 255, 0.3);
outline: none;
border-radius: 2px;
}
.volume-slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 12px;
height: 12px;
border-radius: 50%;
background: white;
cursor: pointer;
}
/* Button Hover Effects */
button:hover {
transform: scale(1.05);
transition: transform 0.2s;
}
/* Responsive Design */
@media (max-width: 768px) {
.playlist-header {
display: none;
}
.track-item {
padding: 1rem 0;
}
#player {
padding: 1rem;
}
#player .grid {
grid-template-columns: 1fr;
gap: 1rem;
}
#player > div:nth-child(2) {
order: 3;
}
#player > div:nth-child(3) {
order: 2;
}
}