feat(reports): Auswertungen, Kalender, Budgets und Export
Backend: - Gemeinsame Bewegungsschicht flows(), auf der alle Berichte aufbauen; Plan und Ist bleiben dabei getrennt - Forecast, Kategorien mit Drilldown, Abo-Übersicht, Jahresvergleich, Cashflow-Kalender, Budget-Ampel, Sparziel-Fortschritt, gebündeltes Dashboard - Budgetübertrag über Monatsgrenzen, Budgets auf Oberkategorien schließen Unterkategorien ein - Export als CSV (BOM, Semikolon, deutsches Dezimaltrennzeichen) und XLSX mit typisierten Beträgen Frontend: - Dashboard, Cashflow-Kalender mit Bestätigen direkt am Tag, Budget-, Sparziel- und Auswertungsseite - Diagrammpalette gegen beide Flächen auf Kontrast und Farbfehlsichtigkeit geprüft; Grün/Rot als Serienpaar verworfen - Einnahmen/Ausgaben und kumulierter Saldo in getrennten Diagrammen statt auf zwei Größenachsen - Recharts in einen eigenen Chunk ausgelagert 27 neue Backend-Tests (235 gesamt), 16 neue Frontend-Tests (65 gesamt) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014e7t8UpmoVNMtWivY5LiSH
This commit is contained in:
@@ -19,6 +19,24 @@
|
||||
--color-warning: 180 83 9;
|
||||
}
|
||||
|
||||
/* Diagrammfarben, heller Modus.
|
||||
Die Reihenfolge der Serienfarben ist die Absicherung gegen Farbfehlsichtigkeit
|
||||
und wurde gegen die Flächen dieser Anwendung geprüft – nicht umsortieren.
|
||||
Grün/Rot wäre als Serienpaar bei Deuteranopie nicht unterscheidbar (ΔE 7,9)
|
||||
und bleibt deshalb den Vorzeichen im Text vorbehalten. */
|
||||
:root {
|
||||
--viz-series-1: #2a78d6;
|
||||
--viz-series-2: #eb6834;
|
||||
--viz-series-3: #1baf7a;
|
||||
--viz-grid: #e2e8f0;
|
||||
--viz-axis: #94a3b8;
|
||||
--viz-label: #64748b;
|
||||
--viz-surface: #ffffff;
|
||||
--viz-good: #0ca30c;
|
||||
--viz-warning: #fab219;
|
||||
--viz-critical: #d03b3b;
|
||||
}
|
||||
|
||||
/* Dunkler Modus – die Vorgabe der Anwendung */
|
||||
.dark {
|
||||
--color-ground: 15 17 21;
|
||||
@@ -33,6 +51,18 @@
|
||||
--color-positive: 74 222 128;
|
||||
--color-negative: 248 113 113;
|
||||
--color-warning: 251 191 36;
|
||||
|
||||
/* Eigene Stufen für die dunkle Fläche, kein automatisches Umdrehen. */
|
||||
--viz-series-1: #3987e5;
|
||||
--viz-series-2: #d95926;
|
||||
--viz-series-3: #199e70;
|
||||
--viz-grid: #2b3038;
|
||||
--viz-axis: #4b5563;
|
||||
--viz-label: #94a3b8;
|
||||
--viz-surface: #181b21;
|
||||
--viz-good: #0ca30c;
|
||||
--viz-warning: #fab219;
|
||||
--viz-critical: #d03b3b;
|
||||
}
|
||||
|
||||
html {
|
||||
|
||||
Reference in New Issue
Block a user