From c04cfb4179068144d47c0fe64fc08344dd605457 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 9 Nov 2026 19:23:56 +0100 Subject: feat: tablet-first dashboard tiles and match the Hyprland border speed --- static/deck.css | 83 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 70 insertions(+), 13 deletions(-) (limited to 'static/deck.css') diff --git a/static/deck.css b/static/deck.css index e200507..f5c6824 100644 --- a/static/deck.css +++ b/static/deck.css @@ -56,7 +56,7 @@ body { overflow: hidden; border-radius: 16px; background: var(--udt-surface0); - border: 1px solid transparent; + border: 0; box-shadow: 0 10px 30px rgba(0, 0, 0, .18); } @@ -67,7 +67,7 @@ body { position: absolute; inset: 0; border-radius: inherit; - padding: 1.5px; + padding: 2px; background: linear-gradient(var(--border-angle), var(--udt-border-1), var(--udt-border-2), var(--udt-border-3), var(--udt-border-1)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); @@ -75,7 +75,8 @@ body { mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: exclude; pointer-events: none; - animation: border-rotate 8s linear infinite; + /* Hyprland: speed 30 * 100 ms, flatlinetwo = linear, style = loop */ + animation: border-rotate 3s linear infinite; } @keyframes border-rotate { @@ -130,9 +131,9 @@ body { .music .top { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; } .music .art { - width: 64px; - height: 64px; - border-radius: 10px; + width: 72px; + height: 72px; + border-radius: 12px; object-fit: cover; background: var(--udt-surface1); flex: none; @@ -146,12 +147,13 @@ body { } .music .meta { min-width: 0; } .music .title { - font-size: 15px; + font-size: 17px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.music .controls button { min-height: 40px; min-width: 44px; } .music .artist, .music .album { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .music .album { font-size: 12px; color: var(--udt-overlay0); } .music .seek { display: flex; align-items: center; gap: 10px; margin: 6px 0 12px; } @@ -204,13 +206,68 @@ select { .sbb .id { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.stats .row, .windows .row { margin-bottom: 6px; } -.now b { display: block; font-size: 16px; } +.stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } +.mtile { + display: flex; + flex-direction: column; + gap: 2px; + padding: 10px 12px; + border-radius: 12px; + background: var(--udt-surface1); + min-width: 0; +} +.mlabel { font-size: 10px; text-transform: uppercase; letter-spacing: .08em; color: var(--udt-overlay0); } +.mvalue { + font-size: 26px; + font-weight: 600; + line-height: 1.1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.msub { font-size: 12px; color: var(--udt-subtext0); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.mfoot { margin-top: 10px; font-size: 12px; color: var(--udt-overlay0); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } + +.windows .ws { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; } +.wtile { + min-width: 56px; + min-height: 56px; + padding: 0 10px; + display: flex; + align-items: center; + justify-content: center; + font-size: 18px; + font-weight: 600; + border-radius: 12px; + background: var(--udt-surface1); + border: 1px solid var(--udt-surface2); + color: var(--udt-subtext0); + cursor: pointer; +} +.wtile.on { background: var(--udt-accent); color: var(--udt-crust); border-color: var(--udt-accent); } +.wtile.launch { font-size: 13px; font-weight: 500; min-width: 0; } +.windows .winlist { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; } +.wrow { + display: flex; + align-items: center; + gap: 8px; + min-height: 44px; + padding: 0 6px 0 10px; + border-radius: 10px; + background: var(--udt-surface1); +} +.wrow.on { color: var(--udt-accent); } .wt { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; } -.windows .row.on { color: var(--udt-accent); } - -.llm .meter { height: 6px; background: var(--udt-surface1); border-radius: 3px; overflow: hidden; margin: 2px 0 8px; } -.llm .meter > i { display: block; height: 100%; background: var(--udt-accent); } +.wclose { flex: none; width: 36px; height: 36px; padding: 0; } +.windows .launches { display: flex; flex-wrap: wrap; gap: 8px; } + +.gauges { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 12px; } +.gauge { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 12px; background: var(--udt-surface1); } +.glabel { font-size: 10px; text-transform: uppercase; letter-spacing: .08em; color: var(--udt-overlay0); } +.gvalue { font-size: 24px; font-weight: 600; line-height: 1.1; } +.gbar { height: 6px; background: var(--udt-surface2); border-radius: 3px; overflow: hidden; } +.gbar > i { display: block; height: 100%; background: var(--udt-accent); } +.lbig { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px; background: var(--udt-surface1); } .good { color: var(--udt-green); } .bad { color: var(--udt-red); } -- cgit v1.2.3