diff options
Diffstat (limited to 'static/deck.css')
| -rw-r--r-- | static/deck.css | 124 |
1 files changed, 119 insertions, 5 deletions
diff --git a/static/deck.css b/static/deck.css index 5c4af84..40d6ac8 100644 --- a/static/deck.css +++ b/static/deck.css @@ -3,6 +3,8 @@ html, body { height: 100%; } body { + display: flex; + flex-direction: column; background: var(--udt-base); color: var(--udt-text); font: 400 14px/20px "Noto Sans", system-ui, sans-serif; @@ -11,16 +13,32 @@ body { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; - overflow-y: auto; - overflow-x: hidden; + overflow: hidden; +} + +.tabs { flex: none; display: flex; gap: 6px; padding: 8px 14px 0; } +.tabs button { + font: inherit; + color: var(--udt-subtext0); + background: transparent; + border: 1px solid transparent; + border-radius: 10px; + padding: 8px 18px; + cursor: pointer; +} +.tabs button.active { + color: var(--udt-text); + background: var(--udt-surface0); + border-color: var(--udt-surface1); } -#grid { +#tab-body { flex: 1; min-height: 0; overflow: auto; } +.tab-panel { padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); } - -.grid-stack { min-height: 100dvh; } +.tab-panel[hidden] { display: none; } +.tab-content { min-height: 100%; } .panel { min-height: 0; min-width: 0; } @@ -167,3 +185,99 @@ select { .good { color: var(--udt-green); } .bad { color: var(--udt-red); } .warn { color: var(--udt-yellow); } + +/* OBS stream-deck tab */ +.deck { display: flex; flex-direction: column; gap: 14px; } +.deck-transport { display: flex; gap: 12px; } + +.deck-btn { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + gap: 12px; + min-height: 92px; + padding: 12px; + font: inherit; + font-size: 17px; + font-weight: 600; + border-radius: 16px; + cursor: pointer; + background: var(--udt-surface0); + border: 1px solid var(--udt-surface1); + color: var(--udt-text); +} +.deck-btn .ico { width: 28px; height: 28px; } +.deck-btn .num { font-size: 20px; } +.deck-btn.rec.on { background: var(--udt-red); border-color: var(--udt-red); color: var(--udt-crust); } +.deck-btn.live.on { background: var(--udt-green); border-color: var(--udt-green); color: var(--udt-crust); } +.deck-btn:active { background: var(--udt-surface1); } + +.deck-cols { display: grid; grid-template-columns: 2fr 1fr; gap: 14px; } +@media (max-width: 900px) { .deck-cols { grid-template-columns: 1fr; } } + +.deck-block { + background: var(--udt-surface0); + border: 1px solid var(--udt-surface1); + border-radius: 16px; + padding: 12px; +} +.deck-block h3 { + font-size: 11px; + text-transform: uppercase; + letter-spacing: .08em; + color: var(--udt-overlay0); + margin-bottom: 10px; +} + +.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; } +.tile { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + min-height: 74px; + padding: 10px; + font: inherit; + font-size: 14px; + text-align: center; + border-radius: 12px; + cursor: pointer; + overflow: hidden; + background: var(--udt-surface1); + border: 1px solid var(--udt-surface2); + color: var(--udt-subtext0); +} +.tile .ico { width: 22px; height: 22px; flex: none; } +.tile span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.tile.on { + background: var(--udt-accent); + border-color: var(--udt-accent); + color: var(--udt-crust); +} + +.mixer { display: flex; flex-direction: column; gap: 10px; } +.chan { display: flex; align-items: center; gap: 10px; } +.chan .mute { + width: 44px; + height: 44px; + padding: 0; + flex: none; + display: flex; + align-items: center; + justify-content: center; +} +.chan .mute .ico { width: 20px; height: 20px; } +.chan .mute.on { background: var(--udt-red); border-color: var(--udt-red); color: var(--udt-crust); } +.chan-name { flex: none; min-width: 84px; max-width: 34%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.chan input[type=range] { flex: 1; min-width: 60px; accent-color: var(--udt-accent); } +.chan-pct { flex: none; min-width: 40px; text-align: right; font-size: 12px; } + +.deck-offline { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + min-height: 120px; + color: var(--udt-subtext0); +} |
