bifroest/app/static/css-framework/CHANGELOG.md
2026-10-27 08:34:17 +01:00

71 lines
3.9 KiB
Markdown

# Changelog
Alle relevanten Änderungen am CSS-Framework werden hier dokumentiert.
Format orientiert sich an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
---
## [2.1.1] — 2026-10-25
### Behoben
- Checkboxen und Radios zeigen wieder, ob sie gewählt sind: Die allgemeine `input`-Regel setzte `appearance: none`, die Regel für Checkboxen und Radios setzte es nicht zurück, und einen eigenen `:checked`-Stil gibt es nicht. Jetzt `appearance: auto`; der Haken erscheint in `--accent` (`accent-color`), hell wie dunkel. Switch, Chips und Segmente sind nicht betroffen (ihre Eingabefelder bleiben versteckt).
---
## [2.1.0] — 2026-10-18
CSP-fest: Framework, Demo und Doku laufen unter einer Content Security Policy
ohne `'unsafe-inline'` und ohne `'unsafe-eval'`. Bestehende Projekte laufen
unverändert weiter; die globalen Funktionen bleiben.
### Neu
- `data-action` für alle Aktionen (`modal-open`, `modal-close`, `modal-backdrop`, `tab`, `dropdown`, `nav-dropdown`, `sidebar-open`, `sidebar-close`, `alert-dismiss`, `sort`, `toggle-class`, `toast`, `toast-close`), ausgewertet von einem Listener am `document`; funktioniert auch in HTMX-Fragmenten
- `theme.js` — Hell/Dunkel vor dem Rendern setzen (gespeichert oder `prefers-color-scheme`) und per `data-action="theme-toggle"` umschalten
- `.icon-theme-light` / `.icon-theme-dark` — Theme-Icons wechseln per CSS
- `data-progress="75"` für `.progress-bar` statt `style="width: 75%"` (`applyProgress()`, auch nach `htmx:load`)
- `.htmx-indicator` — Styles im Framework, damit HTMX mit `includeIndicatorStyles: false` laufen kann
- `.skeleton-line`, `.skeleton-title`, `.skeleton-block`, `.skeleton-line.is-short`
- `.card-media` (Bild 16:9), `.table-wrap.is-scroll` (begrenzte Höhe für Sticky Header), Utility `.min-w-0`
- `body.modal-open`, `.toast.is-leaving`, `.toast-icon-{success|warning|danger|info}`
- `demo.css`, `demo.js` — Demo-Styles und -Skripte aus `index.html` ausgelagert
### Geändert
- `showToast()` baut den Toast über das DOM und setzt die Meldung als Text — **behebt XSS**, wenn die Meldung Benutzereingaben enthielt
- `openModal()` / `closeModal()` sperren den Scroll über `body.modal-open` statt `body.style`
- `index.html`, README, Skill-Referenzen und `jinja2.md` (Basis-Template) ohne `onclick`, `style`-Attribute und Inline-Skripte
- `AGENTS.md`: Regel 10 angepasst, Regel 12 (CSP) neu
---
## [2.0.0] — 2026-06-12
### Neu
- `framework.js` — JavaScript-API aus `index.html` ausgelagert, jetzt eigenständig einbindbar
- `build.py` — Minifier ohne externe Abhängigkeiten (`python3 build.py`)
- `dist/` — Build-Ausgabe mit `main.min.css`, `framework.min.js` und `index.html` (Sichtprüfung)
- `docs/VERGLEICH.md` — Vergleich mit Bootstrap und Tailwind
- `toggleSidebar()` / `closeSidebar()` zur JavaScript-API hinzugefügt
- `closeOnBackdrop(event, id)` zur JavaScript-API hinzugefügt
### Geändert
- `showToast()` — API korrigiert: nimmt jetzt `message` und `type` als Parameter (`showToast('Gespeichert', 'success')`)
- Zwei `click`-Event-Listener (Dropdown + TopNav) zu einem zusammengeführt
- Modal-Pattern durchgehend auf `closeOnBackdrop(event, id)` umgestellt
- Sidebar-Pattern mit `onclick="toggleSidebar()"` / `onclick="closeSidebar()"` vervollständigt
- `.opencode/` — alle Pfadreferenzen von `.ai/` korrigiert
- Fonts-URL aktualisiert (`gwfh.mranftl.com`)
- `AGENTS.md` Regel 10: JS gehört in `framework.js`, nicht in den Template-Script-Block
### Behoben
- Minifier: `+` aus Stripping-Regex entfernt — `calc()`-Ausdrücke wie `calc(100% + 0.375rem)` blieben sonst ungültig
---
## [1.0.0] — vor diesem Changelog
Initiale Version des Frameworks mit:
- Tokenbasiertem Designsystem (`tokens.css`)
- Classless Base (`base.css`)
- Komponenten-Bibliothek (`components.css`)
- Utilities (`utilities.css`)
- Vollständiger Komponenten-Demo (`index.html`)
- OpenCode-Skill-Dokumentation (`.opencode/`)