Zusammenfuehrung der bisher verstreuten CI (Markendoku + Open-WebUI-Skill) in ein versioniertes Repository. Neu: tools/kalina-pdf (build/stamp/check/tokens), tokens.json, docs/aenderungen.md als verbindlicher Aenderungsweg.
90 lines
4.6 KiB
Markdown
90 lines
4.6 KiB
Markdown
---
|
|
name: kalina-ci
|
|
description: Use when a PDF, page or slide must carry the KALINA corporate identity. One CSS, one CLI, one source.
|
|
metadata:
|
|
version: "1.0.0"
|
|
stand: "2026-10-23"
|
|
---
|
|
|
|
# KALINA CI — Corporate Identity für Dokumente und Seiten
|
|
|
|
Diese Skill-Datei ist der Einstiegspunkt in die KALINA CI. Alles, was nach KALINA
|
|
aussehen soll — PDF, Bericht, Angebot, Folie, Landingpage — nimmt **diese** Dateien,
|
|
nicht selbst erfundene Farben und nicht ein nachgebautes Logo.
|
|
|
|
**Die CI ist versioniert.** Änderungen laufen über das Repository (Issue → Branch → PR),
|
|
nicht ad hoc in einem Projekt. Siehe `docs/aenderungen.md`.
|
|
|
|
## Was hier liegt
|
|
|
|
| Pfad | Rolle |
|
|
|---|---|
|
|
| `css/kalina-ci.css` | Satzvorlage: `@page` A4, Kopfleiste, Tabellen, Plakette, Fußlinie |
|
|
| `templates/report.html` | Mehrseitiger Bericht (Deckblatt, Abschnitte, Tabellen) |
|
|
| `templates/page.html` | Einzelne Seite / Handout |
|
|
| `templates/bild-mit-prompt.html` | Generiertes Bild mit Prompt als Dokument |
|
|
| `assets/kalina-mark.svg` | Marke (Kreis + K + Beeren), schriftfrei, überall einsetzbar |
|
|
| `assets/kalina-wordmark.svg` | Wortmarke — nur verwenden, wo DejaVu Sans liegt |
|
|
| `assets/kalina-logo-combined.svg` | Marke + Wortmarke |
|
|
| `assets/favicon/` | 16 / 32 / 180 / 512 px, gerendert aus der Marke |
|
|
| `scripts/stamp_existing_pdf.py` | Fremd-PDF stempeln (Deckblatt, Fußzeile, optional Kopfb and) |
|
|
| `tools/kalina-pdf` | CLI: bauen, stempeln, prüfen |
|
|
| `tokens.json` | Farben, Schriften, Geometrie, Zonen — maschinenlesbar |
|
|
|
|
## Drei Wege, ein Ergebnis
|
|
|
|
```bash
|
|
# 1. Neues Dokument: Vorlage kopieren, «Platzhalter» füllen, bauen
|
|
cp templates/report.html bericht.html
|
|
tools/kalina-pdf build bericht.html --stamp --titel "Angebot 2026-17"
|
|
|
|
# 2. Fremdes PDF (Anhang, Behördenpost, Kundenpdf) mit CI versehen
|
|
tools/kalina-pdf stamp eingang.pdf -o eingang-kalina.pdf --titel "Rechnung 4711"
|
|
|
|
# 3. Nur prüfen: Seiten, Füllgrad je Seite, Seite 1 als PNG
|
|
tools/kalina-pdf check bericht.pdf --raster raster/
|
|
```
|
|
|
|
`build` kopiert fehlendes `kalina-ci.css` neben die HTML-Datei, weil weasyprint
|
|
Stylesheets relativ zur HTML-Datei auflöst. `stamp` lässt das Original unangetastet
|
|
und schreibt immer eine neue Datei. `check` bricht mit Exit 1 ab, wenn eine Seite
|
|
unter 55 % Füllgrad liegt — eine Fast-Leerseite ist ein Layoutfehler, kein Inhalt.
|
|
|
|
## Regeln, die aus Fehlern entstanden sind
|
|
|
|
- **Marke ja, Wortmarke vorsichtig.** Die Marke (Kreis + K + Beeren) ist schriftfrei
|
|
und skaliert beliebig. Die Wortmarken-SVG setzt ihre Buchstaben absolut
|
|
(x = 10/80/150/212/242/319) und ist auf DejaVu Sans Bold vermessen — in einer
|
|
fremden Schrift stoßen L, i und N zusammen. In Dokumenten und Webseiten die
|
|
Wortmarke deshalb **als Text** setzen: `KAL` + rotes `i` + `NA`.
|
|
- **Auf helle Fläche Ink, auf Ink-Fläche Bone.** Bone auf Bone ist unsichtbar; im
|
|
gerasterten PDF stand dann nur das rote i.
|
|
- **Wortmarke nicht unter `s ≈ 0.2`.** Darunter ist der i-Schaft ~2 pt lang und der
|
|
Beeren-Cluster kleiner als 2 pt. In Kopfzeilen `s = 0.24`.
|
|
- **Marke im Band nie größer als das Band.** 44 mm Marke in 12 mm Band ragt heraus
|
|
und liegt auf dem fremden Titel.
|
|
- **Nach jedem Bau die erste Seite rastern und ansehen**, nicht auf Sichtbarkeit
|
|
schließen: `tools/kalina-pdf check x.pdf --raster raster/`.
|
|
- **`break-inside: avoid` nur für kurze Abschnitte.** Bei Berichten mit Abschnitten
|
|
länger als eine Seite erzwingt die Vorlage einen Seitenanfang je Abschnitt und
|
|
hinterlässt fast leere Vorderseiten (gemessen: 14 Seiten, eine bei 11,6 %; nach
|
|
Aufhebung 10 Seiten ohne Seite unter 89 %). Im eigenen `<style>`:
|
|
`@media print { .abschnitt { break-inside: auto; } }`, `h2, h3 { break-after: avoid }`.
|
|
- **Füllgrad ohne Kopf- und Fußzone messen** — sonst zählt die Fußzeile als unterster
|
|
Block und jede Seite meldet dieselben ~105 %. `kalina-pdf check` macht das richtig.
|
|
- **Überschrift und lange Tabelle gehören zusammen.** Reißt eine 12-Zeilen-Tabelle
|
|
mit einer Zeile auf die Folgeseite, ist das ein Satzfehler: `break-before: page`
|
|
an die Überschrift oder Tabelle kürzen.
|
|
|
|
## Farben
|
|
|
|
Ink `#0B0F14` · Bone `#F5F5EF` · Kalina-Rot `#C1121F` · Steel `#3A4250` · Muted `#8A94A2`
|
|
|
|
## Wenn ein anderer Agent das Design macht
|
|
|
|
Werkzeuge und Agenten, die eine Seite bauen (Bildgeneratoren, externe Design-Dienste),
|
|
sehen diese Dateien nicht und erfinden sonst ein eigenes Logo — markenfremd und meist
|
|
als schweres Raster-PNG. Also die Marke **mitgeben**: SVG inline einbetten oder als
|
|
Datei beilegen, nie einen Fremdanbieter die Marke neu zeichnen lassen. Danach
|
|
nachsehen, dass das Ergebnis keine Bilder von fremden Hosts zieht.
|