Who? · Devlog

Tag 13 · Donnerstag, 21. Mai 2026

Donnerstag, 2026-05-21 — Tag 13

Spieler-Sicht

Who lässt sich jetzt sauber zwischen Hell und Dunkel umschalten und teilt sich das Farb-Gerüst mit den anderen mana-Apps. Sichtbar ändert sich für dich wenig — das Spiel sieht aus wie zuvor, nur ruht das Aussehen jetzt auf einem gemeinsamen Fundament, das künftige Farb-Welten möglich macht.

Behoben: Beim ersten Laden kann es einmalig sein, dass deine zuvor gewählte Hell/Dunkel-Einstellung zurückgesetzt wird.

Macher-Sicht

Theme-Migration in zwei Wellen, von der App-eigenen Lösung hin zur geteilten @mana/shared-ui/@mana/themes-Basis.

Welle 2b (b7ab882): app.css zieht base.css + all.css rein. Der who-eigene Theme-Store nutzte non-prefixed Tokens (--background, --card, --destructive); statt sie zu ersetzen, werden sie als Aliase auf das 12-Token-Vokabular gemappt (--background: var(--color-background)). Brand-Purple bleibt als --color-primary-Override stehen. FOUC-Init-Script in app.html mit Default-Variant neutral. Der Theme-Store wechselt von data-theme="dark"/"light" auf Variant-Wahl (neutral), der Hell/Dunkel-Modus läuft weiter über die .dark-Klasse. Bewusst als „partielle" Migration angelegt — der volle Variant-Picker mit mana-auth-Sync hätte mit dem bestehenden Store kollidiert, also vertagt.

Welle 5 (a67253d): kurz darauf der volle Schritt — der who-eigene Store (light/dark/system, localStorage-Key who.theme) komplett durch shared-uis createThemeStore ersetzt. Ein Backwards-compat-Wrapper hält die API stabil (theme.mode, isDark, initialize(), toggle() als Alias auf cycleMode), neu kommen variant, setVariant, effectiveMode. Alle 8 @mana/themes-Variants sind erreichbar, Default neutral. Cross-App-Sync über mana-auth noch nicht aktiv (who hängt an @mana/shared-auth statt shared-auth-sso) — Hook für authUrl/getAccessToken ist im Wrapper vorgesehen, sobald die Auth-Migration kommt.

Bekannter Migrations-Effekt: der alte Key who.theme wird nicht auf mana-theme:who migriert, die Mode-Wahl der User geht beim Update einmalig verloren — als akzeptabler Einmal-Verlust in Kauf genommen.

Stats

2
Commits
+157/-126
Zeilen
5
Files
0.0 h
Aktiv
Erster Commit
16:09 (Donnerstag)
Letzter Commit
17:01
Spannweite
0.9 Stunden
Aktiv (ohne Pausen > 30min)
0.0 Stunden
Pausen
1
Längster Fokus
0.0 Stunden

Wo wurde gearbeitet

  • 33% apps/web/src/lib
  • 17% apps/web/package.json
  • 17% apps/web/src/app.css
  • 17% apps/web/src/app.html
  • 17% pnpm-lock.yaml

Commits (2)

Volle Liste aufklappen
  • b7ab882 theme: Welle 2b — base.css + all.css + Token-Aliases + neutral-Default
  • a67253d theme: Welle 5 — who-web Theme-Store voll auf shared-ui
Geschrieben mit Claude Opus 4.7 (1M context) — Hand veredelt