Skip to content

Phase 4a: design-system foundation (tokens, dark mode, left nav, anchored Publish)#32

Merged
bnz183 merged 1 commit into
mainfrom
feat/design-system-foundation
Jun 19, 2026
Merged

Phase 4a: design-system foundation (tokens, dark mode, left nav, anchored Publish)#32
bnz183 merged 1 commit into
mainfrom
feat/design-system-foundation

Conversation

@bnz183

@bnz183 bnz183 commented Jun 19, 2026

Copy link
Copy Markdown
Owner

Phase 4a — design-system foundation

First PR of the sanctioned Phase 4 UX/UI quality pass. Foundation-first: shared visual language + app shell, measured against the new .claude/rules/ui-standards.md. No behavioural changes to publishing.

What's in it

  • Tokens: 8px spacing scale, radius/elevation scale, regularized modular type scale (--text-*).
  • Color: fully tokenized palette in light and dark, tuned for WCAG 2.2 AA. Dark follows the OS (prefers-color-scheme) and is overridable by an explicit light/dark/system choice persisted across reloads (new app-bar theme toggle, lib/theme.ts).
  • Buttons: consistent system; Publish is a large, anchored (sticky), high-contrast primary action.
  • Shell: sticky top bar; persistent left nav rail (NavRail) for Posts/Settings; reduced visual noise via tokens.
  • Docs/rules: ui-standards.md, Phase 4 plan in docs/roadmap.md, scope-rule carve-out, CHANGELOG entry.

Tests

  • Unit: new theme.test.ts, navigation.test.ts.
  • e2e (demo mode): left-nav switching, theme-toggle persistence, anchored Publish.
  • Local: pnpm build ✅ · pnpm test ✅ (studio 126/126, all packages) · pnpm lint ✅ · pnpm test:e2e ✅ (19/19).

Hard rules

PR only (off main), no new dependencies, secrets stay server-side, AGPL preserved, no QuBrite hardcoding.

Next (separate PRs, await review)

  • 4b — Editor: Google-Docs/Notion conventions (replace window.prompt flows, toolbar a11y/≥24px targets, token application).
  • 4c — Onboarding/config: stage Settings one-thing-per-page, guided connect-your-blog first run.
  • Final — QA: contrast/target/focus/reduced-motion sweep, responsive breakpoints, demo-mode walkthrough.

🤖 Generated with Claude Code

Establish the tokenized design-system + app-shell foundation for the
pre-distribution UX pass, on top of main:

- 8px spacing scale, radius/elevation scale, regularized modular type scale
- tokenized color palette in light and dark (prefers-color-scheme), tuned
  for WCAG 2.2 AA; dark overridable by an explicit light/dark/system choice
  persisted across reloads via a new app-bar theme toggle (lib/theme)
- consistent button system; Publish is a large, anchored (sticky),
  high-contrast primary action
- sticky top bar; persistent left navigation rail (NavRail) for Posts/Settings
- reduced visual noise via tokens

Add .claude/rules/ui-standards.md, a Phase 4 plan in docs/roadmap.md, a
scope-rule carve-out, and a CHANGELOG entry. Adds unit tests (theme,
navigation) and e2e coverage (left nav, theme toggle, anchored Publish).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bnz183 bnz183 marked this pull request as ready for review June 19, 2026 10:36
@bnz183 bnz183 merged commit 6009b18 into main Jun 19, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant