diff --git a/docs/architecture.md b/docs/architecture.md index 9a8ae27..5e0641f 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -46,9 +46,10 @@ no-op functions, reassigned in `src/bun/index.ts` after everything exists: `src/bun/windows.ts` — `buildPreload(mode, settings, ctx?)` injects `__APP_PLATFORM`, `__APP_MODE` (`main|editor|manager|settings`), `__APP_CTX` before any page script, plus the persisted theme attributes and interface -scale so the first paint is already right. `ui/src/main.ts` picks the root component from -`APP_MODE`; all four roots use selector `app-root` (index.html hosts only that -tag). `chromeOptions()` is the ONLY place the native frame is decided, spread by +scale so the first paint is already right. `ui/src/main.ts` picks the root +component from `APP_MODE`; all four roots use selector `app-root` (index.html +hosts only that tag). `chromeOptions()` is the ONLY place the native frame is +decided, spread by the main window and `openSecondaryWindow`: macOS `hiddenInset` + `trafficLightOffset {x:12,y:13}` (the UI renders an `h-10 pl-24` drag-region header via `IS_MAC_CHROME`); other platforms keep the native titlebar and a @@ -308,9 +309,10 @@ dark neutrals are a **warm gray family (hue 107)** anchored on `#1a1a19` and cool surfaces clash. **Surface layers**, each its own shade: `--chrome` (frame — tab/transfer/status bars, editor/manager header+footer strips, the manager's connection sidebar), `--toolbar` (each file panel's header strip — -session strip, path bar, column headers — and the editor's search bar; the -ACTIVE panel's strip is `--toolbar-active`, a `color-mix` of `--primary` into -`--toolbar`, so it follows the accent), `--background` (file lists, editor +session strip, path bar, column headers — and the editor's search bar; both +panels share one neutral strip, and the ACTIVE panel is marked by a 0.125rem +`--primary` line along its top edge, an inset box-shadow on the session strip so +switching panels never shifts layout), `--background` (file lists, editor text, forms; `--row-alt` stripes odd file rows, skipped on the cursor/selected row so two `bg-*` utilities never fight) and `--card` (popovers, dialogs, toasts). Dark climbs frame 0.165 < list 0.218 < header 0.265 < card 0.285; @@ -318,7 +320,7 @@ light steps greys out from white content: frame 0.935 < header 0.965 < list = card 1. **`--accent` is translucent** (6% zinc-900 light, 9% white dark): hover/selected states sit on every layer, and an opaque hover vanishes on a surface of its own lightness. The "darker" tone is true-black AMOLED: chrome, -background, toolbar (+active) and row-alt are all `#000` (the layers collapse +background, toolbar and row-alt are all `#000` (the layers collapse on purpose), elevation survives only via `--card`/`--accent` (opaque there), and `--border`/`--input` go to 16%/18% white because those lines then carry the whole layout. Accent tones: one diff --git a/docs/gotchas.md b/docs/gotchas.md index fe00b9d..f21a4c2 100644 --- a/docs/gotchas.md +++ b/docs/gotchas.md @@ -60,12 +60,13 @@ touching the adjacent code. - **A new surface token needs an AMOLED line, or AMOLED stops being all-black.** The two `[data-dark-tone='darker']` blocks re-declare every - surface (`--chrome`, `--toolbar`, `--toolbar-active`, `--row-alt`, …) as - `#000`; a token added only to the dark blocks shows through in AMOLED. + surface (`--chrome`, `--toolbar`, `--row-alt`, …) as `#000`; a token added + only to the dark blocks shows through in AMOLED. - **Never declare one token in both the AMOLED blocks and the accent dark formula blocks.** Both are (0,3,0), so source order decides and the later - accent block wins. That is why `--toolbar-active` lives in the base theme - blocks — its `var(--primary)` resolves per accent on `:root` anyway. + accent block wins. A token that must follow the accent belongs in the base + theme blocks instead — a `var(--primary)` there still resolves per accent on + `:root`. - **Hover/selected color is a translucent overlay (`--accent`).** An opaque hover vanishes on a surface of its own lightness — light's old 0.967 hover on the 0.965 header strip did exactly that. Keep `--accent` alpha-based when diff --git a/ui/src/app/skins/shadlike/file-panel/file-panel.html b/ui/src/app/skins/shadlike/file-panel/file-panel.html index 1bded27..cb11a46 100644 --- a/ui/src/app/skins/shadlike/file-panel/file-panel.html +++ b/ui/src/app/skins/shadlike/file-panel/file-panel.html @@ -1,5 +1,8 @@ -
+