PACE Design System 4.6
Living Style Guide für die gesamte PACE Markenarchitektur. Zentrale Referenz für alle digitalen Produkte: PACE Cloud, PACE Drive und zukünftige Anwendungen.
Markenarchitektur
PACE operiert mit einer klaren Markenarchitektur für unterschiedliche Zielgruppen.
#00CCF0. Vorzugsweise auf dunklem Grau.Akzentfarbe: Gelb
#FFD700Gradient: Cyan → Gelb
Tonalität: Freundlich, Du-Form
Akzentfarbe: Pink
#E62048Gradient: Cyan → Pink
Tonalität: Professionell, Sie-Form
Letzte Aktualisierung: März 2026 · Kontakt: design@pace.car
Farbsystem
Triadisches Schema (Cyan–Gelb–Pink) + Neutraltöne + Statusfarben. Klicke auf eine Farbe, um den Hex-Wert zu kopieren.
Primärfarben
RGB: 0, 204, 240
RGB: 255, 218, 1
RGB: 230, 32, 72
Neutrale Farben
PACE Cloud – Dark Theme Tokens Cloud
Spezifische Farbwerte für die dunkle PACE Cloud Website (B2B). Diese erweitern die Basispalette und sind systematisch vom Brand Cyan abgeleitet.
Statusfarben
PACE Drive – Produkt-Tokens Drive
PACE Drive verwendet die identischen Dark-Theme-Tokens wie PACE Cloud (HSL 207°-System). Der Unterschied liegt ausschließlich in Akzentfarbe und Gradient.
RGB: 255, 218, 1
RGB: 204, 176, 1
RGB: 255, 236, 128
Produktspezifisch:
Cloud: --brand-accent-b2b (#E62048), --gradient-cloud (Cyan→Rot), --gradient-text (Cyan→Rot)
Drive: --brand-accent-b2c (#FFD700), --gradient-drive (Cyan→Gelb), --gradient-text-drive (Cyan→Gelb)
Theme-Vergleich
Gegenüberstellung der Dark- und Light-Tokens für Hintergründe, Text und Borders.
Gradienten
Cyan → Gelb – warm, einladend
Cyan → Pink – technisch, kraftvoll
Cyan als Fläche, vorzugsweise auf dunklem Grau – kein Verlauf
Gradient-Text Shared
Farbverläufe als Textfarbe – für Headlines und Akzente. Jedes Produkt hat seinen eigenen Text-Gradient.
Schriftsystem
Inter ist die primäre Schriftfamilie für alle digitalen Anwendungen. Die Logo-Wortmarke nutzt exklusiv Proxima Soft.
Schriftschnitte
Typografie-Skala
| Element | Size | Weight | Line Height | Letter Spacing |
|---|---|---|---|---|
| H1 (Hero) | clamp(2.5rem, 6vw, 5rem) | Bold (700) | 1.08 | -0.035em |
| H2 | clamp(2rem, 4vw, 3rem) | Bold (700) | 1.15 | -0.02em |
| H3 | clamp(1.3rem, 2.5vw, 1.8rem) | Semibold (600) | 1.3 | -0.015em |
| H4 | 18–20px | Semibold (600) | 1.4 | -0.01em |
| Body Large | 18–20px | Regular (400) | 1.6 | 0 |
| Body | 16px | Regular (400) | 1.6 | 0 |
| Small | 14px | Regular (400) | 1.5 | 0 |
| Caption | 12px | Medium (500) | 1.4 | 0.01em |
| Overline | 11px | Bold (700) | 1.2 | 0.1em |
| Stat Number | clamp(2.5rem, 4vw, 2.8rem) | Extrabold (800) | 1.0 | -0.02em |
Live-Vorschau: PACE Cloud (Dark)
der Mobilität
clamp() für fluid-responsive Größen. Dadurch skaliert die Schrift zwischen Mobile und Desktop ohne Breakpoints.Typografische Sonderzeichen
| Zeichen | Name | Unicode | Verwendung |
|---|---|---|---|
| – | Halbgeviertstrich (En Dash) | U+2013 / – |
Gedankenstriche im Fließtext, immer mit Leerzeichen: Bezahlen – direkt und sicher |
| — | Geviertstrich (Em Dash) | U+2014 |
Nicht verwenden – im Deutschen nicht üblich |
Regel: Als Gedankenstrich wird ausschließlich der Halbgeviertstrich (–) verwendet, mit je einem Leerzeichen davor und danach. Der Geviertstrich (—) ist nicht zulässig.
Spacing & Border Radii
4px Grundraster, 8px Basis-Einheit. Konsistente Abstände über alle Komponenten.
Spacing-Skala
Border Radii
Buttons
Ein durchdachtes Button-System mit 5 Varianten. Der Prominent-Button hebt sich durch einen wabernden inneren Cyan↔Rot-Verlauf ab. Alle animierten Buttons nutzen „Breathing“-Animationen, die einen lebendigen Eindruck vermitteln ohne abzulenken.
Wichtig: Alle Buttons verwenden border-radius: 10px (--radius-btn). Dies weicht bewusst vom Standard --radius-md (8px) ab, um Buttons optisch hervorzuheben.
| Variant | Padding | Border | Font-weight | Animation |
|---|---|---|---|---|
| Prominent | 14px 32px | 2px | 700 | prominentBreathe 4s |
| Primary | 14px 32px | 1px | 600 | primaryBreathe 4s |
| Secondary | 14px 32px | 1px | 500 | none |
| Karriere | 8px 20px | 1.5px | 600 | karriereBreathe 4s |
| Ghost / Text | 0 | none | 600 | none |
Drive Button-Varianten Drive
PACE Drive Buttons nutzen den gleichen Aufbau, aber Gelb statt Rot im Breathing-Gradient.
Diese Klassen sind in index.html definiert und können direkt verwendet werden:
Verwendung: Ghost Buttons sind für sekundäre Aktionen in Cards und Inline-Kontexten. Primär-Farbe: Cyan für vorwärts gerichtete Aktionen, Tertiary für „Zurück“-Aktionen.
Formulare
Konsistente Form-Elemente mit subtiler Cyan-Fokusierung und standardisiertem Error-State.
| State | Border-color | Box-shadow |
|---|---|---|
| Default | rgba(255,255,255,0.08) | none |
| Focus | #00CCF0 | 0 0 0 3px rgba(0,204,240,0.1) |
| Error | #E62048 | none |
Badges & Tags
Kleine Label-Komponenten für Kategorisierung, Status und Feature-Kennzeichnung.
Regel: Hero Pills verwenden text-transform: uppercase, color: #00CCF0 und font-weight: 700. Letter-spacing: 0.08em.
Roadmap Steps (V2F)
Animierte Schritt-für-Schritt Darstellung mit SVG-Straße, fahrendem LKW und Glasmorphism-Cards. Wird auf allen Produktseiten (Fueling, Washing, Charging) eingesetzt.
| Element | Wert |
|---|---|
| Scene Background | #0F1215 (--cloud-bg) |
| Scene Border | 1px solid rgba(255,255,255,0.04) |
| Scene Radius | 16px (--radius-xl) |
| Dot-Grid | radial-gradient(rgba(0,204,240,0.03)), 32px Raster |
| Straße (Außen) | #1a2029, 32px breit |
| Straße (Innen) | #232b35, 22px breit |
| Mittelstreifen | rgba(255,255,255,0.06), gestrichelt 10/10 |
| Glow-Trail | Gradient #00CCF0 → #E62048, 6s Animation |
| Stationen | Pulsierende Kreise, 2× Cyan + 1× Rot (Ziel) |
| Fahrzeug | LKW (🚛), animateMotion auf SVG-Pfad |
| Eigenschaft | Wert |
|---|---|
| Background | rgba(28,34,40,0.95) + backdrop-filter: blur(10px) |
| Border | 1px solid rgba(0,204,240,0.12) |
| Radius | 16px (--radius-xl) |
| Nummer | #00CCF0, 22px, font-weight 800 |
| Icon | Streamline Light SVG, 32×32px |
| Titel | #F0F1F2, 15px, font-weight 700 |
| Text | #A2ACB4, 13px, line-height 1.5 |
| Hover | translateY(-4px) + box-shadow cyan glow |
SVG-Straße und Dot-Grid werden ausgeblendet. Cards werden vertikal gestapelt mit einer Gradient-Linie (Cyan → Rot) als Timeline-Indikator links.
Cards
Erhöhte Container mit subtilen Hover-Effekten. Alle nutzen die Standard-Easing cubic-bezier(0.23,1,0.32,1) für 0.4s Transition.
| Property | Value |
|---|---|
| Background | #1D2328 |
| Border | 1px solid rgba(255,255,255,0.04) |
| Border-radius | 16px (--radius-xl) |
| Hover transform | translateY(-6px) |
| Hover shadow | 0 20px 60px rgba(0,0,0,0.4) |
| Transition | all 0.4s cubic-bezier(0.23,1,0.32,1) |
Service Cards (Schnelleinstiege)
Die drei Produkt-Cards auf der Homepage (Fueling, Washing, Charging) nutzen eine erweiterte Card-Variante mit größerem Bild und Lottie-Icon-Badge.
| Property | Value |
|---|---|
| Bildhöhe | 220px |
| Titel | 1.4rem / font-weight: 700 |
| Body Padding | 36px 28px 28px |
| Icon-Badge | 52×52px, border-radius: 50%, kein Border, kein Schatten |
| Icon-Badge Position | absolute, top: 196px, left: 28px (halb über Bildkante) |
| Icon-Badge Inhalt | Lottie-Animation (28×28px), loop: true, autoplay: true |
| Lottie-Dateien | fueling.json, washing.json, charging.json (64×64, 30fps) |
| CTA-Link | 14px / font-weight: 600 / var(--brand-primary) / Pfeil animiert +4px bei Hover |
Hinweis: Die Lottie-Animationen werden inline im HTML eingebettet (nicht per Fetch), um CORS-Probleme bei lokaler Vorschau zu vermeiden. Alle drei Cards sind als <a>-Links zu den jeweiligen Produktseiten implementiert.
Icon-System
Streamline Icons (Outline-Variante) als primäres Icon-Set. Lottie-Animationen für die drei Kernprodukte. Alle Icons werden über CSS-Filter oder direkte SVG-Färbung eingefärbt.
Größen
| Variante | Größe | Verwendung |
|---|---|---|
| Default | 44 × 44 px |
Cards, Feature-Listen, Lösungs-Übersicht |
| Small | 36 × 36 px |
Mobile Cards, kompakte Layouts |
| Inline | 24 × 24 px |
Neben Text, in Buttons, Navigation |
| Micro | 16 × 16 px |
Inline-Pfeile, Chevrons in Buttons |
Farbgebung (Dark Theme)
filter oder direkte fill/stroke-Änderung eingefärbt. Standard: Cyan (#00CCF0) für Feature-Icons in Cards, Text-Secondary (#A2ACB4) für neutrale/informative Icons.Lottie-Animationen
| Produkt | Motiv | Loop | Fallback |
|---|---|---|---|
| Fueling | Zapfsäule | true (endlos) | Statisches SVG-Icon |
| Washing | Auto + Tropfen | true (endlos) | Statisches SVG-Icon |
| Charging | Batterie + Blitz | true (endlos) | Statisches SVG-Icon |
Link-Styles
Drei Link-Varianten für unterschiedliche Kontexte: Fließtext, Navigation und Card-Aktionen.
In-Text Links
Verbinden Sie Ihre Tankstellen mit Europas führender Plattform für Connected Car Services.
Regel: In-Text-Links nutzen color: #00CCF0 mit dezenter Unterstreichung (border-bottom: 1px solid rgba(0,204,240,0.3)). Beim Hover wird die Linie voll sichtbar. Kein text-decoration: underline – immer border-bottom für sauberere Optik.
Kontrastvergleich
| Kontext | Farbe | Hover | Underline |
|---|---|---|---|
| Fließtext | #00CCF0 | Border voll sichtbar | border-bottom (dezent) |
| Navigation | #A2ACB4 → #F0F1F2 | Glow-Underline | Cyan + Box-Shadow |
| Card-Aktion | #00CCF0 | Pfeil-Animation | keine |
Bildsprache & Overlays
Regeln für Bildformate, Seitenverhältnisse, Gradient-Overlays und die responsive object-position Steuerung.
Seitenverhältnisse
| Kontext | Ratio | Typische Höhe | Hinweis |
|---|---|---|---|
| Hero (Fullscreen) | 16:9 / frei | min-h-screen / min-h-[70vh] |
object-fit: cover + Gradient-Overlay |
| Service Card | ~16:9 | 220px (180px mobile) |
Grayscale-Filter im Ruhezustand |
| CTA Box | frei | min-height: 420px |
60% Overlay + zentrierter Text |
| Team/Kultur | ~3:2 | 220px |
Kein Filter, Cyan-Border-Akzent |
Gradient-Overlays auf Hero-Bildern
Object-Position System
Jedes Hero-Bild erhält eine eigene CSS-Klasse (z. B. .img-pace09048) mit responsiven object-position-Werten. Diese Klassen steuern, welcher Bildausschnitt bei verschiedenen Viewports sichtbar ist – besonders wichtig für Portraits, wo Gesichter nicht abgeschnitten werden dürfen.
@media(min-width:768px) → @media(min-width:1024px). Bei Portraits das Gesicht immer im sichtbaren Bereich halten.Service-Card Bildfilter
Default: filter: grayscale(0.4) brightness(0.7)
Hover: filter: grayscale(0) brightness(0.9)
Tabellen
Spezifikation für Datentabellen in der Dark-Umgebung. Konsistentes Styling für alle tabellarischen Inhalte.
| Produkt | Stationen | Länder | Status |
|---|---|---|---|
| Fueling | 13.800+ | 15 | Live |
| Washing | 2.400+ | 4 | Live |
| Charging | 5.000+ | 8 | Beta |
Regeln: Header nutzen text-secondary, uppercase, font-size: 12px. Zeilen-Trenner: rgba(255,255,255,0.04). Zebra-Stripes sind optional.
Zitate & Blockquotes
Stil für Zitate, Testimonials und hervorgehobene Aussagen.
„PACE hat unsere Tankstellen-Infrastruktur in drei Monaten digitalisiert. Die Integration war reibungslos.“
„50 Millionen Transaktionen sprechen für sich.“
Regeln: Zitate nutzen font-style: italic, 18px, line-height: 1.7. Linke Border: Cyan für externe Zitate, Rot für interne/PACE-Zitate. Deutsche Anführungszeichen: „…“
Hero Sections
Large-Scale Komponenten für visuelles Impact. Gradient-Text, floating Orbs und Overlay-Layer schaffen Tiefe.
| Element | Property | Value |
|---|---|---|
| Gradient Text | background | linear-gradient(90deg, #00CCF0, #E62048) |
| Gradient Text | animation | gradientShift 6s ease-in-out infinite |
| Orbs | filter | blur(40px–50px) |
| Orbs | animation | orbFloat 4s–6s ease-in-out infinite |
Animationen & Motion
Ein durchdachtes Bewegungs-System mit 8 Keyframe-Animationen und standardisierter Easing für kohärente UX.
| Name | Duration | Easing | Usage |
|---|---|---|---|
prominentBreathe |
4s | ease-in-out | Prominent Button |
primaryBreathe |
5s | ease-in-out | Primary Button |
prominentBreatheLight |
4s | ease-in-out | Prominent Button (Light Theme) |
primaryBreatheLight |
4s | ease-in-out | Primary Button (Light Theme) |
prominentBreatheDark |
4s | ease-in-out | Prominent Button (Dark-BG Sections in Light) |
gradientShift |
6s | ease-in-out | Gradient Text |
fadeInUp |
0.8s | cubic-bezier(0.23,1,0.32,1) | Scroll Reveal |
pingPulse |
1.5s | ease-in-out | Indicator Pulse |
scrollWheel |
1.5s | ease-in-out | Scroll Indicator |
orbFloat |
4s–6s | ease-in-out | Hero Orbs |
lineGlow |
3s | ease-in-out | Header Gradient Line |
Reveal Animationen (Scroll-Trigger)
| Property | Value | Note |
|---|---|---|
| Standard Easing | cubic-bezier(0.23,1,0.32,1) | Für alle Transitions & Reveals |
| Reveal Duration | 0.8s | Scroll-Trigger Animations |
| Stagger Increment | 0.1s | .stagger-1, .stagger-2, .stagger-3 |
| Card Transition | all 0.4s cubic-bezier(0.23,1,0.32,1) | Hover Effects |
UI Patterns
Wiederverwendbare Interface-Patterns für Apps, Dashboards und interne Tools. Navigation Patterns, Data Display, Form Patterns, Feedback & Notifications.
Screendesign & Figma
Figma-Bibliothek, Screendesign-Spezifikationen, Handoff-Richtlinien. Token-Export für Figma Variables, Komponenten-Mapping zwischen Code und Design.
Mobile Overflow-Schutz
Umfassender Schutz gegen horizontales Scrollen auf iOS/Mobile.
| Regel | CSS |
|---|---|
| Global | html, body { overflow-x: hidden !important; width: 100% !important; } |
| Container | section, .page, header, footer { overflow-x: clip !important; } |
| Texte | h1, h2, h3, p { overflow-wrap: break-word; } |
| Dekorative Orbs | Verkleinert (200×200px bzw. 140×140px unter 480px), negative Positionen eliminiert |
| Header-Gradient | max-width: min(90%, 100vw) |
Hinweis: overflow-x: clip ist zuverlässiger als hidden auf iOS, da es keine neuen Scroll-Container erzeugt.
Barrierefreiheit & Kontraste
WCAG 2.1 AA als Mindeststandard. Alle Text-Hintergrund-Kombinationen müssen ein Kontrastverhältnis von mindestens 4.5:1 (Normaltext) bzw. 3:1 (großer Text ≥ 18px bold) einhalten.
Kontrastmatrix (Dark Theme)
| Textfarbe | Auf Hintergrund | Ratio | WCAG AA |
|---|---|---|---|
| text-primary (#F0F1F2) | bg-page (#0F1215) | 16.6:1 | ✓ Pass |
| text-secondary (#A2ACB4) | bg-page (#0F1215) | 8.1:1 | ✓ Pass |
| text-tertiary (#7B8893) | bg-page (#0F1215) | 5.2:1 | ✓ Pass |
| text-tertiary (#7B8893) | bg-card (#1D2328) | 4.4:1 | ⚠ Large only |
| brand-primary (#00CCF0) | bg-page (#0F1215) | 8.9:1 | ✓ Pass |
| accent-b2c (#FFD700) | white (#FFFFFF) | 1.4:1 | ✗ Fail |
#7B8893 (Tertiary) nur für Labels und Captions, nicht für Fließtext auf Cards.
#4B545B (Muted) nur für dekorative Elemente, nicht für lesbaren Text.
Viewport & Zoom
Pinch-to-Zoom darf nicht deaktiviert werden. Korrekte Viewport-Konfiguration:
Fokus-Indikatoren
Alle interaktiven Elemente müssen einen sichtbaren Fokus-Indikator haben. Standard: box-shadow: 0 0 0 3px rgba(0,204,240,0.3) beim :focus-visible State.
CSS Design Tokens
Alle Werte als CSS Custom Properties – Single Source of Truth. Kopiere diesen Block in dein Projekt.
PACE Drive – Zusätzliche Tokens Drive
Präsentationen
Fullscreen HTML-Präsentationen mit scroll-snap, IntersectionObserver-Animationen und Dark/Light-Theme. Alle Farben und Tokens werden aus diesem Styleguide geerbt – der Skill und das Template referenzieren diese Quelle.
Architektur
Jede Präsentation ist eine einzelne HTML-Datei mit eingebettetem CSS und JS. Die Struktur besteht aus drei Schichten:
<link> eingebunden.Slide-System
Slides sind fullscreen Sektionen mit scroll-snap-align: start. Jeder Slide ist ein <section class="slide"> mit einem .slide__inner-Container für den Content.
| Klasse | Beschreibung | Hintergrund (Dark) | Hintergrund (Light) |
|---|---|---|---|
.slide--hero | Eröffnungsslide mit Gradient und Glow-Effekt | linear-gradient(160deg, #0a1628, #0F1215, #0d1a1c) | linear-gradient(160deg, #dff0f7, #edf1f2, #e0f2f0) |
.slide--dark | Standard-Slide auf dunklem Grund | var(--bg-page) = #0F1215 | var(--bg-page) = #edf1f2 |
.slide--surface | Leicht erhöhter Hintergrund | var(--bg-surface) = #161B1F | var(--bg-surface) = #f7f9fa |
.slide--accent | Akzent-Slide für Zwischentitel | linear-gradient(160deg, #0d1a1c, #0F1215) | linear-gradient(160deg, #e0f2f0, #edf1f2) |
.slide--cta | Call-to-Action / Abschluss-Slide | linear-gradient(160deg, #0a0c14, #0d1a1c, #0F1215) | linear-gradient(160deg, #f0f4f6, #e8eef0, #edf1f2) |
.slide--admin | Admin/Settings-Kontext (orangener Glow) | wie .slide--dark + orangener Glow | wie .slide--dark + orangener Glow |
<section class="slide slide--hero">
<div class="slide__inner">
<!-- Content hier -->
</div>
</section>Hinweis: .slide__inner hat max-width: 960px und padding: 48px 64px. Für PDF-Export kann per CSS-Injection ein breiteres Layout erzwungen werden.
Animations-System
Elemente mit der Klasse .anim starten unsichtbar und werden durch den IntersectionObserver beim Betreten des Slides eingeblendet. Richtungs- und Timing-Varianten:
| Klasse | Effekt | Standard-Dauer |
|---|---|---|
.anim | Fade in + nach oben (translateY 30px → 0) | 0.6s |
.anim--left | Von links einschieben (translateX -30px) | 0.6s |
.anim--right | Von rechts einschieben (translateX 30px) | 0.6s |
.anim--scale | Hineinzoomen (scale 0.92 → 1) | 0.6s |
.anim-chip | Chip-Animation (translateY 10px, 0.4s) | 0.4s |
.anim-bounce | Icon-Bounce (scale 1→1.2→0.95→1) | 0.6s |
.anim-glow | Pulsierender Schatten-Glow | 2s loop |
.anim-pulse | Flow-Pfeil-Pulsieren | 2s loop |
Delay-Klassen: .anim-d1 (0.1s) bis .anim-d8 (0.8s) – steuern die gestaffelte Einblendung innerhalb eines Slides.
<!-- Beispiel: gestaffelte Animation -->
<div class="eyebrow anim anim-d1">Kategorie</div>
<h2 class="slide-title anim anim-d2">Titel</h2>
<p class="slide-desc anim anim-d3">Beschreibung</p>
<div class="stat-grid anim anim-d4">...</div>Keyframes
Vordefinierte Keyframe-Animationen für Spezialeffekte:
| Keyframe | Zweck |
|---|---|
@keyframes fadeInUp | Standard fade-in von unten |
@keyframes fadeInLeft / fadeInRight | Seitliches Einschieben |
@keyframes fadeInScale | Zoom-in von 0.92 |
@keyframes gradientShift | Cyan→Rot Gradient-Text-Animation (6s) |
@keyframes orbFloat | Floating Orbs Schwebebewegung (4–6s) |
@keyframes breathe | Cyan↔Rot Border-Breathing für CTA-Button (4s) |
@keyframes pingPulse | Glow-Dot-Pulsieren für Hero-Badge (1.5s) |
@keyframes pulseGlow | Pulsierender Cyan-Schatten |
@keyframes pulseGlowOrange / Green / Red | Farbvarianten des Glow-Effekts |
@keyframes shimmer | Schimmernder Hintergrund-Sweep |
@keyframes float | Sanftes Schweben (translateY ±6px) |
@keyframes flowPulse | Pulsieren für Flow-Pfeile |
@keyframes iconBounce | Icon-Bounce (scale 1→1.2→0.95) |
@keyframes countUp | Zahlen-Einblendung |
Website-Patterns (aus pace.cloud)
Adaptierte Patterns aus der pace.cloud Website für den Einsatz in Präsentationen. Sparsam einsetzen – pro Slide maximal ein auffälliges animiertes Element.
| Pattern | Klasse | Beschreibung | Max / Slide | Max / Präsentation |
|---|---|---|---|---|
| Gradient Text | .gradient-text | Animierter Cyan→Rot Verlaufstext für Hero-Headlines | 1 | 1–2 |
| Hero Badge | .hero-badge | Pill mit animiertem Glow-Dot als Slide-Eyebrow | 1 | 2–3 |
| Floating Orbs | .orb--cyan / .orb--red | Blurred Gradient-Kreise als Deko-Hintergrund | 2 (1× cyan + 1× red) | 2–3 Slides |
| Breathe Button | .btn-breathe | CTA-Button mit Cyan↔Rot Border-Animation | 1 | 1 |
| Glass Card | .glass-card | Frosted-Glass-Karte für Bild/Orb-Hintergründe | 4 | beliebig |
Grundregel: Pro Slide maximal ein auffälliges animiertes Element (Gradient-Text ODER Breathe-Button ODER Orbs). Statische Patterns (Glass-Card, Hero-Badge) dürfen kombiniert werden.
Zusätzliche Präsentations-Tokens
Diese Tokens erweitern die globalen Design-Tokens für den Präsentations-Kontext. Sie nutzen die gleichen Basiswerte:
/* Präsentations-spezifische Tokens (ergänzend zu :root) */
:root {
/* Farb-Dims für halbtransparente Hintergründe */
--brand-primary-dim: rgba(0,204,240,0.15);
--brand-orange-dim: rgba(255,150,1,0.15);
--brand-green-dim: rgba(134,203,40,0.15);
--brand-yellow-dim: rgba(255,218,1,0.12);
--brand-red-dim: rgba(230,32,72,0.15);
/* Zusätzliche Farben */
--brand-orange: #FF9601;
--brand-green: #86CB28;
--brand-yellow: #FFD700; /* = --brand-accent-b2c */
--brand-red: #E62048; /* = --brand-accent-b2b */
/* Breathe-Animation */
--duration-breathe: 4s;
}Die -dim-Varianten werden für Chip-Hintergründe, Info-Boxen und Icon-Container verwendet. Sie erzeugen einen halbtransparenten Farbfleck, der in beiden Themes funktioniert.
Komponenten-Katalog
Alle verfügbaren Bausteine für Präsentationen. Jede Komponente nutzt ausschliesslich Design-Tokens aus diesem Styleguide.
Typografie
| Klasse | Font-Size (Base) | Weight | Farbe |
|---|---|---|---|
.eyebrow | 10px | 700 | var(--brand-primary) |
h1.hero-title | 56px | 800 | var(--text-primary), <span> = Cyan |
h2.slide-title | 36px | 800 | var(--text-primary) |
.slide-desc | 16px | 400 | var(--text-secondary) |
Cards & Daten
| Komponente | Klasse | Beschreibung |
|---|---|---|
| Stat Card | .stat-grid + .stat-card | 4er-Grid mit Kennzahlen (Value + Label + optional Sub) |
| Compare Card | .compare-card--problem / --solution | Gegenüberstellung mit farbigem Top-Border (Orange vs. Cyan) |
| Advantage Card | .adv-grid + .adv-card | 3er-Grid mit Icon, Titel, Text, Checkliste |
| Praxis Box | .praxis-box | Case-Study-Box mit Header, Subtext und Stat-Grid |
| Info Box | .info-box--cyan / --orange / --green | Hervorgehobene Info mit Icon und Text |
UI-Elemente
| Komponente | Klasse | Beschreibung |
|---|---|---|
| Chips | .chip--cyan / --orange / --green | Tags mit Icon, farbigem Hintergrund (dim-Tokens) |
| Badges | .badge--cyan / --orange / --green | Kleine Labels, pill-förmig |
| Partner Grid | .partner-grid + .partner-chip | 6er-Grid für Partner-Logos/Namen, --highlight und --soon Varianten |
| Flow-Diagramm | .flow + .flow__node + .flow__arrow | Horizontaler Prozessablauf mit animierten Pfeilen |
| CTA Block | .cta-block | Zentrierter Call-to-Action mit Headline, Big-Text, Kontaktzeile |
| Divider | .divider-content | Zwischentitel-Slide mit grossem Icon und Text |
Logo in Präsentationen
Immer das originale SVG verwenden, nie nachbauen! Die SVG-Quelldateien liegen in _Vorlagen/logos/. Es gibt 14 Varianten in drei Kategorien:
Signets – Symbol only (240×240)
| Datei | Fill | Verwendung |
|---|---|---|
pace_symbol_rgb_color.svg | #00CCF0 (Cyan) | Deko-Element, Divider, Branding-Akzent |
pace_symbol_rgb_white.svg | #FFFFFF | Wasserzeichen, auf dunklem/Foto-BG |
pace_symbol_rgb_black.svg | #232729 | Auf hellem/Cyan-BG |
Horizontal – Signet + „PACE“ (702×240)
| Datei | Signet | Text | Verwendung |
|---|---|---|---|
pace_horizontal_rgb_color_white.svg | #00CCF0 | #FFFFFF | Standard – Global Header (Dark) |
pace_horizontal_rgb_color_black.svg | #00CCF0 | #232729 | Global Header (Light) |
pace_horizontal_rgb_mono_white.svg | #FFFFFF | #FFFFFF | Auf Fotos, busy BGs, Cyan-Flächen |
pace_horizontal_rgb_mono_black.svg | #232729 | #232729 | Co-Branding, Print, helle Flächen |
Vertikal – Signet über „PACE“ (804×840)
| Datei | Signet | Text | Verwendung |
|---|---|---|---|
pace_vertical_rgb_color_white.svg | #00CCF0 | #FFFFFF | CTA-Slide zentriert (Dark) |
pace_vertical_rgb_color_black.svg | #00CCF0 | #232729 | CTA-Slide zentriert (Light) |
pace_vertical_rgb_mono_white.svg | #FFFFFF | #FFFFFF | Auf Fotos, busy BGs |
pace_vertical_rgb_mono_black.svg | #232729 | #232729 | Print, helle Flächen |
Kontext-Regeln
| Slide-Kontext | Logo | CSS-Klasse |
|---|---|---|
| Global Header (Dark) | horizontal_color_white | .pace-logo-horizontal.pace-logo-auto |
| Global Header (Light) | horizontal_color_black | .pace-logo-horizontal.pace-logo-auto |
| CTA / Closing (zentriert, Dark) | vertical_color_white | .pace-logo-vertical |
| CTA / Closing (zentriert, Light) | vertical_color_black | .pace-logo-vertical |
| Hero Deko-Element | symbol_color | .pace-logo-signet + opacity:0.08 |
| Divider / Section-Trenner | symbol_color | .pace-logo-signet (zentriert) |
| Slide mit Foto-Hintergrund | horizontal_mono_white | .pace-logo-white |
/* Logo-Klassen (aus pace-base.css) */
.pace-logo-horizontal { width:140px; height:auto } /* Global Header */
.pace-logo-vertical { width:180px; height:auto } /* CTA Slides */
.pace-logo-signet { width:64px; height:64px } /* Symbol only */
/* Farbsteuerung */
.pace-logo-white g { fill:#FFFFFF !important }
.pace-logo-black g { fill:#232729 !important }
/* Theme-responsive Auto-Switch (inline SVG) */
.pace-logo-auto g { fill:#FFFFFF }
[data-theme="light"] .pace-logo-auto g { fill:#232729 }
.pace-logo-auto g#pace_signet { fill:#00CCF0 !important }
/* Global Header – fixiert auf jedem Slide */
.global-header {
position:fixed; top:28px; left:64px; right:64px;
display:flex; align-items:center;
z-index:200; pointer-events:none;
}Light-Theme Overrides (Präsentationen)
Alle Präsentations-Komponenten reagieren auf [data-theme="light"]. Die Hintergrund-, Border- und Schatten-Tokens werden automatisch über die CSS Custom Properties vererbt. Zusätzlich gibt es komponentenspezifische Overrides:
/* Slide-Hintergründe */
[data-theme="light"] .slide--hero { background: linear-gradient(160deg, #dff0f7 0%, #edf1f2 40%, #e0f2f0 100%) }
[data-theme="light"] .slide--cta { background: linear-gradient(160deg, #f0f4f6 0%, #e8eef0 50%, #edf1f2 100%) }
[data-theme="light"] .slide--accent { background: linear-gradient(160deg, #e0f2f0 0%, #edf1f2 100%) }
/* Karten: bg-card + Schatten ersetzen dunkle Borders */
[data-theme="light"] .stat-card,
[data-theme="light"] .compare-card,
[data-theme="light"] .adv-card,
[data-theme="light"] .partner-chip,
[data-theme="light"] .praxis-box { box-shadow: var(--shadow-sm) }
/* Chips & Badges: Leichtere Hintergrund-Transparenzen */
[data-theme="light"] .chip--cyan { background: rgba(0,204,240,0.1); color: var(--brand-primary-dark) }
[data-theme="light"] .chip--orange { background: rgba(255,150,1,0.1); color: #cc7800 }
[data-theme="light"] .chip--green { background: rgba(134,203,40,0.1); color: #5a8a1a }Navigation & JavaScript
Jede Präsentation enthält folgende UI-Elemente und Interaktionen:
| Element | Klasse / ID | Funktion |
|---|---|---|
| Progress Bar | .progress | Fortschrittsbalken oben, Cyan, 3px Höhe |
| Nav Dots | .slide-nav | Fixiert rechts, Punkte pro Slide, aktiver = Cyan + scale(1.3) |
| Slide Counter | .slide-counter | Fixiert unten rechts, z.B. „3 / 6“ |
| Keyboard Hints | .kb-hint | Fixiert unten links, zeigt Tastaturkürzel |
| Theme Toggle | .theme-toggle | Fixiert oben rechts, wechselt Dark/Light |
/* IntersectionObserver – Kern des Animations-Systems */
const ANIM_CLASSES = '.anim, .anim-chip, .anim-pulse, .anim-bar, .anim-bounce, .anim-glow';
const slideObserver = new IntersectionObserver(entries => {
entries.forEach(e => {
if (e.isIntersecting) {
e.target.querySelectorAll(ANIM_CLASSES).forEach(el => el.classList.add('visible'));
// Update nav dots, counter, progress bar...
} else {
e.target.querySelectorAll(ANIM_CLASSES).forEach(el => el.classList.remove('visible'));
}
});
}, { threshold: 0.6 });PDF-Export
HTML-Präsentationen können per Playwright-Script als randloses A4-PDF exportiert werden:
| Parameter | Wert | Erklärung |
|---|---|---|
| Viewport | 1684 × 1190 px | Exaktes A4-Landscape-Ratio (297:210 = 1.4143) |
| Device Scale | 2 | Retina-Qualität |
| Methode | Screenshot pro Slide → ReportLab | Pixelperfekt, keine Playwright-PDF-Artefakte |
| V2 (grösser) | max-width: 1160px | CSS-Injection für ~20% mehr Content-Fläche |
Das Script blendet Navigation, Theme-Toggle und Tagline aus, erzwingt alle Animationen auf visible, und erstellt pro Slide einen Screenshot. Die Screenshots werden mit ReportLab randlos auf A4 Landscape zusammengefügt.
Referenzdateien
| Datei | Zweck |
|---|---|
pace-template.html | Leere Vorlage mit allen Styles und JS – Ausgangspunkt für neue Präsentationen |
pace-components.html | Interaktive Komponenten-Bibliothek mit Live-Previews und Copy-Snippets |
00-shared/styleguide.html | Dieser Styleguide – Single Source of Truth für alle Tokens |
_Vorlagen/logos/*.svg | 14 originale PACE-Logo-SVGs (3 Signets, 4 Horizontal, 4 Vertikal, 3 weitere) |
html_to_pdf.py | Playwright-Script für PDF-Export (Standard + V2 grösser) |