/** * Brandbook Constants - Color palettes, typography, spacing, voice & tone */ export interface ColorShade { name: string value: string text: 'dark' | 'light' } export interface ColorPalette { name: string description: string shades: ColorShade[] } export interface CategoryColor { id: string name: string description: string main: string shades: ColorShade[] } // Primary brand color (Sky Blue) export const PRIMARY_COLORS: ColorPalette = { name: 'Primary (Sky Blue)', description: 'Haupt-Markenfarbe fuer Buttons, Links und Akzente', shades: [ { name: '50', value: '#f0f9ff', text: 'dark' }, { name: '100', value: '#e0f2fe', text: 'dark' }, { name: '200', value: '#bae6fd', text: 'dark' }, { name: '300', value: '#7dd3fc', text: 'dark' }, { name: '400', value: '#38bdf8', text: 'dark' }, { name: '500', value: '#0ea5e9', text: 'light' }, { name: '600', value: '#0284c7', text: 'light' }, { name: '700', value: '#0369a1', text: 'light' }, { name: '800', value: '#075985', text: 'light' }, { name: '900', value: '#0c4a6e', text: 'light' }, ], } // Accent brand color (Fuchsia) - for logo gradient and highlights export const ACCENT_COLORS: ColorPalette = { name: 'Accent (Fuchsia)', description: 'Akzentfarbe fuer Logo-Gradient und besondere Highlights', shades: [ { name: '50', value: '#fdf4ff', text: 'dark' }, { name: '100', value: '#fae8ff', text: 'dark' }, { name: '200', value: '#f5d0fe', text: 'dark' }, { name: '300', value: '#f0abfc', text: 'dark' }, { name: '400', value: '#e879f9', text: 'dark' }, { name: '500', value: '#d946ef', text: 'light' }, { name: '600', value: '#c026d3', text: 'light' }, { name: '700', value: '#a21caf', text: 'light' }, { name: '800', value: '#86198f', text: 'light' }, { name: '900', value: '#701a75', text: 'light' }, ], } // Category colors for navigation and modules export const CATEGORY_COLORS: CategoryColor[] = [ { id: 'dsgvo', name: 'DSGVO (Violet)', description: 'Datenschutz & Betroffenenrechte', main: '#7c3aed', shades: [ { name: '100', value: '#ede9fe', text: 'dark' }, { name: '500', value: '#8b5cf6', text: 'light' }, { name: '600', value: '#7c3aed', text: 'light' }, { name: '700', value: '#6d28d9', text: 'light' }, ], }, { id: 'compliance', name: 'Compliance (Purple)', description: 'Audit, Controls & Regulierung', main: '#9333ea', shades: [ { name: '100', value: '#f3e8ff', text: 'dark' }, { name: '500', value: '#a855f7', text: 'light' }, { name: '600', value: '#9333ea', text: 'light' }, { name: '700', value: '#7e22ce', text: 'light' }, ], }, { id: 'ai', name: 'KI & Automatisierung (Teal)', description: 'LLM, OCR, RAG & Machine Learning', main: '#14b8a6', shades: [ { name: '100', value: '#ccfbf1', text: 'dark' }, { name: '500', value: '#14b8a6', text: 'light' }, { name: '600', value: '#0d9488', text: 'light' }, { name: '700', value: '#0f766e', text: 'light' }, ], }, { id: 'infrastructure', name: 'Infrastruktur (Orange)', description: 'GPU, Security, CI/CD & Monitoring', main: '#f97316', shades: [ { name: '100', value: '#ffedd5', text: 'dark' }, { name: '500', value: '#f97316', text: 'light' }, { name: '600', value: '#ea580c', text: 'light' }, { name: '700', value: '#c2410c', text: 'light' }, ], }, { id: 'education', name: 'Bildung & Schule (Blue)', description: 'Bildungsquellen & Lehrplaene', main: '#3b82f6', shades: [ { name: '100', value: '#dbeafe', text: 'dark' }, { name: '500', value: '#3b82f6', text: 'light' }, { name: '600', value: '#2563eb', text: 'light' }, { name: '700', value: '#1d4ed8', text: 'light' }, ], }, { id: 'communication', name: 'Kommunikation (Green)', description: 'Matrix, E-Mail & Benachrichtigungen', main: '#22c55e', shades: [ { name: '100', value: '#dcfce7', text: 'dark' }, { name: '500', value: '#22c55e', text: 'light' }, { name: '600', value: '#16a34a', text: 'light' }, { name: '700', value: '#15803d', text: 'light' }, ], }, { id: 'development', name: 'Entwicklung (Slate)', description: 'Workflow, Game, Docs & Brandbook', main: '#64748b', shades: [ { name: '100', value: '#f1f5f9', text: 'dark' }, { name: '500', value: '#64748b', text: 'light' }, { name: '600', value: '#475569', text: 'light' }, { name: '700', value: '#334155', text: 'light' }, ], }, ] // Semantic colors export const SEMANTIC_COLORS: Record = { success: { name: 'Success (Emerald)', shades: [ { name: '100', value: '#d1fae5', text: 'dark' }, { name: '500', value: '#10b981', text: 'light' }, { name: '600', value: '#059669', text: 'light' }, ], }, warning: { name: 'Warning (Amber)', shades: [ { name: '100', value: '#fef3c7', text: 'dark' }, { name: '500', value: '#f59e0b', text: 'dark' }, { name: '600', value: '#d97706', text: 'light' }, ], }, danger: { name: 'Danger (Red)', shades: [ { name: '100', value: '#fee2e2', text: 'dark' }, { name: '500', value: '#ef4444', text: 'light' }, { name: '600', value: '#dc2626', text: 'light' }, ], }, neutral: { name: 'Neutral (Slate)', shades: [ { name: '50', value: '#f8fafc', text: 'dark' }, { name: '100', value: '#f1f5f9', text: 'dark' }, { name: '200', value: '#e2e8f0', text: 'dark' }, { name: '300', value: '#cbd5e1', text: 'dark' }, { name: '400', value: '#94a3b8', text: 'dark' }, { name: '500', value: '#64748b', text: 'light' }, { name: '600', value: '#475569', text: 'light' }, { name: '700', value: '#334155', text: 'light' }, { name: '800', value: '#1e293b', text: 'light' }, { name: '900', value: '#0f172a', text: 'light' }, ], }, } export const TYPOGRAPHY = { fontFamily: "'Inter', system-ui, -apple-system, sans-serif", weights: [ { weight: 400, name: 'Regular', usage: 'Fliesstext, Beschreibungen' }, { weight: 500, name: 'Medium', usage: 'Labels, Buttons, Navigation' }, { weight: 600, name: 'Semi-Bold', usage: 'Ueberschriften H3-H6, Card-Titel' }, { weight: 700, name: 'Bold', usage: 'Ueberschriften H1-H2, CTAs' }, ], sizes: [ { name: 'xs', size: '0.75rem (12px)', usage: 'Footnotes, Badges' }, { name: 'sm', size: '0.875rem (14px)', usage: 'Nebentext, Labels' }, { name: 'base', size: '1rem (16px)', usage: 'Fliesstext, Body' }, { name: 'lg', size: '1.125rem (18px)', usage: 'Lead Text' }, { name: 'xl', size: '1.25rem (20px)', usage: 'H4, Card Titles' }, { name: '2xl', size: '1.5rem (24px)', usage: 'H3' }, { name: '3xl', size: '1.875rem (30px)', usage: 'H2' }, { name: '4xl', size: '2.25rem (36px)', usage: 'H1, Hero' }, ], } export const SPACING = [ { name: '1', value: '0.25rem (4px)', usage: 'Minimaler Abstand' }, { name: '2', value: '0.5rem (8px)', usage: 'Kompakter Abstand' }, { name: '3', value: '0.75rem (12px)', usage: 'Standard klein' }, { name: '4', value: '1rem (16px)', usage: 'Standard' }, { name: '6', value: '1.5rem (24px)', usage: 'Card Padding' }, { name: '8', value: '2rem (32px)', usage: 'Section Spacing' }, ] export const VOICE_TONE = { attributes: [ 'Professionell & Vertrauenswuerdig', 'Klar & Direkt', 'Hilfreich & Unterstuetzend', 'Modern & Innovativ', 'DSGVO-konform & Sicher', ], doList: [ 'Einfache, klare Sprache verwenden', 'Aktiv formulieren', 'Nutzenorientiert schreiben', 'Konkrete Beispiele geben', 'Technische Begriffe erklaeren', ], dontList: [ 'Fachjargon ohne Erklaerung', 'Passive Formulierungen', 'Uebertriebene Versprechen', 'Marketing-Floskeln', 'Unpersoenliche Ansprache', ], } export type BrandbookTab = 'colors' | 'typography' | 'components' | 'logo' | 'voice' export const TABS: { id: BrandbookTab; label: string }[] = [ { id: 'colors', label: 'Farben' }, { id: 'typography', label: 'Typografie' }, { id: 'components', label: 'Komponenten' }, { id: 'logo', label: 'Logo' }, { id: 'voice', label: 'Tonalitaet' }, ]