From 2acf36ff1a4d0ed67cecdc7b1c38e69b7ef7785e Mon Sep 17 00:00:00 2001 From: Brian Love Date: Mon, 18 May 2026 12:27:01 -0700 Subject: [PATCH 1/7] docs(spec): demo top toolbar polish design Pulls the new demo-shell__toolbar into the chat library visual system: 14px sm font, 8px radii, chat-select primitive replacing the four native selects, surface-alt secondary fill on the "New conversation" button. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../2026-05-18-demo-toolbar-polish-design.md | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 docs/superpowers/specs/2026-05-18-demo-toolbar-polish-design.md diff --git a/docs/superpowers/specs/2026-05-18-demo-toolbar-polish-design.md b/docs/superpowers/specs/2026-05-18-demo-toolbar-polish-design.md new file mode 100644 index 00000000..89cea49a --- /dev/null +++ b/docs/superpowers/specs/2026-05-18-demo-toolbar-polish-design.md @@ -0,0 +1,189 @@ +# Demo top toolbar polish — Design + +**Status:** Approved +**Date:** 2026-05-18 +**Goal:** Pull `demo-shell__toolbar` into the chat library's visual system so the top navbar reads as part of the same product surface as the sidenav and chat. + +## Why now + +The new top toolbar (added recently to replace the floating control palette) is the visual outlier on the demo: 12px / 16px fonts where the rest of the surface uses 14px, 6/7px radii where everything else uses 8px, four native browser `` with ``** for all four fields (Model, Effort, Gen UI, Theme) — same primitive as the chat-input model picker | +| "New conversation" button | **Secondary tier**: solid `--ngaf-chat-surface-alt` fill, no border, 8px radius — matches the New project pill in the sidenav. Keeps New chat (text-color CTA) as the singular CTA on the page. | +| Segmented control active state | **Keep current**: solid `--ngaf-chat-text` fill with `--ngaf-chat-bg` text — already matches the monochrome system from sub-project C | +| Font size baseline | 14px (`var(--ngaf-chat-font-size-sm)`) everywhere in the toolbar — replacing 12px on buttons/selects and the 16px host default | +| Border radius | 8px on all toolbar buttons/triggers — matches the polish-pass-2 sidenav baseline | +| Token fallbacks | Drop `, #e6e9ef` / `, #0f1115` fallback literals — `@ngaf/chat` tokens are always loaded in this surface | +| Translucent background | Keep `color-mix --ngaf-chat-bg 94% / transparent` and 1px separator border — works well, just clean up the syntax | + +## Architecture + +### Toolbar shell + +`.demo-shell__toolbar` adds explicit `font-family: inherit` and `font-size: var(--ngaf-chat-font-size-sm)` at the container level. Removes the per-child `font-size: 12px` override on `.demo-shell__segmented-button`, `.demo-shell__toolbar-action`, and `.demo-shell__field select` (the last selector goes away entirely after the chat-select swap). Border-bottom uses `var(--ngaf-chat-separator)` directly. Background stays translucent via `color-mix`. + +### Four dropdown swaps + +In `demo-shell.component.html`, each of the four `