Das Design System besteht aus zwei unabhängigen aber synchronisierten Teilen:
assets/css/events.css + _data/)cms-static/admin/) – deployed zu Netlify, autark:root {
--color-primary: #003d82;
--color-primary-strong: #002855;
--color-primary-stronger: #001a3d;
--color-surface: #ffffff;
--color-surface-muted: #f5f5f5;
--color-surface-soft: #f9f9f9;
--color-border: #d0d0d0;
--color-text: #111111;
--color-text-muted: #444444;
--color-link: #0066cc;
--color-link-strong: #004999;
--color-focus: #ffd700;
--radius-sm: 6px;
--radius-md: 8px;
--shadow-soft: 0 2px 8px rgba(0, 0, 0, 0.1);
--shadow-hover: 0 4px 16px rgba(0, 0, 0, 0.15);
}
Diese Tokens werden verwendet für:
Event-Typ-Farben sind zentral definiert in _data/event_types.yml:
mach-mit-mathe:
color: "#E8F4F8" # Hellblau
emoji: "📐"
offene-werkstatt:
color: "#F0F8E8" # Hellgrün
emoji: "🔧"
ferienpass:
color: "#FFF4E6" # Hell-Orange
emoji: "🎪"
sonstige:
color: "#F5F0F8" # Hellviolett
emoji: "📅"
⚠️ WICHTIG: Event-Type Farben müssen in 3 Dateien synchron gehalten werden:
| Datei | Zweck | Bereich |
|---|---|---|
_data/event_types.yml |
Single Source of Truth | Jekyll Event-System |
cms-static/admin/event-types.json |
CMS Defaults + Quick-Buttons | Decap Admin (Netlify) |
cms-static/admin/custom-admin.css |
Admin UI Farben | CMS Styling (autark) |
Hinweis zur Name-Asymmetrie:
_data/event_types.yml) kann längere, sprechende Namen für die Anzeige nutzencms-static/admin/event-types.json) nutzt kurze Namen für CMS-SlugsWorkflow bei Farb-Änderung:
_data/event_types.ymlcms-static/admin/event-types.jsoncms-static/admin/custom-admin.css:
:root {
--event-color-TYPENAME: #NEWCOLOR;
}
bundle exec jekyll serveassets/css/events.css ← Zentrale Tokens (--color-*, --radius-*, etc.)
_data/event_types.yml ← Event-Type Definitionen (Single Source of Truth)
_includes/event-card.html ← Event Cards (nutzen --event-type-color Custom Property)
_includes/event-filters.html ← Filter Buttons (nutzen --event-type-color)
_pages/veranstaltungen.md ← Hauptseite (nutzt Klassen statt Inline-Styles)
cms-static/admin/
├── config.yml ← CMS Konfiguration
├── index.html ← Admin UI Entry
├── event-types.json ← Event-Type Defaults (für Quick-Buttons, JavaScript)
├── custom-admin.css ← Admin Styling (CSS-Variablen lokal)
├── preview.css ← Preview-Styling
└── index.html ← JavaScript für Event-Type Auto-Fill
In HTML/Liquid (Jekyll):
<article style="--event-type-color: ;">
<div class="event-card__badge"><!-- nutzt --event-type-color --></div>
</article>
In CSS:
.event-card {
border-left: 4px solid var(--event-type-color, var(--color-border));
}
.event-card__badge {
background-color: var(--event-type-color, var(--color-surface-muted));
}
Alle CTA-Buttons nutzen:
.events-navigation__link,
.events-feeds__link,
.btn.btn--info {
background-color: var(--color-primary);
border: 2px solid var(--color-primary-strong);
color: #fff;
/* ... etc */
}
Nie: Hardcoded Farben direkt in Komponenten.
Konsistent überall:
.event-filter-btn:focus,
.pagination__link:focus {
outline: 3px solid var(--color-focus); /* #ffd700 */
outline-offset: 1px;
}
_data/event_types.yml hinzufügen (color, emoji, name)cms-static/admin/event-types.json hinzufügencms-static/admin/custom-admin.css hinzufügencms-static/admin/config.yml hinzufügenassets/css/events.css :root aktualisierenbundle exec jekyll serve_data/event_types.ymlcms-static/admin/event-types.jsoncms-static/admin/custom-admin.cssassets/css/events.css zugreifencustom-admin.css habenObwohl es mehrere Dateien gibt, gibt es einen klaren Ownership:
_data/event_types.yml (primär)cms-static/admin/event-types.json (Kopie)cms-static/admin/custom-admin.css (Referenz)