feat(dashboard): Design-Review umgesetzt - EmptyStates, Statuslabel, Monitor-Skalierung
CI / backend-tests (push) Failing after 2m11s
CI / frontend-build (push) Successful in 22s

Einheitliche EmptyState-Komponente statt uneinheitlicher Empty-Texte pro
Kachel, gemeinsames Listen-Pattern (Inline-Styles entfernt, u.a.
KennzahlenTile, MaengelTile, AktivitaetTile, AufgabenTile), Status-Textlabel
im Kachel-Header zusätzlich zur Randfarbe (Kontrast/Distanz/Farbfehlsichtigkeit),
Status-Monitor-Modus jetzt per zoom vergrößert für Wandmonitor-Lesbarkeit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
2026-09-07 22:38:36 +02:00
co-authored by Claude Sonnet 5
parent 68f0139b3d
commit d38c7adbc7
11 changed files with 106 additions and 37 deletions
@@ -1,6 +1,7 @@
import { memo, useState } from "react";
import { FristBadge } from "../../../components/status/FristBadge";
import { EmptyState } from "../EmptyState";
import type { Qualifikationsablauf } from "../types";
const ANZAHL_OHNE_AUFKLAPPEN = 5;
@@ -13,7 +14,7 @@ function QualifikationTileKomponente({ qualifikationsablaeufe }: Props) {
const [alleAnzeigen, setAlleAnzeigen] = useState(false);
if (qualifikationsablaeufe.length === 0) {
return <p className="text-sm text-[var(--color-text-muted)]">Keine bald ablaufenden Qualifikationen.</p>;
return <EmptyState text="Keine bald ablaufenden Qualifikationen." />;
}
const sichtbare = alleAnzeigen ? qualifikationsablaeufe : qualifikationsablaeufe.slice(0, ANZAHL_OHNE_AUFKLAPPEN);