From dccca554e05b997f3c6e1ebc98701bb34bea1e84 Mon Sep 17 00:00:00 2001 From: ZGaetano Date: Thu, 21 May 2026 23:53:21 -0400 Subject: [PATCH] Add Dragonflight React SPA design - index.html and CSS: styles-fixes.css --- services/web-ui/public/styles-fixes.css | 83 +++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 services/web-ui/public/styles-fixes.css diff --git a/services/web-ui/public/styles-fixes.css b/services/web-ui/public/styles-fixes.css new file mode 100644 index 0000000..4de1b37 --- /dev/null +++ b/services/web-ui/public/styles-fixes.css @@ -0,0 +1,83 @@ +/* responsive + polish fixes */ +.page-header h1 { white-space: nowrap; } +.page-header .subtitle { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + min-width: 0; + flex-shrink: 1; +} +.page-header { gap: 12px; flex-wrap: wrap; } +.status-pip span { white-space: nowrap; } +.status-pip { white-space: nowrap; } +.rail-item { min-width: 0; } +.rail-item > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.rail-item > span.rail-count, .rail-item > .rail-color-dot { overflow: visible; flex-shrink: 0; } + +/* stat row collapses on narrow screens */ +@media (max-width: 1100px) { + .stat-row { grid-template-columns: repeat(2, 1fr); } + .jobs-stats { grid-template-columns: repeat(2, 1fr); } +} + +/* recorder row - collapse stats to wrap more gracefully at narrower widths */ +@media (max-width: 1280px) { + .recorder-row { + grid-template-columns: 180px 1fr; + grid-template-rows: auto auto; + } + .recorder-stats { grid-column: 2 / 3; grid-row: 2; } + .recorder-actions { grid-column: 1 / 3; grid-row: 3; justify-content: flex-end; padding-top: 4px; border-top: 1px solid var(--border); } +} + +/* capture stats labels nowrap */ +.capture-stat-label, .recorder-stat .stat-label, .stat-card .label, .stat-card .delta { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +/* topbar elements never wrap */ +.topbar > * { flex-shrink: 0; } +.topbar .crumb { min-width: 0; overflow: hidden; } +.topbar .crumb > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.topbar .spacer { flex: 1; min-width: 8px; } + +/* hide search at narrow widths */ +@media (max-width: 1100px) { + .topbar .search { display: none; } +} +@media (max-width: 900px) { + .topbar .status-pip span:not(.dot) { display: none; } +} + +/* library toolbar wraps */ +.library-toolbar { flex-wrap: wrap; } +.library-toolbar .search { width: 200px; } + +/* capture layout — stack when narrow */ +@media (max-width: 1280px) { + .page-body > div[style*="grid-template-columns: 440px"] { + grid-template-columns: 1fr !important; + } +} + +/* fix audio meter visual */ +.audio-meter.v { + border-radius: 99px; + background: rgba(255,255,255,0.04); + padding: 3px; +} + +/* misc — ensure recorder preview minimum height visible */ +.recorder-preview { min-height: 56px; } + +/* avoid awkward emoji stretch in section heads */ +.activity-text .target { word-break: break-word; } + +/* asset card sub fits */ +.asset-card .meta .sub { overflow: hidden; } + +/* stat card spark - move behind text */ +.stat-card .label, .stat-card .value, .stat-card .delta { position: relative; z-index: 1; } +.stat-card .spark { z-index: 0; }