Skip to content

feat(theme): add dynamic XP appearance - #4

Merged
doodlewind merged 1 commit into
mainfrom
feat/xp-theme
Aug 22, 2026
Merged

feat(theme): add dynamic XP appearance#4
doodlewind merged 1 commit into
mainfrom
feat/xp-theme

Conversation

@doodlewind

Copy link
Copy Markdown
Contributor

Summary

  • add a System UI theme boundary that owns both paint classes and chrome hit-test metrics
  • add a Sheru-informed Windows XP Luna appearance with three-stop plastic gradients, gel caption controls, taskbar, Start menu, application surfaces, and white control glyphs
  • expose live switching through Start > Settings and Cmd+Shift+T while preserving every window client rectangle, including child CompositorSurface viewports
  • keep the Pocket System manifest, AppSupervisor, native host, and AppInstance plans theme-neutral
  • pin PocketJS to merged #327 for generic via-* gradient stops

Validation

  • bun run check (50 unit tests, 4 System UI sim journeys, 3 wrap-op tests)
  • bun run build:web && bun run test:web (real headless Chrome; Hero AppInstance started and composited)
  • bun run build
  • bun run macos -- --quit-after 5 (native release host launched; 5 ticks, 4 frames)
  • bun run capture with visual inspection of docs/xp-theme.png
  • git diff --check

Geometry contract

The same ChromeMetrics drive rendering and hit testing. Theme switches reframe normal, minimum, and maximized/restore geometry around a stable client rectangle; tests pin the XP 21px caption controls, 2px gaps, 30px taskbar, and client-size round trip.

Assets

The XP caption glyphs are original code-generated SVGs. No Sheru files or third-party Windows assets are copied.

@doodlewind
doodlewind marked this pull request as ready for review August 22, 2026 18:54
@doodlewind
doodlewind merged commit d0991c0 into main Aug 22, 2026
3 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 22, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant