- src/lib/motion/tokens.ts und --motion-* in globals.css: Dauern,
Kurven und Feder an einer Stelle; Beute-Bühne liest dieselben Werte.
- AppMotion: LazyMotion strict, Bewegungs-Code (domAnimation) als ein
asynchroner Chunk, 28 kB gzip; check:motion-budget im Docker-Build
neben dem 3D-Budget (Spec 17.6).
- PresenceList: abgehakte Zeilen blenden aus, die übrigen rücken nur bei
„Voll“ nach; „Dezent“ blendet nur, „Aus“ sofort. Die Zeile geht nach
der festen Verzögerung, auch wenn der Server schweigt (Spec 17.5);
Fokus wandert zum nächsten Haken, auch ohne Bewegungs-Chunk.
- Overlays (Sheet, Dialog, Menü, Select) über Base-UI-Start/Ende-Stile
mit Token-Zeiten; Verschiebung und Skalierung nur bei motion-full.
- Kein transition-all, kein Hover-Heben, keine Breiten-Animation von
Daten; Skeleton erst nach 150 ms; Wächter-Regeln für alles davon.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
- ui/tabs.tsx nur noch Variante segment: Leiste auf --muted, aktiver Tab
mit Kartenfläche, fetter Schrift und 3-px-Balken in --primary-ink;
44 px bei Touch, kompakt mit Maus; inaktive Schrift ≥ 6,27:1.
- ActiveHistoryTabs als Vorlage auf Tabs für 10 Listen (Pfeiltasten
schalten direkt, Daten sind geladen), mit toolbar und heading.
- Einstellungen (Automatisierung, Benutzer & Rollen) und Statistik mit
manueller Aktivierung: Pfeil bewegt den Fokus, Enter/Leertaste wählt;
?tab= über router.replace. TabSwitcher entfernt.
- Menüeinträge (Dropdown, Select) mit innerem Fokusring ≥ 3:1.
- Aufgaben: der Prioritätsfilter lädt die Liste jetzt neu (queryKey).
- Wächter: keine eigenen tablist/tab/tabpanel außerhalb ui/tabs.tsx.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
- globals.css: eine Basisregel :where(:focus-visible) mit --focus-width
und --focus-offset (Sonne 3 px), Firefox-:-moz-focusring gleichgezogen;
--text-xs 0.8125rem.
- Fokus-Codemod (scripts/codemod-t5-focus.mjs): eigene Ringe und
outline-none raus, sm:h-/sm:size- zu pointer-fine:, Label-Zeilen mit
focus-ring-within; Skript-Fokus (Lücken-Liste, „Gespeichert“) bleibt.
- Button/Input 44 px, kompakt nur mit Maus; Icon-Knöpfe mit unsichtbarer
44-px-Trefferfläche bei Touch, Nachbarn mit genug Abstand.
- 16 px in Feldern, Labels, Auswahl, Leerzuständen, Listentiteln.
- .holo-stage auf allen Beute-Bühnen, .stage-card holt den Seitenring.
- Baukasten-Wächter (src/styles/baukasten-guard.spec.ts) mit den Regeln
aus A3–A5, Ausnahmen mit Grund; Kalender-Auswahl als Inset-Ring.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
- globals.css: Hell, Dunkel und Druck mit den Spec-Werten aus 4.2,
Fokusring = --primary-ink, Verlaufs-Token entfernt.
- Codemod scripts/codemod-t5-colors.mjs: text-primary/-warning auf -ink,
Vordergrund nur auf voller Fläche, Auswahlrahmen dunkel; --check-Modus
und Spec halten src sauber.
- Kontrast-Wächter misst die echte globals.css (VALUES_SWITCHED), alle 21
Zeilen aus 4.4 in allen vier Sätzen; keine dark:-Klassen mehr in src.
- Dunkel ist ohne Entwickler-Schalter wählbar, Standard bleibt Hell.
- Review-Nacharbeit: Auswahl-Umrisse und aktueller Schritt in Vordergrund,
deaktivierte Felder bg-muted, Avatar ohne Blend, Honig-Check-Rahmen
über --input.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>