Add spotify queue
Deploy HEOS panel / deploy (push) Successful in 30s

This commit is contained in:
franzz committed 2026-10-20 15:44:56 +02:00
1 parent 6c76121863
commit 6bee9bd9a3
13 files changed
+230 -5

No files matched your search

+33
View File
@@ -133,6 +133,7 @@ svg { width: 22px; height: 22px; fill: currentColor; }
.ghost { background: transparent; border: 1px solid var(--outline); color: var(--muted); box-shadow: none; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes blink { 0%, 80%, 100% { opacity: .2; } 40% { opacity: 1; } }
@keyframes rise { from { transform: translateY(100%); opacity: .4; } }
/* Header */
@@ -302,6 +303,38 @@ header .logo { height: 44px; width: auto; display: block; margin: var(--space-xs
.toggle .leave { display: none; }
/* Card - Spotify Queue */
.queue { background: var(--shade); border-radius: var(--radius-lg); }
.queue summary {
display: flex; align-items: center; justify-content: space-between; gap: var(--space-md);
min-height: 44px; padding: 0 var(--space-md);
font-size: var(--text-sm); font-weight: 600; color: var(--muted);
list-style: none; cursor: pointer;
}
.queue summary::-webkit-details-marker { display: none; }
.queue-label { display: flex; align-items: center; gap: var(--space-sm); }
.queue-label svg { width: 16px; height: 16px; }
.queue summary .chevron { width: 16px; height: 16px; transition: transform .2s ease-out; }
.queue[open] summary .chevron { transform: rotate(90deg); }
.queue-list {
list-style: none; margin: 0;
padding: 0 var(--space-md) var(--space-md);
display: flex; flex-direction: column; gap: var(--space-sm);
}
.queue-item { display: flex; align-items: center; gap: var(--space-md); min-width: 0; }
.queue-item .cover { width: 40px; height: 40px; border-radius: 8px; }
.queue-item .track { flex: 1; }
.queue-item .song { font-size: var(--text-sm); }
.queue-item .artist { font-size: var(--text-xs); }
.queue-time { flex: 0 0 auto; font-size: var(--text-xs); color: var(--muted); font-variant-numeric: tabular-nums; }
.queue-note { font-size: var(--text-sm); color: var(--muted); }
.queue-loading { display: block; width: 28px; height: 28px; margin: 0 auto; }
.queue-loading path { animation: blink 1.2s ease-in-out infinite; }
.queue-loading path:nth-child(2) { animation-delay: .2s; }
.queue-loading path:nth-child(3) { animation-delay: .4s; }
/* Card - AVR Input */
.input-select {