Skip to content

Pocket: theme the auth shell and cover it in Storybook#290

Draft
nedtwigg wants to merge 4 commits into
mainfrom
design-system
Draft

Pocket: theme the auth shell and cover it in Storybook#290
nedtwigg wants to merge 4 commits into
mainfrom
design-system

Conversation

@nedtwigg

Copy link
Copy Markdown
Member

Summary

  • move the Pocket auth, host-picker, and connected shell onto the shared VS Code-token design system
  • restore the persisted/Kimbie default theme before paint and synchronize browser chrome with the active theme
  • share the Pocket default theme with the website playground
  • add Storybook coverage for the connected shell, Kimbie Dark snapshots, setup-error focus, and narrow long-label host rows

Why

Pocket auth previously carried separate product styling that could drift from the terminal wall and the other Dormouse product surfaces. This makes the full Pocket flow use one theme contract and gives the changed visual states stable regression coverage.

Impact

Pocket auth and host selection now re-skin with the same theme as the terminal wall. The default remains Kimbie Dark, touch-friendly sizing is preserved, and narrow layouts plus connected-header truncation are covered in Storybook.

Validation

  • CI=true pnpm lint:specs
  • CI=true pnpm --filter dormouse-lib build
  • CI=true pnpm --filter dormouse-lib build:pocket
  • CI=true pnpm --filter dormouse-lib build-storybook
  • CI=true pnpm --filter dormouse-lib test — 1,070 tests passed
  • visually checked the focused setup error, 320px host list, and connected Kimbie Dark shell; no console warnings or errors

nedtwigg and others added 3 commits July 22, 2026 13:53
The Pocket auth screens (setup/signin/hosts) styled themselves with a
bespoke hardcoded dark --pk-* palette — a third design system beside the
homepage one and the VS Code themeable one. Retire it: the whole Pocket
app now renders on the shared --color-* tokens, with the theme restored
before first paint (new pocket-theme.ts, extracted from PocketWall) and
document-level browser chrome (meta theme-color, color-scheme) synced to
the applied theme.

Spec gaps filled: pocket-app.md gains a Design system and theming
section (incl. the narrow phone exceptions: 16px inputs, taller touch
targets), theme.md names Pocket as a fourth theme host, server.md points
at it, and DESIGN.md now states the scope boundary between the product
design system and the website's homepage system.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
/simplify findings on the previous commit: the three auth action buttons
hand-copied the modalActionButton tones and had already drifted (the row
buttons lost the focus-visible ring) — collapse them into one app-local
pocketButton tv() (tone x size), healing the drift. The website playground
redeclared Pocket's default-theme id; it now imports the shared
POCKET_THEME_ID from pocket-theme.ts so the two cannot diverge.

Skipped by design: promoting the touch-scale variants into design.tsx
(single consumer today) and a chromeButton touchLabeled variant (one call
site) — the altitude review judged app-local correct.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 22, 2026

Copy link
Copy Markdown

Deploying mouseterm with  Cloudflare Pages  Cloudflare Pages

Latest commit: c4173c7
Status: ✅  Deploy successful!
Preview URL: https://a7a57534.mouseterm.pages.dev
Branch Preview URL: https://design-system.mouseterm.pages.dev

View logs

The auth chrome regressed the three-pair vocabulary from the retheme
(088c385) during the rebase: rows sat on surface-raised with panel-border
edges and muted text — near-black patches in Kimbie Dark, invisible
white-on-white in light themes, exactly what theme.md's three-pair rule
forbids. Restore that vocabulary (pkButton + PK) inside the current
structure: header band on the active pair, host rows on the inactive pair,
secondary text as alpha on the owning pair's fg, presence as row intensity
(no online badge), secondary buttons recessed to the page bg, error
delineated by a red inset hairline. pocket.css is gone — index.html already
carries the structural viewport rules.

Apply the same rule to the one other nested-rows site: MobileTerminalUi's
Sessions reserve, where inactive rows now recess to the app pair instead of
surface-raised. pocket-app.md's design section synced to match.

Verified in Storybook (Kimbie Dark + Quiet Light hosts/setup states) and
the website Pocket playground's Sessions reserve.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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