bifroest/app/static/css-framework/.opencode/skills/references/tokens.md
2026-10-27 08:34:17 +01:00

5.6 KiB

Design Tokens Referenz

Alle CSS Custom Properties aus tokens.css — die zentrale Anlaufstelle für alle Anpassungen.

Regel: Immer semantische Aliases verwenden, nie direkt die Palette.


Farb-Palette (nur intern)

Diese Werte nie direkt in HTML/CSS verwenden — nur als Basis für semantische Aliases.

/* Graustufen */
--color-white, --color-gray-50/100/200/300/400/500/600/700/800/900, --color-black

/* Akzent (Primärfarbe) */
--color-accent-50/100/200/300/400/500/600/700/800/900
/* Standard: --color-accent-500: #6366f1 (Indigo) */

/* Status */
--color-success, --color-success-bg, --color-success-border
--color-warning, --color-warning-bg, --color-warning-border
--color-danger,  --color-danger-bg,  --color-danger-border
--color-info,    --color-info-bg,    --color-info-border

Primärfarbe anpassen: Nur --color-accent-*-Werte in tokens.css ändern → alle Komponenten folgen automatisch.


Semantische Aliases (diese verwenden)

Hintergründe

Token Light Verwendung
--bg #ffffff Seiten-Hintergrund
--bg-subtle #f8f9fa Subtiler Hintergrund, Zebra-Zeilen
--bg-muted #f1f3f5 Gedämpfter Hintergrund

Surfaces (Karten, Overlays)

Token Verwendung
--surface Karten, Panels
--surface-raised Erhöhte Elemente (Tooltips)
--surface-overlay Modale Overlays, Dropdowns

Rahmen

Token Verwendung
--border Standard-Rahmen
--border-strong Betonter Rahmen
--border-focus Fokus-Ring (= Akzentfarbe)

Text

Token Verwendung
--text Primärtext
--text-muted Sekundärtext, Metadaten
--text-subtle Platzhalter, deaktivierte Elemente
--text-on-accent Text auf Akzent-Hintergrund

Akzentfarbe

Token Verwendung
--accent Primärfarbe (Buttons, Links, Fokus)
--accent-hover Hover-State
--accent-active Aktiv/Gedrückt-State
--accent-subtle Sehr heller Hintergrund
--accent-muted Heller Hintergrund

Typografie

Font Families

--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
--font-mono: "JetBrains Mono", ui-monospace, monospace;

Font Sizes

Token Wert px
--text-xs 0.75rem 12px
--text-sm 0.875rem 14px
--text-base 1rem 16px
--text-md 1.125rem 18px
--text-lg 1.25rem 20px
--text-xl 1.5rem 24px
--text-2xl 1.875rem 30px
--text-3xl 2.25rem 36px
--text-4xl 3rem 48px

Font Weights

--weight-normal:   400
--weight-medium:   500
--weight-semibold: 600
--weight-bold:     700

Line Heights

--leading-tight:   1.25
--leading-snug:    1.375
--leading-normal:  1.5
--leading-relaxed: 1.625

Spacing (4px-Grid)

Token Wert px
--space-1 0.25rem 4px
--space-2 0.5rem 8px
--space-3 0.75rem 12px
--space-4 1rem 16px
--space-5 1.25rem 20px
--space-6 1.5rem 24px
--space-8 2rem 32px
--space-10 2.5rem 40px
--space-12 3rem 48px
--space-16 4rem 64px
--space-20 5rem 80px
--space-24 6rem 96px

Border Radius

Token Wert px
--radius-sm 0.25rem 4px
--radius-md 0.375rem 6px
--radius-lg 0.5rem 8px
--radius-xl 0.75rem 12px
--radius-2xl 1rem 16px
--radius-full 9999px Vollständig rund

Schatten

--shadow-xs   /* Minimal, z.B. kleine Karten */
--shadow-sm   /* Standard-Karten */
--shadow-md   /* Erhöhte Elemente */
--shadow-lg   /* Dropdowns, Modals */
--shadow-xl   /* Große Overlays */
--shadow-focus /* Fokus-Ring: 0 0 0 3px rgba(accent, 0.25) */

Übergänge

--duration-fast: 120ms
--duration-base: 200ms   /* Standard */
--duration-slow: 300ms

--ease:     cubic-bezier(0.4, 0, 0.2, 1)   /* Standard */
--ease-out: cubic-bezier(0, 0, 0.2, 1)
--ease-in:  cubic-bezier(0.4, 0, 1, 1)

--transition: var(--duration-base) var(--ease)  /* Kombination für transition-Shorthand */

Layout-Konstanten

Container Breakpoints

Token Wert px
--container-sm 40rem 640px
--container-md 48rem 768px
--container-lg 64rem 1024px
--container-xl 80rem 1280px (default)
--container-2xl 90rem 1440px

Strukturelle Maße

--nav-height:    3.5rem   /* 56px — Höhe der Topnav */
--sidebar-width: 16rem    /* 256px — Breite der Sidebar */

Z-Index Skala

Token Wert Verwendung
--z-base 0 Normal
--z-raised 10 Leicht erhöht
--z-dropdown 100 Dropdowns
--z-sticky 200 Sticky Elemente (Topnav)
--z-overlay 300 Overlays
--z-modal 400 Modals
--z-toast 500 Toast-Benachrichtigungen

Dark Mode

Aktivierung via data-theme-Attribut auf <html>:

<html data-theme="light">  <!-- oder "dark" -->

Nur semantische Aliases werden im Dark Mode überschrieben — die Palette bleibt unverändert. Toggle-Logik inkl. localStorage-Persistenz und prefers-color-scheme-Erkennung ist in base.html fertig implementiert.

Dark Mode Overrides (Beispiele):

[data-theme="dark"] {
  --bg:      var(--color-black);   /* #0d0f12 */
  --surface: #161920;
  --text:    var(--color-gray-100);
  --accent:  var(--color-accent-400);  /* Heller für besseren Kontrast */
}