feat: responsives Frontend — Seitenleiste ab Desktop, Tabellen-Styling
Nav wird jetzt für alle Seiten aus einer einzigen Stelle (layout.html-Block) gerendert: auf dem Handy ein per Checkbox-Hack aufklappbares Menü (kein JavaScript), ab 960px Breite per CSS in eine permanente, dunkle Seitenleiste im enconf-Look verwandelt — dieselbe Markup-Struktur bedient beide Layouts, kein separates Desktop-Template. <details>/<summary> wurde bewusst NICHT verwendet: aktuelle Chromium-Versionen steuern dessen Auf-/Zuklapp-Zustand über eine CSS-resistente interne Animation (auch mit !important nicht überschreibbar), per Headless-Screenshot verifiziert. Zusätzlich: Tabellen (vorher komplett ungestylt, betraf v. a. das Register) haben jetzt echte Gestaltung inkl. horizontal scrollbarem Wrapper für schmale Bildschirme, Listenkarten ohne Link-Wrapper (Nutzer-/Abteilungsliste) bekommen dieselbe Kartenoptik wie verlinkte Einträge, und destruktive Aktionen (Löschen/Deaktivieren) sind jetzt visuell von primären Aktionen unterschieden. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
48
CLAUDE.md
48
CLAUDE.md
@@ -332,6 +332,49 @@ nicht anzulegen. Noch nicht gebaut (kein Abo-System).
|
||||
|
||||
---
|
||||
|
||||
## Frontend
|
||||
|
||||
Anspruch (2026-08-29 explizit vom Nutzer bestätigt, da Deklarix ein
|
||||
buchbarer Service werden soll): **für Browser UND Mobile optimiert,
|
||||
und jede Entität im Datenmodell muss über das Frontend steuerbar sein**
|
||||
— eine reine Anzeige-Seite ohne CRUD ist ein Defizit, kein v1-Kompromiss.
|
||||
Stack bleibt `html/template` + htmx, kein React/Vue/SPA (siehe
|
||||
Baureihenfolge/Architektur-Entscheidungen) — die responsive Optik wird
|
||||
rein mit CSS erreicht, ohne das Template-Modell zu ändern.
|
||||
|
||||
**Navigation** (`internal/web/templates/layout.html`, `"nav"`-Block,
|
||||
einmal definiert und von jeder Seite eingebunden — Änderungen hier
|
||||
wirken auf das ganze Produkt): ein Checkbox-Hack (versteckte Checkbox +
|
||||
`<label for=...>` als Klick-Ziel) klappt auf dem Handy ein Menü auf,
|
||||
ganz ohne JavaScript. **Nicht** das naheliegendere `<details>`/`<summary>`
|
||||
verwenden — aktuelle Chromium-Versionen steuern dessen Auf-/Zuklapp-
|
||||
Zustand über eine interne, mit CSS (auch nicht mit `!important`)
|
||||
nicht überschreibbare Animation; ein Versuch, `.app-nav { display:
|
||||
flex !important }` bei geschlossenem `<details>` zu erzwingen, bleibt
|
||||
wirkungslos (mit Chromium-Headless-Screenshot verifiziert). Ab
|
||||
960px Breite (`@media (min-width: 960px)`, `app.css`) wird exakt
|
||||
dieselbe Markup-Struktur per CSS zu einer permanenten, dunklen
|
||||
Seitenleiste (Farb-Tokens aus `design/enterprise.css` übernommen) —
|
||||
kein separates Desktop-Template.
|
||||
|
||||
**Tabellen** (`table`/`th`/`td` in `app.css`) sind seit dieser Änderung
|
||||
gestylt (vorher komplett ungestylt, betraf v. a. `register_liste.html`);
|
||||
breite Tabellen stehen in einem `.table-scroll`-Wrapper (horizontales
|
||||
Scrollen auf dem Handy statt gequetschter Spalten).
|
||||
|
||||
**Verifikationsmethode für CSS-Änderungen:** Live-Cookie-Auth per
|
||||
Chromium-Headless/CDP ist im Sandbox-Environment nicht möglich (kein
|
||||
websocket-Python-Modul) — stattdessen: Seite per `curl -b cookies.txt`
|
||||
authentifiziert abrufen, `/static/...`-Pfade im HTML auf eine absolute
|
||||
`http://localhost:<port>/static/...`-URL umschreiben (Assets brauchen
|
||||
kein Auth-Cookie), dann `chromium --headless --disable-gpu --no-sandbox
|
||||
--window-size=<W>,<H> --screenshot=out.png file:///pfad/zur/seite.html`
|
||||
bei mobiler (z. B. 390×844) und Desktop-Breite (z. B. 1440×900)
|
||||
screenshotten. Für einen Menü-Aufklapp-Zustand: `checked`-Attribut
|
||||
manuell ins gespeicherte HTML einfügen vor dem Screenshot.
|
||||
|
||||
---
|
||||
|
||||
## Projektstruktur
|
||||
|
||||
```
|
||||
@@ -346,7 +389,10 @@ nicht anzulegen. Noch nicht gebaut (kein Abo-System).
|
||||
│ └── web/ # Handler, Templates
|
||||
├── rules/ # YAML-Regelwerk + OPEN.md (offene fachliche Fragen)
|
||||
├── design/
|
||||
│ └── enterprise.css # Design-System (enconf-Basis, ungenutzt seit Pivot)
|
||||
│ └── enterprise.css # enconf Ant-Design-Theme — Referenz für Design-Tokens
|
||||
│ (Farben/Radius/Schatten), nicht direkt eingebunden
|
||||
│ (Ant-Design-Klassennamen passen nicht zu Deklarix'
|
||||
│ reinem HTML/htmx-Stack, siehe internal/web/static/app.css)
|
||||
├── packaging/
|
||||
│ └── DEBIAN/
|
||||
│ └── control.tmpl # .deb Package-Control-Template
|
||||
|
||||
Reference in New Issue
Block a user