Files
ki-buch/meta/DESIGN-SYSTEM.md
grok-bot 700227df67
CI / Companion (py3.11) (push) Has been cancelled
CI / Companion (py3.12) (push) Has been cancelled
Permanente Raster-Abbildungen: Mermaid durch JPG ersetzen und Cover aktualisieren.
Alle L2-Diagramme und aktualisierte Plates/Teil-Trenner als JPG Q90 einbetten, TOC-Setext-Fallen (Bild+---) beheben und PDF mit neuem Cover neu bauen.
2026-07-24 11:01:43 +02:00

7.2 KiB
Raw Permalink Blame History

Design System — Deep Signal v2

Buch: Agentenbasierte KI-unterstützte Softwareentwicklung
Autor: Martin Richardt
Version: 2.0 (2026-07)
Geltungsbereich: Print-PDF (Pandoc → LuaLaTeX), Konzept-Plates, Mermaid-Diagramme
Referenz-Lesbarkeit: Schwesterprojekt ki-hinterm-vorhang (Leading, left-bar boxes, geometry)

Dieses Dokument ist die kanonische Spezifikation und beschreibt den tatsächlichen Build (just pdf).
Kurzreferenz Diagramme: ../bilder/STYLE.md.
Abbildungskatalog: ../bilder/ABBILDUNGEN.md.


1. Konzept

Positionierung

Moderne Tech-Fachbuch-Ästhetik 2025/26, markengebunden an das Cover:

  • Tiefes Navy, Electric Blue, gedämpftes Cyan/Teal, warmes Amber
  • Lesbarkeit vor Maximaldichte (Leading ~120 %, Ränder ~20 mm)
  • Typografie als zentrales Gestaltungselement
  • Intentionaler White Space (Rhythmus, kein leerer Himmel)

Prinzipien

  1. One Palette, two surfaces — Paper (Fließtext) + Deep Panel (Hero-Diagramme)
  2. Density by rhythm — straffen ohne quetschen; Leading ≥ 1.18
  3. Diagrams earn their ink — ≤ 6 Primär-Labels, eine Fokusfarbe
  4. No dual aesthetics — kein Default-Mermaid-Pastell neben cinematic Plates
  5. Print-first — Kontrast und Graustufen-Lesbarkeit
  6. Hierarchie ≠ Alarm — Rot nur in Pitfall-Callouts, nie in H2/H3

Mantras

  • Navy carries structure · Cyan carries data · Amber carries attention · Paper carries text
  • L1 dark cinematic · L2 light signal · same tokens · max 6 labels

2. Typografie

Familien (Hybrid Deep Signal v2)

Rolle Font Quelle
Body Charter System + DejaVu-Serif-Fallback
UI / Heads IBM Plex Sans build/fonts/IBMPlexSans-*.otf (Fallback DejaVu Sans)
Code IBM Plex Mono build/fonts/IBMPlexMono-*.otf (Fallback DejaVu Sans Mono)
Unicode Arial Unicode MS / DejaVu Sans luaotfload / newunicodechar

Implementierung: pdf/templates/preamble.tex

Skala (A4, 11 pt Klasse)

Element Größe Leading / Farbe
Body 11 pt Charter 1.20 (\setstretch{1.20}), Ink #1A1F2E
Chapter 22/26 pt Plex Sans Bold BuchNavy
Section H2 13.5/16 pt Plex Sans Bold BuchNavy
Subsection H3 11.5/14 pt Plex Sans Bold Ink (nicht Rot)
H4 10.5/13 pt Plex Sans Ink
Caption small sf InkMuted
Running head / page 8.5 pt Plex Sans muted / Amber-Seitenzahl
Code 8.3/9.6 pt Plex Mono 1.12×, Electric left bar

Absatzmodell

parindent = 1.15em
parskip   ≈ 0
itemsep   ≈ 0.12em

Kein Blog-parskip-Layout.

Listen: Keine trailing double spaces an Zeilenenden (Markdown-Hardbreaks → LaTeX \\ am \item und damit doppelte Listenabstände). scripts/assemble_book.py strippt EOL-Whitespace beim Assemblieren.


3. Farbe (Interior Tokens v2)

ink            #1A1F2E   Fließtext AAA
ink-muted      #5B6475   Captions, running head
navy-deep      #0A1628   L1-Flächen
navy           #0B1F3A   Heads, TOC, Struktur
electric       #2F6BFF   Chapter-Rule, Code-Bar, Fokus
cyan           #0E7490   Body-Chrome / Labels (gedämpft)
cyan-bright    #00B4D8   nur L1-Plates + Mermaid auf dunklem BG
amber          #B8860B   Seitenzahl, Quote-Akzent
danger         #9B2C2C   nur Callout Pitfall
success        #166534   nur Callout Practice
code-bg        #F4F6F9
code-border    #D0D7E2
rule           #C5CDD8   headsepline
link           #1E4D8C   Links AAA
paper-soft     #F7F9FC   Box-Fills / L2

