Files
Kirschner-Geb-udeservice/DESIGN.md
T
NotPika69andClaude Opus 5.5 62916fc179 Neue Website Kirschner Gebäudeservice
Statische Seite ohne Build und ohne Fremdanfragen: Start, Leistungen,
Unternehmen, Karriere, Kontakt, Impressum und Datenschutz. Design
„Präzision in Blau" mit Archivo Variable, Motion über lokal eingebundenes
GSAP/ScrollTrigger/SplitText und Lenis, reduced-motion-Fallback.
Seiten entstehen aus tools/build_pages.py.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 20:34:00 +02:00

107 lines
5.4 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.
# Kirschner Gebäudeservice — Design-System
Live-Dateien: sieben HTML-Seiten im Wurzelordner, `assets/site.css`, `assets/motion.js`.
Stand 2026-09-30. Offene Punkte: [`README.md`](README.md).
## Benannte Referenz
Workspace-Regel: *kein UI-Code ohne benannte Referenz*. Für einen Gebäudedienstleister gab es
keine Familie; deshalb am 2026-09-30 neu angelegt und gemessen:
**[`gebaeudedienstleister-de.md`](../../ASX%20Studio/design-references/entries/gebaeudedienstleister-de.md)**
— Piepenbrock + Dussmann als Branchen-Baseline, Familie *Premium Local Service / Facility*.
**Übernommen:** genau ein gesättigtes Markenblau (Piepenbrock bestätigt Blau als Vertrauensfarbe der
Branche), Body ≥ 17px (Dussmann 18px), Menschen im Hero, sobald echte Fotos da sind.
**Bewusst anders:** Headlines 3× größer als die Branche (38–40px dort), Motion als Markenträger statt
0.15s-Hover, null Fremd-Tracking und daher kein Cookie-Banner.
Ergänzend gestützt auf **BaseHub** (Dark + ein Akzent) und **Teenage Engineering**
(Industrieblau, Typo-Extreme).
## Farbe
Alle Neutraltöne sind blau getönt, kein reines Grau. Ein Akzent: das Mittelblau aus dem Logo.
| Token | Wert | Einsatz | Kontrast |
|---|---|---|---|
| `--night-950` | `#0A1424` | Grundfläche | — |
| `--night-900` / `-800` / `-700` | `#0F1D33` / `#16263F` / `#1F3354` | Tiefe Sektionen, Karten | — |
| `--paper` | `#F2F5F9` | Helle Sektionen | — |
| `--fog` | `#E8EEF6` | Text auf Nacht | 15.8 : 1 |
| `--fog-soft` | `#A9B7CC` | Fließtext auf Nacht | 9.1 : 1 |
| `--fog-mute` | `#8C9BB3` | nur Labels auf Nacht | 6.5 : 1 |
| `--ink-soft` | `#4A5873` | Fließtext auf Papier | 6.5 : 1 |
| `--kk` | `#5B8AD6` | **der Akzent** auf Nacht, Button-Fläche mit Nacht-Text | 5.3 : 1 |
| `--kk-ink` | `#2F5FAE` | Akzent als Text/Fläche auf Papier | 5.7 : 1 |
Das Karriere-Band ist die einzige volle Akzentfläche der Seite — mit Nacht-Text, nie Grau
(Guardrail „keine graue Schrift auf farbigem Grund").
## Typografie
Ein Face: **Archivo Variable** (wght 100–900, wdth 62–125, OFL), lokal in `assets/fonts/`.
Nicht Inter, kein System-Font (Guardrail).
- Display: `font-stretch: 125%`, Weight 800, Tracking −0.035em, Line-Height .92
- `--fs-mega` 52–136px (Hero, Philosophie) · `--fs-display` 42–92px (Sektionen)
- Body 17px, Lead 18–22px, Label 13px Caps +0.12em
- Keine Mittelstufe zwischen Label und Display — Typo-Extreme.
## Der eine Move: „Der Winkel"
Die zwei Chevrons des KK-Logos sind die einzige Form der Seite:
- Logo als Vektor (`chev_mark`, `assets/favicon.svg`) — aus dem Rasterlogo nachgezeichnet, **vom Kunden bestätigen lassen**
- Bild-Reveals: `clip-path` mit „<"-Spitze, gesteuert über `--x` (`.reveal-img`)
- Seitenwechsel: View-Transition-Wipe mit derselben Spitze
- Button-Hover, mobiles Menü, Kontaktkarten: Füllung wischt im selben Winkel herein
- Eyebrow-Marker, Listenpunkte, Hero-Linien: dieselbe Form in klein bzw. als Strich
## Motion
Guardrail „Motion nur, wo sie Information trägt" ist **bewusst gelockert** — der Auftrag lautete
„Animationen sollen sehr gut sein". Ersatzregel: jede Animation hat einen benennbaren Zweck, und
bei `prefers-reduced-motion` bleibt nur Funktion.
| # | Wo | Was | Zweck |
|---|---|---|---|
| 1 | Start, 1× pro Session | Intro: Chevrons + Wortmarke, Winkel-Wipe (~1.3s, Klick überspringt) | Markenmoment |
| 2 | Hero | Zeilen aus Maske (SplitText), Chevron-Linien zeichnen sich, Scroll-Parallax | Hierarchie |
| 3 | Header | Glas ab 40px, beim Runterscrollen weg, beim Hochscrollen da | Platz |
| 4 | Kennzahlen | Zähler; „Jahre" wird aus dem aktuellen Jahr berechnet | Fakten |
| 5 | Leistungen Start | Desktop ≥1024px: gepinnte horizontale Strecke + Fortschritt; darunter gestapelt | Überblick |
| 6 | Osmose | Vorher/Nachher-Slider, zeigt beim ersten Sichtkontakt einmal die Ziehbarkeit | Beweis |
| 7 | Philosophie | Wort für Wort hell, an Scroll gekoppelt | Botschaft |
| 8 | Bilder | Winkel-Reveal + Scale 1.18→1 | Signatur |
| 9 | Timeline | Linie zeichnet sich mit dem Scroll | Geschichte |
| 10 | Team | Initialen/Chevron bewegen sich bei Hover | Nähe |
| 11 | Buttons | Magnet max. 6px, nur `pointer: fine` | Affordanz |
| 12 | Notruf-Pille | erscheint nach dem Hero, verschwindet am Footer | Erreichbarkeit |
| 13 | Seitenwechsel | Cross-Document View Transitions, reines CSS | Kontinuität |
| 14 | Scroll | Lenis, synchron mit ScrollTrigger; Touch bleibt nativ | Gefühl |
Easing `expo.out` / `cubic-bezier(.16,1,.3,1)`, kein Bounce/Elastic. Nur `transform`, `opacity`,
`clip-path` werden animiert.
**Robustheit:** Versteckte Startzustände gelten nur unter `html.js` *und* `no-preference`.
Lädt GSAP nicht, entfernt `motion.js` die Klasse wieder; läuft `motion.js` gar nicht, tut es ein
3-Sekunden-Timeout im `<head>`. Das Intro hat zusätzlich einen CSS-Failsafe (2.4s).
## Bibliotheken (lokal, `assets/vendor/`)
GSAP 3.15 (Core, ScrollTrigger, SplitText — seit 3.13 frei nutzbar), Lenis 1.3.26.
Zusammen ca. 55 KB gzip. Keine CDN-Anfragen.
## Bilder
Platzhalter von Unsplash, lokal als AVIF + WebP in 800/1600px (`assets/img/`). Nachweise im
Impressum. Das Vorher/Nachher-Paar ist **aus einem Foto erzeugt** (Staub/Kalk künstlich
aufgelegt) und als „Symbolbild" gekennzeichnet — ersetzen, sobald echte Fotos da sind.
Das Team zeigt Initialen statt Fotos („Foto folgt").
## Formulare
Keine — Entscheidung vom 2026-09-30. Stattdessen `tel:`-Links und `mailto:` mit vorbereitetem
Betreff und Text (Angebotsanfrage, je Stelle eine Bewerbung).