Skip to content

Add the Dx theme and make it the default - #158

Merged
wallstop merged 3 commits into
mainfrom
t148-dx-theme-default
Oct 10, 2026
Merged

wallstop merged 3 commits into
mainfrom
t148-dx-theme-default

Conversation

@wallstop

@wallstop wallstop commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

DISCLOSURE: LLM-GENERATED TEXT

Why: A fresh install starts with no theme, and the default look does not match the Dx family system decided in #146.

What:

  • Ship the handoff Dx theme (Dx.uss + Dx.asset).
  • An empty or missing theme selection now resolves Dx.
  • Reset Theme clears the saved selection and lands on Dx.
  • Explicit selections, including Classic, survive the upgrade.

Fixes #148


Note

Low Risk
Editor-only theming and user-state resolution; explicit theme GUIDs are preserved and broken references behave as before.

Overview
Introduces the Dx theme (Dx.uss / Dx.asset) as the package default look and wires empty or missing saved theme GUIDs to that asset via ResolveDefault(), with GUID plus package-path fallback if the asset is missing.

Reset Theme and the theme picker’s default row are rebranded from Classic to Dx (Default / Reset); SelectTheme now applies GetSelectedTheme() after persisting state so clearing the GUID immediately shows Dx while explicit picks (including Classic) still keep their saved GUID. Deleted-theme GUIDs still resolve to null / bare package style.

Editor tests cover default resolution, Dx token contrast, and an integration path for fresh window, reset, and explicit Dx selection.

Reviewed by Cursor Bugbot for commit 9f114d6. Bugbot is set up for automated code reviews on this repo. Configure here.

Ship the handoff Dx theme from the #146 rebrand zip: a 34-token reskin
(ink surfaces, azure accent) that thins borders on rows, buttons, and
popovers, plus the theme asset that references the stylesheet by GUID.
No code changes; the window already applies any selected theme.

Asset GUID b3a7d91e0c5f4e62a8d4f17c2e6b9a05, stylesheet GUID
5e81c0f3a94b4d27b6f2e83a1c9d0b74; both verified collision-free by import
on the connected host. Refs #148.
A missing or empty theme selection now resolves the shipped Dx asset
instead of the bare package style, and Reset Theme lands on Dx: it
clears the saved selection first, then SelectTheme applies the resolved
default. Dangling explicit GUIDs still fall back to the bare package
style and keep their saved GUID, matching the pre-default semantics.

The theme dropdown's default entry reads Dx (Default / Reset) with
matching tooltips; explicit selections, including the Classic asset,
are untouched and survive the upgrade.

Tests: shipped-asset discovery includes Dx; empty and null selections
resolve the default; a window test covers fresh-opens-in-Dx, an
explicit Classic selection, Reset landing on Dx with an empty saved
GUID, and an explicit Dx selection keeping its GUID, with in-memory
state and a temp user-state file so host state is never touched;
contrast tests parse the Dx :root tokens and require 4.5:1 for the
three issue-listed pairs.

EditMode 355/357 and PlayMode 15/15 on the connected Windows host
(Unity 6000.5.2f1). The two failures reproduce on clean main with the
working tree stashed; identical evidence is recorded on #39.

Fixes #148.
Apply the tightened changelog style: one or two sentences, at most 300
rendered characters, verb-first, user-visible effect first, no
mechanism narration. Refs #148.
@wallstop
wallstop merged commit 81921e9 into main Oct 10, 2026
3 checks passed
@wallstop
wallstop deleted the t148-dx-theme-default branch October 10, 2026 04:24
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.

Add the Dx theme and make it the default

1 participant