๐ŸŽจ Tokens & Palette Unification

Superseded โ€” 2026-07-24

The five active-namespace diagnosis below is superseded by Program Masterplan as of 2026-08-02: qwizz-tokens.css is now the single --qw-* definition layer for active admin and public roots, Fine-tune no longer defines --qe-*, and explicit player mood palettes remain intentional presentation overrides rather than defects. The original inventory and collision counts were not fully recomputed. Preserved as observed.

TL;DR

Five parallel namespaces (--qw-, --qe-, --qw-admin-, --qw-starter-, --qwizz-) and up to 10 distinct values for the same token name. Player themes legitimately need mood overrides; everything else is accidental drift. Proposal: one base palette + sparse theme scopes + admin alias layer.


๐Ÿ“Š Inventory (plugin CSS)

NamespaceDefsHome
--qw-*120builder, player, some admin
--qe-*9finetune editor only
--qw-admin-*7admin-shell
--qw-starter-*7admin-starter
--qwizz-*3embeds/catalog

Collision counts (distinct values per name)

Token# valuesNotes
--qw-soft10mostly player themes + admin drift
--qw-muted10same
--qw-line10builder #e8e4f0 vs player #e8e4f1 = 1-digit fork
--qw-ink9builder #201b31 vs player #211d31 vs admin #182230
--qw-v / --qw-v26 / 6= the 6 presentation themes (intentional)
--qw-card6player themes

Brand violet forks (should be ONE)

TokenValueFile
--qw-v (default)#6d28d9builder, player
--qe-violet#6546d7finetune
--qw-admin-brand#6546d7admin-shell
--qw-brand#6546d7 / #6d4affdashboard / subjects
--qw-starter-violet#5b35d5starter

โœ… Keep: presentation themes as sparse overrides

Player moods are the art-direction asset. Refactor to:

.qwizz-player {
  /* BASE palette โ€” only place full stacks live */
  --qw-v:#6d28d9; --qw-v2:#5b21b6;
  --qw-ink:#211d31; --qw-muted:#6e6981; --qw-line:#e8e4f1;
  --qw-soft:#f5f1ff; --qw-card:#fff; --qw-bg:#faf9fd;
  --qw-good:#12672f; --qw-bad:#922d2d; --qw-ring:rgba(109,40,217,.18);
}
.qwizz-player[data-theme="dark"]  { --qw-v:#a78bfa; --qw-v2:#7c3aed; --qw-ink:#f1eff8; /* only deltas */ }
.qwizz-player[data-theme="retro"] { --qw-v:#b83d2b; --qw-v2:#8e2f21; /* โ€ฆ */ }
/* cyber / love / aqua likewise */

๐ŸŽฏ Proposed single base palette (product)

RoleTokenValue
Brand--qw-v#6d28d9
Brand deep--qw-v2#5b21b6
Ink--qw-ink#211d31
Muted--qw-muted#6e6981
Line--qw-line#e8e4f1
Soft--qw-soft#f5f1ff
Paper/card--qw-card#ffffff
Canvas--qw-bg#faf9fd
Focus--qw-focus#3858e9
Good / Bad--qw-good / --qw-bad#12672f / #922d2d

Admin alias layer (no new hues):

.qwizz-admin, .qwizz-dashboard, .qwizz-starter-page, .qwizz-settings {
  --qw-admin-brand: var(--qw-v);
  --qw-admin-ink: var(--qw-ink);
  --qw-admin-muted: var(--qw-muted);
  --qw-admin-line: var(--qw-line);
  --qw-admin-soft: var(--qw-soft);
  --qw-starter-violet: var(--qw-v);
  /* etc โ€” aliases only */
}

Retire: --qe-* (map to --qw-* under .qwizz-editor), --qwizz-* (embeds โ†’ --qw-*).


๐Ÿชœ Migration order (release-owner)

  1. Land base palette + aliases (behavior-neutral if values converge to nearest current)
  2. Delete accidental 1-digit forks (builder line/ink)
  3. Sparse-ify player theme blocks
  4. Tokenize qwizz-admin-settings-visual.css (currently 0 tokens)
  5. Remove dead namespace declarations


  • synthesist: cross-surface CSS inventory 2026-07-24