docs: Coding-Regeln für Alicia ergänzt (Namen, JS, CSS, HTML, Kommentare)
This commit is contained in:
@@ -156,6 +156,7 @@ git push --tags
|
|||||||
|
|
||||||
## Constraints (unveränderlich)
|
## Constraints (unveränderlich)
|
||||||
|
|
||||||
|
### Technisch
|
||||||
- ❌ Keine zweite Datei (kein .css, kein .js)
|
- ❌ Keine zweite Datei (kein .css, kein .js)
|
||||||
- ❌ Keine externen Libs/CDNs (kein jQuery, kein React, kein Bootstrap)
|
- ❌ Keine externen Libs/CDNs (kein jQuery, kein React, kein Bootstrap)
|
||||||
- ❌ Kein Build-Step, kein npm
|
- ❌ Kein Build-Step, kein npm
|
||||||
@@ -163,3 +164,37 @@ git push --tags
|
|||||||
- ✅ JS `<script>` am Ende von `<body>`
|
- ✅ JS `<script>` am Ende von `<body>`
|
||||||
- ✅ `localStorage` für Persistenz
|
- ✅ `localStorage` für Persistenz
|
||||||
- ✅ Eine HTML-Datei, die im Browser per `file://` läuft
|
- ✅ Eine HTML-Datei, die im Browser per `file://` läuft
|
||||||
|
|
||||||
|
### Coding-Regeln (bindend!)
|
||||||
|
|
||||||
|
**Variablen & Funktionen — lesbare Namen**
|
||||||
|
- ❌ `C`, `ts`, `fm`, `sv`, `ld`, `at`, `rv`, `rb`, `op`, `cl`, `rs`, `ri`, `rp`, `pf`, `ie`
|
||||||
|
- ✅ `COLUMNS`, `showToast`, `formatDate`, `saveState`, `loadState`, `applyTheme`, `renderView`, `renderBoard`, `openModal`, `closeModal`, `renderStreaks`, `renderInsights`, `registerPalette`, `previousFocus`, `isEditing`
|
||||||
|
- **Jede Variable und Funktion MUSS einen selbsterklärenden Namen haben.** Keine Abkürzungen unter 4 Zeichen.
|
||||||
|
|
||||||
|
**JavaScript**
|
||||||
|
- ✅ `const`/`let` — NIE `var`
|
||||||
|
- ✅ `===` statt `==`
|
||||||
|
- ✅ Template-Literals `` `Hallo ${name}` `` statt `'Hallo ' + name`
|
||||||
|
- ✅ Arrow-Funktionen `() => {}` wo sinnvoll
|
||||||
|
- ✅ `for...of` statt `for(var i=0;...)` wo möglich
|
||||||
|
- ❌ Kein `eval()`, kein `innerHTML` mit ungeprüftem Input
|
||||||
|
- ❌ Keine globalen Variablen (alles in IIFE oder Modul-Scope)
|
||||||
|
|
||||||
|
**CSS**
|
||||||
|
- ✅ CSS-Variablen (`var(--bg)`) nutzen — NIEMALS Farben hartkodieren
|
||||||
|
- ✅ Dark Mode NUR über `[data-theme="dark"]` und `prefers-color-scheme`
|
||||||
|
- ✅ `rem`/`em` für Schrift, `px` nur für Borders, `%`/`fr`/`vh`/`vw` für Layout
|
||||||
|
- ❌ Kein `!important`
|
||||||
|
- ❌ Keine Inline-Styles im HTML (alles im `<style>`-Block)
|
||||||
|
|
||||||
|
**HTML**
|
||||||
|
- ✅ Semantisch: `<aside>`, `<nav>`, `<main>`, `<section>`, `<dialog>` wo passend
|
||||||
|
- ✅ ARIA-Labels für interaktive Elemente ohne sichtbaren Text
|
||||||
|
- ✅ `tabindex` nur wo nötig, korrekte Reihenfolge
|
||||||
|
- ❌ Kein `<div onclick="...">` — immer `addEventListener` in JS
|
||||||
|
|
||||||
|
**Kommentare**
|
||||||
|
- ✅ Jede Funktion hat EINEN Satz darüber, was sie tut
|
||||||
|
- ✅ Komplexe Logik (Streak, DnD, Chart) hat 2-3 Zeilen Erklärung
|
||||||
|
- ❌ Keine auskommentierten Code-Blöcke
|
||||||
|
|||||||
Reference in New Issue
Block a user