From 383344a2082d21154daaad686941868f31f858bc Mon Sep 17 00:00:00 2001 From: itsrubberduck Date: Sun, 15 Feb 2026 21:32:30 +0100 Subject: [PATCH] fix(liveatc): fix layout inconsistencies, cramped spacing, and overflow issues - Add self-contained .scene base styles (no classroom.vue dependency) - Fix setup screen centering and padding - Widen session layout (520px), increase gap (14px) and padding - Fix flight header overflow with flex-shrink and text-overflow - Fix suggestion buttons padding and word-break for long texts - Switch debug/settings sliders from flex to CSS grid for stable layout - Fix candidate list in TransmissionCard using grid for proper alignment - Add responsive breakpoint for narrow screens (<400px) - Add word-break on ATC message text to prevent container overflow Co-Authored-By: Claude Opus 4.6 --- app/components/atc/TransmissionCard.vue | 17 ++-- app/pages/liveatc.vue | 112 ++++++++++++++++++------ 2 files changed, 98 insertions(+), 31 deletions(-) diff --git a/app/components/atc/TransmissionCard.vue b/app/components/atc/TransmissionCard.vue index ad38909..f587a2a 100644 --- a/app/components/atc/TransmissionCard.vue +++ b/app/components/atc/TransmissionCard.vue @@ -453,11 +453,12 @@ function isChosen(id: string): boolean { } .tx-candidate { - display: flex; - align-items: center; + display: grid; + grid-template-columns: 16px auto 1fr; + align-items: baseline; gap: 6px; - padding: 2px 6px; - border-radius: 4px; + padding: 4px 6px; + border-radius: 6px; font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 0.72rem; color: var(--t3); @@ -470,8 +471,8 @@ function isChosen(id: string): boolean { .tx-candidate-icon { font-size: 0.8rem; - width: 14px; text-align: center; + flex-shrink: 0; } .tx-candidate--chosen .tx-candidate-icon { @@ -480,11 +481,15 @@ function isChosen(id: string): boolean { .tx-candidate-id { font-weight: 600; - min-width: 80px; + white-space: nowrap; } .tx-candidate-intent { color: var(--t3); + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } /* Variable chips */ diff --git a/app/pages/liveatc.vue b/app/pages/liveatc.vue index e348580..9800aa5 100644 --- a/app/pages/liveatc.vue +++ b/app/pages/liveatc.vue @@ -682,19 +682,28 @@ onUnmounted(() => {