From 391ddcfeb833d5ff06a1dfe35261648332f2bcda Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Thu, 15 Oct 2026 09:47:12 +0900 Subject: feat(ui): Artix-style inset wells (chat thinking/tool blocks + sidebar views) and darkstrap navbar header in theme colours --- src/app.css | 24 +++++++++++++++++ src/app/App.svelte | 46 +++++++++++++++++++++++++++----- src/features/chat/ui.test.ts | 3 +-- src/features/chat/ui/LazyCollapse.svelte | 4 ++- src/features/chat/ui/ToolCard.svelte | 4 ++- src/features/layout/ui/TilePanels.svelte | 4 ++- 6 files changed, 73 insertions(+), 12 deletions(-) diff --git a/src/app.css b/src/app.css index e5e2a99..3eae342 100644 --- a/src/app.css +++ b/src/app.css @@ -12,6 +12,30 @@ themes: monokai --default; } +/* Inset "well" — the Artix wiki's code blocks (darkstrap `pre`): a panel that + reads as pressed INTO the page — the page colour darkened, a dark inner + shadow under the top edge, a faint light catch-line under the bottom edge. + Shared by the chat's thinking/tool blocks (LazyCollapse) and the sidebar + views (TilePanels). darkstrap: background rgba(0,0,0,.3); box-shadow + rgba(255,255,255,.1) 0 1px 0, rgba(0,0,0,.8) 0 1px 7px 0 inset; radius 4px. + Ported onto the active daisyUI theme so it always matches, and toned down a + step: the fill is the theme's page colour (base-100 — both the chat and the + sidebar sit on it) darkened 18% (darkstrap: 30%), computed OPAQUE and exposed + as --inset-well-bg so sticky children can paint the same colour; the inner + shadow is 0.6 (darkstrap: 0.8); the catch-line is the theme's text colour at + 10% instead of plain white. In @layer components so utilities can override. */ +@layer components { + .inset-well { + --inset-well-bg: color-mix(in srgb, var(--color-base-100) 82%, black); + background-color: var(--inset-well-bg); + border: 0; + border-radius: var(--radius-box); + box-shadow: + 0 1px 0 color-mix(in srgb, var(--color-base-content) 10%, transparent), + inset 0 1px 7px 0 rgb(0 0 0 / 0.6); + } +} + /* Rendered-Markdown (assistant messages) typography — scoped to .markdown-body so it never leaks into the rest of the app. */ .markdown-body { diff --git a/src/app/App.svelte b/src/app/App.svelte index 9eaba9c..5ea1e07 100644 --- a/src/app/App.svelte +++ b/src/app/App.svelte @@ -88,14 +88,15 @@ } -
+
-
+ the right. CHROME — stays outside the tree (layout-00 decision 2). + `.app-navbar` (below): the Artix wiki's darkstrap navbar look. --> +
{ @@ -129,14 +130,14 @@ build: {__APP_VERSION__} {#if collapseKey !== null}