LaTeX: pdf/styles/colors.tex

SCSS-Äquivalent

:root {
  --ink: #1A1F2E;
  --ink-muted: #5B6475;
  --navy: #0B1F3A;
  --navy-deep: #0A1628;
  --electric: #2F6BFF;
  --cyan: #0E7490;
  --cyan-bright: #00B4D8;
  --amber: #B8860B;
  --danger: #9B2C2C;
  --success: #166534;
  --code-bg: #F4F6F9;
  --rule: #C5CDD8;
  --link: #1E4D8C;
  --paper-soft: #F7F9FC;
}

Code (Soft IDE)

Token Farbe
Background #F4F6F9
Left bar 2.4 pt Electric
Text Ink

Callouts

Nur left bar (3.2–3.5 pt) + soft fill: Analogie (Cyan) · Practice (Green) · Pitfall (Danger) · Leitsatz (Amber) · Info (Slate).

Intro/Summary/Vertiefung/Info-Boxen: gleiches left-bar-Muster, Titel einmal als tcolorbox-Argument (boxes.lua).


4. Layout

Type Area (A4, oneside) — geometry

hmargin 20mm · top 18mm · bottom 20mm
headsep 6mm · footskip 12mm

Kein widersprüchliches KOMA-DIV mehr (v1: DIV=12 im Template vs. DIV=13 in Metadata).

CPL-Ziel

Pragmatisch ~85–100 Zeichen/Zeile auf A4. Striktes 55–70 wäre unnötig seitenintensiv.

Vertikaler Rhythmus

H2: before ~1.15·bs, after ~0.4·bs
Figures/Callouts/Code: ~0.5–0.7em
Max figure height (inline): 0.40·textheight
Figure width: 0.92·linewidth
Float placement: htbp
Pipe-table column widths: relative `---` lengths (Pandoc); rebalance with
`python3 scripts/rebalance_table_widths.py --write`

Chapter Opener

  1. Accent rule Electric 1.4 pt
  2. Titel Plex Bold Navy (Manuskript enthält bereits „Kapitel n:“)
  3. Optionaler Subtitle italic muted
  4. Erste Zeile ohne Einzug (KOMA)

Running heads

Hairline RuleLine · Kapiteltitel muted · Seitenzahl Amber


5. Diagramme (Kurz)

Ebene Name Surface
L1 Deep Plate Navy BG, landscape, cinematic; CyanBright ok
L2 Signal Diagram Hell #F7F9FC, Electric strokes

Details: ../bilder/STYLE.md.


6. Pipeline-Mapping

Kanonisch: Just + Pandoc + LuaLaTeX → dist/agentenbasierte-ki-se.pdf.

Spec Datei
Farben v2 pdf/styles/colors.tex
Typo, Layout, Callouts pdf/templates/preamble.tex
Pandoc-Template pdf/templates/book.tex
Metadata pdf/metadata.yaml
Box-Filter pdf/filters/boxes.lua
Orchestrierung justfile
Mermaid L2-Theme build/preprocess_mermaid.py
Assemble scripts/assemble_book.py
Post-Build-QA scripts/check_pdf.py / just qa
just pdf                 # → dist/agentenbasierte-ki-se.pdf
SKIP_MERMAID=1 just pdf  # ohne Mermaid-Neu-Render
just pdf-sample          # Vorwort + Einleitung + Kap. 1
just qa                  # Post-Build-Checks

7. Acceptance (v2)

  1. Fonts im PDF: Charter + IBM Plex Sans (+ Mono) eingebettet
  2. Leading ≥ 1.18
  3. Kein PitfallRed auf Subsection
  4. Body Ink/Weiß ≥ WCAG AAA; Cyan/Amber nicht als Fließtext
  5. Seitenbudget vs. v1-Baseline 310: ≤ +8 % (≤ ~335) — Ist v2: 292 (−5.8 %)
  6. just pdf grün; Spec = Build

Messwerte (2026-07-23)

Metrik v1 (vor Design-v2) v2 Ist
Seiten 310 292 (−18)
Body Charter 11 pt, stretch 1.04 Charter 11 pt, stretch 1.20
Sans/Mono DejaVu IBM Plex Sans/Mono eingebettet
Ränder DIV 12/13 Konflikt geometry 20 mm
H3-Farbe PitfallRed Ink
Boxen voller Rahmen + Doppel-Titel-Risiko left bar, Titel einmal
just qa — OK