Files
guides/templates/Format/Baustein.md
2026-05-29 17:58:43 +02:00

143 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
```
BAUSTEIN-CARD-STIL (HTML+CSS, in Browser anzeigbar)
ZWECK
- Einzelner Baustein als kompakte Card-Darstellung
- Schnelles Nachschlagen einzelner Konzepte
- Card ist Teil einer größeren Baustein-Sammlung
- Nicht zum Lernen, sondern zum Wiedererkennen
- Pro Card genau 1 Baustein
FORMAT
- HTML mit eingebettetem CSS
- Im Browser anzeigbar (kein PDF-Output)
- Card auf hellgrauem Hintergrund zentriert
- Max-width 1000px, padding 28px 36px
- Border-radius 12px, dezenter Schatten
- Page-Hintergrund #f0f0f5
STRUKTUR — STRIKT NUR DIESE 4 ELEMENTE
1. Titel (h1, fett, ohne Label, ohne Logo)
2. Beschreibung (ein knapper Satz)
3. Zweck (kursiv, grau, ein knapper Satz)
4. Code-Beispiel (das eine relevanteste, mit Mini-Label oben)
KEIN Logo, KEIN "Baustein"-Label, KEIN Sprach-Tag, KEINE Sektion-Überschriften ("Beschreibung", "Zweck", "Relevante Beispiele"), KEINE Info-Blöcke, KEINE Warn/Tip/Note-Boxen, KEINE Meta-Informationen, KEINE Trennlinien zwischen Sektionen.
TYPOGRAFIE
- Body: -apple-system, "Segoe UI", sans-serif, 14px, line-height 1.5
- Titel h1: 28px, font-weight 800, letter-spacing -0.5px, line-height 1.1
- Beschreibung: 14px, line-height 1.55
- Zweck: 14px, italic, color #5a6470
- Code: "SF Mono", Consolas, monospace, 12px, line-height 1.5
- Code-Label: 10px, letter-spacing 1px
FARBEN
- Card-Hintergrund: #ffffff
- Page-Hintergrund: #f0f0f5
- Text: #1a1a1a
- Muted (Zweck): #5a6470
- Code-Hintergrund: #1e2a3a
- Code-Text: #e6e6e6
- Syntax-Highlighting:
- Keywords (.k): #ff79c6 (pink)
- Variablen (.v): #ffb86c (orange)
- Strings (.s): #f1c40f (gelb)
- Funktionen (.f): #50fa7b (grün)
- Typen (.t): #8be9fd (cyan)
- Kommentare (.c): #6b8aae italic
- Label-Farbe in Code: #8be9fd (cyan)
INHALTLICHE PRINZIPIEN
- Titel: GELÄUFIGSTER Kurzbegriff, max 1-2 Wörter, kein Präfix, keine Variante
- Gut: "Header", "Variable", "Klasse", "for-Schleife"
- Schlecht: "Überschriften h1h6", "Variablen-Deklaration mit Typ"
- Beschreibung: WAS macht es mechanisch? 1 Satz, max 5 Wörter, abstrakt/technisch
- Gut: "Definiert eine Überschrift.", "Wiederholt einen Code-Block."
- Schlecht: "Sechs Ebenen von der wichtigsten bis zur untergeordneten Überschrift."
- Zweck: WANN brauche ich das? 1 Satz, max 5 Wörter, situativ/Problem-Trigger
- Gut: "Strukturiert die Seiteninhalte.", "Liste oder Bereich durchgehen."
- Schlecht: "Gliedert Inhalt in Hierarchie für Leser, SEO und Screenreader-Navigation."
- WICHTIG: Beschreibung und Zweck dürfen sich NICHT inhaltlich überschneiden
- Schlecht (tautologisch): Beschreibung "Wiederholt Code." / Zweck "Etwas mehrfach tun."
- Gut (distinkt): Beschreibung "Wiederholt einen Code-Block." / Zweck "Liste oder Bereich durchgehen."
- Beide Sätze: jedes überflüssige Wort raus, keine Aufzählungen, keine Komma-Listen
- Genau EIN Code-Beispiel: das relevanteste / häufigste / typischste
- Beispiel zeigt den Standard-Use-Case, nicht Edge-Cases
- Label über Beispiel: max 2-3 Wörter, einfach, beschreibend
- Gut: "Alle Header", "Zuweisung", "Grund-Regel"
- Schlecht: "Alle Ebenen h1h6", "Variable mit Typ-Hint deklarieren"
LAYOUT-DETAILS
- Header und Body keine separaten Sektionen, alles in einer Card
- Titel zuerst, darunter direkt Beschreibung, darunter Zweck (mit margin-bottom)
- Margin-bottom Titel: 14px
- Margin-bottom Beschreibung: 6px (eng zum Zweck)
- Margin-bottom Zweck: 22px (Abstand zu Code)
- Code-Block padding: 14px 16px, border-radius 8px
CODE-BEISPIEL
- GENAU EIN Beispiel pro Card
- Das relevanteste, typischste, häufigste — nicht Edge-Cases
- Sehr kurz: ideal 3-6 Zeilen, max 8 Zeilen
- Mit kurzem Label oben (2-4 Wörter)
- Syntax-Highlighting durch span-Klassen (.k, .v, .s, etc.)
HTML-ENTITIES IM CODE (PFLICHT bei HTML/XML/JSX/Vue/JSX-ähnlichem Code)
- Wenn das Code-Beispiel SELBST HTML, XML, JSX oder ähnliche Tag-Syntax zeigt, MÜSSEN spitze Klammern als HTML-Entities geschrieben werden:
- `<` → `&lt;`
- `>` → `&gt;`
- `&` → `&amp;`
- Grund: der Code wird via v-html im Browser gerendert. Rohe `<h1>` werden sonst als echtes DOM-Element interpretiert und verschwinden.
- Gut: `<span class="t">&lt;h1&gt;</span>Text<span class="t">&lt;/h1&gt;</span>`
- Schlecht: `<span class="t"><h1></span>Text<span class="t"></h1></span>`
- Schlecht: `<h1>Text</h1>` (komplett ohne Spans und ohne Entities)
- Diese Regel gilt NUR für die Inhalte des Code-Beispiels, NICHT für die `<span class="...">`-Wrapper selbst
KONKRETES BEISPIEL — Baustein "Header" (HTML)
```json
{
"title": "Header",
"description": "Definiert eine Überschrift.",
"purpose": "Strukturiert die Seiteninhalte.",
"examples": [
{
"label": "Alle Header",
"code": "<span class=\"t\">&lt;h1&gt;</span>Hauptüberschrift<span class=\"t\">&lt;/h1&gt;</span>\n<span class=\"t\">&lt;h2&gt;</span>Kapitel<span class=\"t\">&lt;/h2&gt;</span>\n<span class=\"t\">&lt;h3&gt;</span>Unterabschnitt<span class=\"t\">&lt;/h3&gt;</span>"
}
]
}
```
VERMEIDEN
- Lange Erklärungstexte
- Mehrere Sätze für Beschreibung oder Zweck
- Performance-Tipps, Trade-Offs, Edge Cases
- Verwandte Bausteine, Varianten, Anti-Patterns
- Tabellen, Listen, Aufzählungen
- Icons, Emojis, Symbole
- Komplexe Code-Beispiele (über 8 Zeilen)
- Mehrere Beispiele (Varianten, Alternativen)
THEMENSPEZIFISCHE ANPASSUNGEN
- Bei anderen Sprachen: Syntax-Highlighting-Klassen anpassen
- Titel-Größe und Spacing bleiben gleich
- Card-Layout bleibt gleich
- Inhalte (Beschreibung, Zweck, Beispiel) sprachspezifisch
GENERIERUNG MIT FEEDBACK-LOOP
1. HTML schreiben
2. In Browser anzeigen (Playwright-Screenshot oder direkt)
3. Prüfen:
- Wirklich nur 4 Elemente (Titel, Beschreibung, Zweck, Beispiel)?
- Beschreibung und Zweck je max 5 Wörter?
- Titel max 1-2 Wörter, geläufiger Kurzbegriff?
- Label max 2-3 Wörter, simpel?
- Code-Beispiel unter 8 Zeilen?
- Label über Code-Block kurz und prägnant?
- Card kompakt, kein leerer Raum?
- Ist das gewählte Beispiel wirklich das typischste?
- Bei HTML/XML/JSX-Code: alle `<` und `>` als `&lt;` und `&gt;` geschrieben?
4. Wenn etwas zu viel: weglassen, nicht hinzufügen
5. Bei jeder Iteration prüfen: lässt sich noch was weglassen?
```