- Völker als Waben-Zellen (src/components/honeycomb, src/lib/honeycomb):
Zelle = Link mit Symbol, Kürzel und vollständigem Namen inkl. Zustand,
Rand für fällige Durchsicht; nie nur Farbe, keine Animation.
- Standseite mit Satz, Legende, „Braucht Blick“ und aufklappbarer Liste;
Offline-Standseite aus dem Paket; /apiaries-Karten mit Wabe (erste 20).
- Nur das Sechseck nimmt Tipps an (Zeilen greifen ineinander), Breite vor
dem ersten Bild gemessen, 403 ohne Fehlerkarte.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
- Baukasten-Wächter: jede Regel prüft eigene Beispiele (muss fangen, muss
ignorieren), veraltete Ausnahmen und Ordner-Ausschlüsse schlagen fehl;
neue Regeln für text-primary ohne -ink, dark:, Schrift unter 13 px
(Tailwind, SVG, CSS, style, *_SIZE-Konstanten) und Verlaufs-Hintergründe.
Aufgeteilt in baukasten-guard, touch-target-guard und einen Scan-Helfer.
- Hinweis „Neu: Sonnenmodus für draußen“ auf dem Dashboard, einmal je Gerät,
„Ausprobieren“ schaltet live um; Fokus geht danach zur Überschrift.
- Varroa-Diagramm: Beschriftungen als HTML mit fester Größe statt SVG-Text.
- Medikamente zeigen die Tabs auch leer; Zahlen in Tabs nicht beim Laden
oder Fehler; inaktive Tabs mit Hover für die Maus; TabPicker (Auswahl
unter 640 px) für Automatisierung und Statistik; Rollen-Dialoge breit
genug für die Rechte-Matrix.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
- 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]>
- ui/checkbox.tsx und form/checkbox-field.tsx: ganze Zeile, Kachel,
Aufgabe oder Sheet-Zeile ist der Knopf (Base UI), Haken bzw. Strich für
teilweise; role="switch" mit Daumen und Haken. ToggleChip und SwitchRow
entfernt.
- 14 Kacheln, 11 native Checkboxen, 3 Schalter-Zeilen, 6 Base-UI-Stellen
und die Heute-Aufgaben umgestellt; Werte ans Backend unverändert.
- Enter in einer Checkbox schickt kein Formular ab und schaltet nicht
(Leertaste schaltet); Nachbarn mit mindestens 4 px Abstand; gesperrte
Felder mit sichtbarem Grund; gesperrte Kacheln ganz gedimmt.
- Baukasten-Wächter: keine eigenen Checkboxen/Schalter, auch bedingte
role-Werte und setAttribute; Zeilenlisten mit Abstand.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
- ChoiceGroup nach Spec 10.2: gewählt mit Haken und 2-px-Tintenrahmen,
„Nicht geprüft“ gestrichelt; neue Variante appearance="cards" mit Icon
und Beschreibung (Winter-Ergebnis, Darstellung, Behördenmeldung).
- Eigenbau-Radios in Behördenmeldung, Phänologie-Bericht und
Zeilen-Ausrichtung durch ChoiceGroup ersetzt.
- Button pressed → aria-pressed (Fett/Kursiv, „Aufbau als Liste“);
Druck-Versatz nur mit motion-full.
- NumberStepper (ganze Schritte) für Winter-Waben, Milbenzahl (neu und
bearbeiten), Weiselzellen, Entnahme/Zählbestand, Startposition; Entnahme
nur 1 bis Restmenge, Startposition höchstens 1000.
- Baukasten-Wächter: Radios nur in ChoiceGroup, aria-pressed nur in
Button und Kalender, auch in Objektform und .ts-Dateien.
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]>