This commit is contained in:
2026-04-29 07:39:29 +02:00
parent 41a5472582
commit b866845b6a
40 changed files with 71735 additions and 111 deletions

View File

@@ -851,7 +851,8 @@ input:focus-visible,
"artwork progress"
"artwork controls"
"artwork volume"
"quickpick quickpick";
"quickpick quickpick"
"legal legal";
gap: 18px 28px;
align-items: start;
padding: clamp(18px, 3vw, 34px);
@@ -1010,6 +1011,36 @@ header {
justify-content: center;
}
.legal-links {
grid-area: legal;
display: flex;
justify-content: flex-end;
align-items: center;
min-width: 0;
}
.legal-link {
color: var(--text-muted);
font-size: 0.84rem;
font-weight: 700;
letter-spacing: 0.01em;
text-decoration: none;
border-bottom: 1px solid transparent;
transition: color 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
}
.legal-link:hover {
color: var(--text-main);
border-bottom-color: rgba(var(--accent-rgb), 0.5);
transform: translateY(-1px);
}
.legal-link:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 4px;
border-bottom-color: transparent;
}
.artwork-container {
width: min(100%, 360px);
aspect-ratio: 1;
@@ -1558,6 +1589,10 @@ input[type=range]::-webkit-slider-thumb {
text-align: right;
}
.install-prompt-banner {
display: none;
}
.hidden {
display: none !important;
}
@@ -1854,7 +1889,7 @@ input[type=range]::-webkit-slider-thumb {
min-height: 0;
height: auto;
max-height: min(82vh, 720px);
grid-template-rows: auto auto auto auto auto minmax(240px, 1fr);
grid-template-rows: auto auto auto auto auto minmax(0, 1fr);
padding: 18px;
border-radius: 24px;
transform: translateY(calc(100% + 24px));
@@ -1902,7 +1937,7 @@ input[type=range]::-webkit-slider-thumb {
min-height: 100dvh;
width: 100%;
grid-template-columns: 1fr;
grid-template-rows: auto minmax(0, 1fr) auto auto auto auto auto;
grid-template-rows: auto minmax(0, 1fr) auto auto auto auto auto auto;
grid-template-areas:
"header"
"artwork"
@@ -1910,9 +1945,10 @@ input[type=range]::-webkit-slider-thumb {
"progress"
"controls"
"volume"
"quickpick";
"quickpick"
"legal";
gap: 9px;
padding: 10px 12px 12px;
padding: 10px 12px 108px;
border-radius: 22px;
overflow: hidden;
}
@@ -1968,13 +2004,17 @@ input[type=range]::-webkit-slider-thumb {
}
.station-library {
top: 8px;
left: 8px;
right: 8px;
bottom: 8px;
max-height: 86vh;
height: calc(100dvh - 16px);
max-height: calc(100dvh - 16px);
padding: 15px;
border-radius: 22px;
gap: 11px;
grid-template-rows: auto auto auto auto auto minmax(0, 1fr);
}
.library-top h2 {
@@ -1994,6 +2034,13 @@ input[type=range]::-webkit-slider-thumb {
max-height: 240px;
}
.library-list {
-webkit-overflow-scrolling: touch;
mask-image: none;
padding-right: 0;
padding-bottom: 10px;
}
.library-tab {
min-width: 0;
min-height: 34px;
@@ -2216,6 +2263,79 @@ input[type=range]::-webkit-slider-thumb {
max-width: 100%;
}
.legal-links {
justify-content: center;
padding-top: 2px;
}
.legal-link {
font-size: 0.8rem;
}
.install-prompt-banner {
display: flex;
position: fixed;
left: 12px;
right: 12px;
bottom: calc(12px + env(safe-area-inset-bottom));
z-index: 9999;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 10px 12px;
max-width: 640px;
margin: 0 auto;
border: 1px solid rgba(var(--accent-rgb), 0.22);
border-radius: 16px;
background:
linear-gradient(145deg, rgba(var(--theme-panel-rgb), 0.94), rgba(255,255,255,0.06)),
linear-gradient(135deg, rgba(var(--accent-rgb), 0.14), rgba(var(--accent-3-rgb), 0.1));
box-shadow: 0 16px 38px rgba(0, 0, 0, 0.34);
backdrop-filter: blur(20px) saturate(130%);
}
.install-prompt-banner.hidden {
display: none;
}
.install-prompt-copy {
min-width: 0;
display: flex;
flex-direction: column;
gap: 2px;
}
.install-prompt-copy strong {
color: var(--text-main);
font-size: 0.92rem;
font-weight: 850;
}
.install-prompt-copy span {
color: var(--text-muted);
font-size: 0.76rem;
line-height: 1.2;
}
.install-prompt-actions {
display: flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
}
.install-prompt-action,
.install-prompt-dismiss {
min-height: 36px;
padding: 0 11px;
border-radius: 11px;
}
.install-prompt-action {
color: #0c1819;
background: var(--accent);
}
.overlay {
align-items: end;
padding: 0;