71 lines
3.9 KiB
Markdown
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/`)
|