Spaces:
Running
Running
/* Global Styles */ | |
:root { | |
--primary-bg: #1f036b; | |
--card-bg: rgba(37, 41, 66, 0.3); | |
--accent-color: rgba(108, 99, 255, 0.8); | |
--text-color: rgba(255, 255, 255, 0.9); | |
--shadow-color: rgba(0, 0, 0, 0.2); | |
--glass-border: rgba(255, 255, 255, 0.1); | |
--glass-highlight: rgba(255, 255, 255, 0.07); | |
} | |
* { | |
margin: 0; | |
padding: 0; | |
box-sizing: border-box; | |
} | |
body { | |
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; | |
background-color: var(--primary-bg); | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
min-height: 100vh; | |
color: var(--text-color); | |
transition: background-color 0.3s ease; | |
} | |
.player-container { | |
width: 100%; | |
max-width: 400px; | |
padding: 20px; | |
} | |
.player-card { | |
background: var(--card-bg); | |
backdrop-filter: blur(12px); | |
-webkit-backdrop-filter: blur(12px); | |
border-radius: 30px; | |
padding: 25px; | |
box-shadow: | |
0 10px 30px var(--shadow-color), | |
inset 0 1px 1px var(--glass-highlight), | |
0 0 0 1px var(--glass-border); | |
position: relative; | |
overflow: hidden; | |
} | |
.player-card::before { | |
content: ''; | |
position: absolute; | |
top: 0; | |
left: -50%; | |
width: 100%; | |
height: 100%; | |
background: linear-gradient( | |
90deg, | |
transparent, | |
var(--glass-highlight), | |
transparent | |
); | |
transform: skewX(-15deg); | |
pointer-events: none; | |
} | |
.visualizer-container { | |
width: 100%; | |
height: 200px; | |
margin-bottom: 25px; | |
border-radius: 20px; | |
overflow: hidden; | |
background-color: rgba(0, 0, 0, 0.15); | |
box-shadow: | |
inset 0 2px 5px rgba(0, 0, 0, 0.2), | |
0 0 0 1px var(--glass-border); | |
position: relative; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
} | |
canvas { | |
width: 100%; | |
height: 100%; | |
position: absolute; | |
left: 0; | |
top: 0; | |
} | |
.controls { | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
margin-bottom: 25px; | |
position: relative; | |
z-index: 1; | |
} | |
.play-button { | |
width: 65px; | |
height: 65px; | |
border-radius: 50%; | |
background: var(--accent-color); | |
backdrop-filter: blur(5px); | |
-webkit-backdrop-filter: blur(5px); | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
box-shadow: | |
0 5px 15px rgba(108, 99, 255, 0.3), | |
inset 0 1px 1px rgba(255, 255, 255, 0.2); | |
border: 1px solid rgba(108, 99, 255, 0.4); | |
} | |
.play-button:hover { | |
transform: scale(1.05); | |
background: rgba(108, 99, 255, 0.9); | |
box-shadow: | |
0 8px 20px rgba(108, 99, 255, 0.4), | |
inset 0 1px 1px rgba(255, 255, 255, 0.3); | |
} | |
.play-button:active { | |
transform: scale(0.98); | |
} | |
.play-button svg { | |
width: 30px; | |
height: 30px; | |
fill: var(--text-color); | |
filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.2)); | |
} | |
.pause-icon { | |
display: none; | |
} | |
.track-info { | |
text-align: center; | |
position: relative; | |
z-index: 1; | |
} | |
.station-name { | |
font-size: 1.2em; | |
font-weight: 600; | |
display: block; | |
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); | |
letter-spacing: 0.5px; | |
background: linear-gradient(to bottom, | |
rgba(255, 255, 255, 0.95), | |
rgba(255, 255, 255, 0.8) | |
); | |
-webkit-background-clip: text; | |
-webkit-text-fill-color: transparent; | |
} |