From 8f6360f99381b3e9d9d41281d44ff8cd2f9c7dde Mon Sep 17 00:00:00 2001 From: nntrivi2001 Date: Sat, 3 Oct 2026 12:37:35 +0700 Subject: [PATCH] feat(workspace): frameless console that blends into its card The tab bar and terminal lose their bordered box: the bar keeps one divider with an accent underline on the active tab, and the terminal is painted in the card's colour (--surface-3) instead of the page's. That made a long-standing overflow visible: xterm re-measures its cell only on a font option change or a resize, so a webfont landing after open left the fit on the fallback font's cell and the rows/cols spilled out of the pane. Re-set the family and refit on document.fonts loadingdone. --- client/src/components/run/ConsoleTabs.tsx | 12 +++++++----- client/src/components/run/TerminalView.tsx | 17 +++++++++++++++-- client/src/lib/__tests__/terminalTheme.test.ts | 6 ++++-- client/src/lib/terminalTheme.ts | 5 +++-- client/src/pages/Workspace.tsx | 6 +----- .../screens.snapshot.test.tsx.snap | 2 +- 6 files changed, 31 insertions(+), 17 deletions(-) diff --git a/client/src/components/run/ConsoleTabs.tsx b/client/src/components/run/ConsoleTabs.tsx index 256b04b2..3ea2ffa7 100644 --- a/client/src/components/run/ConsoleTabs.tsx +++ b/client/src/components/run/ConsoleTabs.tsx @@ -99,20 +99,22 @@ export function ConsoleTabs({ "flex w-full items-center gap-2.5 rounded-md px-2.5 py-1.5 text-left text-sm text-fg-secondary hover:bg-surface-4 hover:text-fg-primary"; return ( -
+
{tabs.map((r) => { const active = r.id === activeRunId; return (
- {active && } + {active && ( + + )}