ditdash U-UI0: the UI foundations (Tailwind v4 tokens, the kit skeleton, the gates, the CSP route) #12
Loading…
Reference in a new issue
No description provided.
Delete branch "ui-foundations"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
theme/ditdash.css (v4 CSS-first: source(none) + @source src, the three token tiers + the @theme inline bridge + the --color-*: initial guard, the breakpoints + the pane container tokens, the component layer), the nix wiring (tailwindcss_4 + preBuild + the css-fresh check), the CSP brand.css route (brand_style deleted), the status enum + per-surface mappings + the coverage test, the popover why (popovertarget + anchor positioning), the MSP selector slot + GET /api/v1/msps, the 4 mechanical gates, the semantic-digest split (43 new class-blinded digests), the ui.rs kit skeleton. 248 tests green.
The ditdash UI overhaul's foundations (arc plan U-UI0): - theme/ditdash.css: the Tailwind v4 CSS-first entry (source(none) + @source ../src): the primitives moved forward, the 7-status semantic set with light+dark blocks, the @theme inline bridge with --color-*: initial, the breakpoints + pane container tokens, and the component layer (shell grid, pane-grid named areas, the data-status pill, the popovers with CSS anchor positioning). - flake: tailwindcss_4 from this flake's nixpkgs (devShell + preBuild regenerating the committed assets/ditdash.css), theme/ in sourceByRegex, and the css-fresh check byte-comparing a fresh build against the committed copy. - GET /config/brand.css replaces the inline brand <style> (strict-CSP prep); every page links it after the main stylesheet. - src/ui.rs: the typed kit skeleton (shell, page_header, panes/pane, pill, table, kpi_tile, gap_state, timeline, meter, msp_selector, why_popover) with data-ui hooks; the closed Status enum + Freshness + the per-surface status_of mappings with the coverage test. - GET /api/v1/msps: {current, sessions:[{name,url}]} — the current session today, the list shape for the machine-session arc. - tests/ui_gates.rs: the class=-location lint (dated pre-migration allowlist), the class-exists-in-CSS check, the no-inline-style check on rendered pages (+ source-side allowance coverage), and the semantic-digest contract. - snapshots: byte digests regenerated (the brand link changes every page) and class-blinded semantic digests added beside them in all three walks. Assisted-by: worker:synthetic/hf:deepseek-ai/DeepSeek-V4.1-Flash