UNPKG

@casoon/dragonfly

Version:

Modular, lightweight CSS framework and design system for modern web projects. Optimized for Astro JS, LightningCSS and Container Queries with @layer-based architecture and comprehensive accessibility.

1,820 lines (1,557 loc) 155 kB
/* Datei: core/smooth-scroll.css */ /** * Smooth Scroll CSS-Komponente * --------------------------- * Diese Datei enthält Stile für erweiterte Scroll-Funktionalitäten und -Effekte. * * Eigenschaften: * - Sanftes Scrollen (smooth-scroll) für eine verbesserte Benutzererfahrung * - Scroll-Snap für präzises Positionieren von Elementen beim Scrollen * - Fortschrittsanzeigen für die Visualisierung der Scroll-Position * - Parallax-Effekte für tiefenwirksame Layouts * - Scroll-Animation-Effekte (fade, scale, slide, rotate) * - Gestaffelte Scroll-Animationen für Gruppen von Elementen * - Scroll-zu-Top-Funktionalität * - Scroll-Spy für Navigation * - Barrierefreiheitsanpassungen für reduzierte Bewegung * * Verwendung: * Fügen Sie die entsprechenden Klassen zu Ihren HTML-Elementen hinzu, * um die verschiedenen Scroll-Effekte und -Funktionen zu aktivieren. * * @layer core - Grundlegende Scroll-Funktionalitäten und -Effekte * @layer components - Wiederverwendbare Scroll-Komponenten */ /* Animationen */ @keyframes scroll-timeline-fade { 0% { opacity: 0; transform: translateY(var(--spacing-5, 1.25rem)); } 100% { opacity: 1; transform: translateX(0); } } @layer smooth-scroll { /* Smooth Scroll Variables */ :root { --scroll-behavior: smooth; --scroll-padding-top: 0; --scroll-snap-type: none; --scroll-snap-align: none; --scroll-snap-stop: always; --scroll-margin: 0; --scroll-timeline-name: none; --scroll-timeline-axis: block; --scroll-timeline-view-offset: 0; } /* Base Smooth Scroll */ html { scroll-behavior: var(--scroll-behavior, smooth); scroll-padding-top: var(--scroll-padding-top, 0); } /* Scroll Snap */ .scroll-snap-container { height: 100vh; overflow-y: auto; scroll-snap-type: var(--scroll-snap-type, none); } .scroll-snap-item { scroll-margin: var(--scroll-margin, 0); scroll-snap-align: var(--scroll-snap-align, none); scroll-snap-stop: var(--scroll-snap-stop, normal); } /* Scroll Progress */ .scroll-progress { background: linear-gradient(to right, var(--color-primary, #3b82f6) var(--scroll), transparent 0); height: var(--spacing-1, 0.25rem); left: 0; position: fixed; top: 0; width: 100%; z-index: var(--z-50); } /* Scroll Timeline */ .scroll-timeline { scroll-timeline-axis: var(--scroll-timeline-axis); scroll-timeline-name: var(--scroll-timeline-name); scroll-timeline-view-offset: var(--scroll-timeline-view-offset); } /* Parallax Scrolling */ .parallax-container { height: 100vh; overflow: hidden auto; perspective: var(--border-width); } .parallax-layer { inset: 0; position: absolute; } .parallax-layer-back { transform: translateZ(calc(-1 * var(--border-width))) scale(2); } .parallax-layer-base { transform: translateZ(0); } .parallax-layer-front { transform: translateZ(var(--border-width)) scale(0.5); } /* Scroll Reveal */ .scroll-reveal { opacity: 0; transform: translateY(var(--spacing-5, 1.25rem)); transition: all var(--transition-normal, 200ms ease); } .scroll-reveal.visible { opacity: 1; transform: translateX(0); } /* Scroll Fade */ .scroll-fade { opacity: 0; transition: opacity var(--transition-normal, 200ms ease); } .scroll-fade.visible { opacity: 1; } /* Scroll Scale */ .scroll-scale { opacity: 0; transform: scale(0.95); transition: all var(--transition-normal, 200ms ease); } .scroll-scale.visible { opacity: 1; transform: scale(1); } /* Scroll Slide - Konsolidierte Version */ .scroll-slide { opacity: 0; transition: all var(--transition-normal, 200ms ease); } .scroll-slide.visible { opacity: 1; transform: translate(0, 0); } /* Scroll Slide Richtungs-Varianten */ .scroll-slide-left { transform: translateX(-50px); } .scroll-slide-right { transform: translateX(50px); } .scroll-slide-up { transform: translateY(50px); } .scroll-slide-down { transform: translateY(-50px); } /* Scroll Rotate */ .scroll-rotate { opacity: 0; transform: rotate(-15deg); transition: all var(--transition-normal, 200ms ease); } .scroll-rotate.visible { opacity: 1; transform: rotate(0); } /* Scroll Stagger */ .scroll-stagger > * { opacity: 0; transform: translateY(var(--spacing-5, 1.25rem)); transition: all var(--transition-normal, 200ms ease); } /* Stagger Delays - Kompakte Version */ .scroll-stagger > *:nth-child(1) { transition-delay: 0.1s; } .scroll-stagger > *:nth-child(2) { transition-delay: 0.2s; } .scroll-stagger > *:nth-child(3) { transition-delay: 0.3s; } .scroll-stagger > *:nth-child(4) { transition-delay: 0.4s; } .scroll-stagger > *:nth-child(5) { transition-delay: 0.5s; } .scroll-stagger.visible > * { opacity: 1; transform: translateX(0); } /* Scroll Progress Bar */ .scroll-progress-bar { background: var(--slider-track-color); height: var(--spacing-1, 0.25rem); left: 0; position: fixed; top: 0; width: 100%; } .scroll-progress-bar::before { background: var(--color-primary, #3b82f6); content: ''; height: 100vh; left: 0; position: absolute; top: 0; transition: width var(--transition-normal, 200ms ease); width: var(--scroll); } /* Scroll to Top Button */ .scroll-to-top { align-items: center; background: var(--color-primary, #3b82f6); border-radius: 5px; bottom: var(--spacing-5, 1.25rem); color: var(--color-white, #fff); cursor: pointer; display: flex; height: var(--spacing-10, 2.5rem); justify-content: center; opacity: 0; position: fixed; right: var(--spacing-5, 1.25rem); transform: translateY(var(--spacing-5, 1.25rem)); transition: all var(--transition-normal, 200ms ease); width: var(--spacing-10, 2.5rem); z-index: var(--z-50); } .scroll-to-top.visible { opacity: 1; transform: translateX(0); } .scroll-to-top:hover { background: var(--color-primary-dark); transform: translateY(calc(-1 * var(--border-width-thick))); } /* Scroll Spy Navigation */ .scroll-spy-nav { position: fixed; right: var(--spacing-5, 1.25rem); top: 50; transform: translateX(-50); } .scroll-spy-nav a { background: var(--slider-track-color); border-radius: 5px; display: block; height: var(--space-small-10px); margin: var(--space-small-10px) 0; transition: all var(--transition-normal, 200ms ease); width: var(--space-small-10px); } .scroll-spy-nav a.active { background: var(--color-primary, #3b82f6); transform: scale(1.2); } /* Scroll Timeline Animation */ .scroll-timeline-animation { animation: scroll-timeline-fade 1s ease-out forwards; animation-range: entry 10 cover 30; animation-timeline: view(); } /* Scroll Performance */ .scroll-performance { backface-visibility: hidden; transform: translateZ(0); will-change: transform, opacity; } /* Respektiere Nutzereinstellung für reduzierte Bewegung */ @media (prefers-reduced-motion: reduce) { /* Deaktiviere alle Scroll-Animationen */ html, body, .scroll-smooth, .scroll-behavior-smooth, .scroll-mt, .scroll-mb, .scroll-ms, .scroll-me, .scroll-pt, .scroll-pb, .scroll-ps, .scroll-pe, [data-scroll-trigger], .scroll-snap-container, .scroll-snap-item { animation: none !important; scroll-behavior: auto !important; scroll-padding: 0 !important; scroll-snap-type: none !important; transition: none !important; } } /* Responsive Anpassungen */ @media (max-width: 640px) { .touch-feedback::after { block-size: 150; inline-size: 150; } .focus-ring:focus-visible { box-shadow: 0 0 0 var(--border-width) var(--color-primary, #3b82f6); } } @media (min-width: 640px) { /* Fade Stagger Delays - Kompakte Version */ .scroll-fade-staggered > *:nth-child(2) { animation-delay: 0.1s; } .scroll-fade-staggered > *:nth-child(3) { animation-delay: 0.2s; } .scroll-fade-staggered > *:nth-child(4) { animation-delay: 0.3s; } } @media (min-width: 768px) { .scroll-to-top { bottom: var(--spacing-8); right: var(--spacing-8); } } @media (min-width: 1024px) { .scroll-parallax { transform: translateY(calc(var(--scroll-offset) * 0.15)); } } /* Reduzierte Bewegung für Barrierefreiheit */ @media (prefers-reduced-motion: reduce) { :root { --scroll-behavior: auto; } .scroll-fade, .scroll-scale, .scroll-slide, .scroll-rotate, .scroll-parallax, .scroll-fade-staggered > * { animation: none; opacity: 1; transform: none; transition: none; } } } /* Datei: core/reset.css */ /** * @casoon/dragonfly – Reset CSS * * This file provides a clean, consistent baseline across all browsers to ensure * reliable styling for components and layouts. * * ➤ Modern reset principles are applied without over-normalizing. * ➤ Accessibility, performance, and logical defaults are prioritized. * ➤ All rules are scoped within @layer reset to prevent specificity conflicts. * * 🚨 Important: This file must be imported first before any other styles, * especially tokens, themes, and components. * * Recommended Import Order: * 1. @import "@casoon/dragonfly/core/reset.css"; * 2. @import "@casoon/dragonfly/tokens/index.css"; * 3. @import "@casoon/dragonfly/themes/index.css"; * 4. @import "@casoon/dragonfly/ui/index.css"; * * Accessibility: * - Includes support for `prefers-reduced-motion` * - Uses system fonts and semantic defaults * * Compatibility: * - Optimized for modern browsers (Chrome, Firefox, Safari, Edge) * - Progressive enhancement for older ones */ @layer reset { /* 1. Box-Sizing + Margin-Reset */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } /* 2. Core Root Defaults */ html { -webkit-font-smoothing: antialiased; height: 100; scroll-behavior: smooth; text-size-adjust: 100; } html:focus-within { scroll-behavior: smooth; } body { background-color: var(--color-background, var(--color-white)); color: var(--color-foreground, var(--color-black)); font-family: system-ui, sans-serif; line-height: 1.5; min-height: 100; text-rendering: optimizespeed; } /* 3. List & Table */ ul, ol { list-style: none; } table { border-collapse: collapse; border-spacing: 0; } /* 4. Media */ img, picture, video, canvas, svg { display: block; height: auto; max-width: 100; } /* 5. Forms & Buttons */ input, button, textarea, select { appearance: none; background: none; border: none; color: inherit; font: inherit; margin: 0; padding: 0; } button { cursor: pointer; } textarea { resize: vertical; } /* 6. Links */ a:not([class]) { color: inherit; text-decoration-skip-ink: auto; } /* 7. Accessibility: Motion Reduce */ @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } } } /* Datei: core/logical-properties.css */ /** * Logische CSS-Eigenschaften für Internationalisierung * * Diese Datei implementiert logische CSS-Eigenschaften, die eine richtungsunabhängige * Gestaltung von Layouts ermöglichen. Sie unterstützt mehrsprachige Anwendungen durch * Vermeidung von richtungsspezifischen Eigenschaften wie left/right und top/bottom. * * Stattdessen werden Eigenschaften verwendet, die unabhängig von der Schreibrichtung (RTL/LTR) sind: * - block-start/block-end (ersetzt top/bottom) * - inline-start/inline-end (ersetzt left/right) * - margin-inline, padding-block usw. * * Hauptvorteile: * - Unterstützung für bidirektionale (RTL/LTR) Layouts ohne Codeänderungen * - Bessere Wartbarkeit durch eine einzige Codebasis für alle Sprachen * - Verbesserte Barrierefreiheit und Unterstützung für internationale Standards * * @hinweis Diese Datei sollte früh im Stylesheet-Laden eingebunden werden. * @wichtig Beim Erstellen neuer Komponenten immer logische Eigenschaften verwenden. */ /* * Logische CSS Properties für Internationalisierung */ @layer logical-properties { /* Basisklassen für Schreibrichtung */ :root { --text-direction: ltr; } :root[dir="rtl"] { --text-direction: rtl; } html { text-align: start; } /* Standardabstände nutzen logische Properties */ .spacing { margin-block: var(--spacing-4); margin-inline: var(--spacing-2); padding-block: var(--spacing-3); padding-inline: var(--spacing-2); } /* Überschriften verwenden logische Properties */ h1, h2, h3, h4, h5, h6 { border-block-end: var(--border-width) solid var(--color-surface-300); margin-block: var(--spacing-6) var(--spacing-4); padding-block-end: var(--spacing-2); } /* Textausrichtung für RTL/LTR Support */ .text-start { text-align: start; } .text-end { text-align: end; } /* Flexbox mit logischen Properties */ .flex-row { display: flex; flex-direction: row; } .flex-row-reverse { display: flex; flex-direction: row-reverse; } .justify-start { justify-content: flex-start; } .justify-end { justify-content: flex-end; } /* Container-Abstände */ .container { margin-inline: auto; max-inline-size: var(--space-large-80rem); padding-inline: var(--spacing-4); } /* Ränder mit logischen Properties */ .border-start { border-inline-start: var(--border-width) solid var(--color-surface-300); } .border-end { border-inline-end: var(--border-width) solid var(--color-surface-300); } .border-block { border-block: var(--border-width) solid var(--color-surface-300); } .border-inline { border-inline: var(--border-width) solid var(--color-surface-300); } /* Abgerundete Ecken mit logischen Properties */ .rounded { border-radius: var(--spacing-1); } .rounded-start { border-end-start-radius: var(--spacing-1); border-start-start-radius: var(--spacing-1); } .rounded-end { border-end-end-radius: var(--spacing-1); border-start-end-radius: var(--spacing-1); } .rounded-top { border-start-end-radius: var(--spacing-1); border-start-start-radius: var(--spacing-1); } .rounded-bottom { border-end-end-radius: var(--spacing-1); border-end-start-radius: var(--spacing-1); } /* Positionierung mit logischen Properties */ .position-start { inset-inline-start: 0; } .position-end { inset-inline-end: 0; } .position-top { inset-block-start: 0; } .position-bottom { inset-block-end: 0; } /* Float mit logischen Properties */ .float-start { float: inline-start; } .float-end { float: inline-end; } .clear-start { clear: inline-start; } .clear-end { clear: inline-end; } /* Größen mit logischen Properties */ .inline-size-full { inline-size: 100%; } .block-size-full { block-size: 100%; } .inline-size-half { inline-size: 50%; } .block-size-half { block-size: 50%; } /* Grid mit logischen Properties */ .grid-cols-2 { display: grid; gap: var(--spacing-4); grid-template-columns: repeat(2, 1fr); } .grid-cols-3 { display: grid; gap: var(--spacing-4); grid-template-columns: repeat(3, 1fr); } .grid-cols-4 { display: grid; gap: var(--spacing-4); grid-template-columns: repeat(4, 1fr); } /* Abstände Utility-Klassen */ .m-block-1 { margin-block: var(--spacing-1); } .m-block-2 { margin-block: var(--spacing-2); } .m-block-3 { margin-block: var(--spacing-3); } .m-block-4 { margin-block: var(--spacing-4); } .m-inline-1 { margin-inline: var(--spacing-1); } .m-inline-2 { margin-inline: var(--spacing-2); } .m-inline-3 { margin-inline: var(--spacing-3); } .m-inline-4 { margin-inline: var(--spacing-4); } .p-block-1 { padding-block: var(--spacing-1); } .p-block-2 { padding-block: var(--spacing-2); } .p-block-3 { padding-block: var(--spacing-3); } .p-block-4 { padding-block: var(--spacing-4); } .p-inline-1 { padding-inline: var(--spacing-1); } .p-inline-2 { padding-inline: var(--spacing-2); } .p-inline-3 { padding-inline: var(--spacing-3); } .p-inline-4 { padding-inline: var(--spacing-4); } /* Richtungsspezifische Abstände */ .m-block-start-1 { margin-block-start: var(--spacing-1); } .m-block-start-2 { margin-block-start: var(--spacing-2); } .m-block-start-3 { margin-block-start: var(--spacing-3); } .m-block-start-4 { margin-block-start: var(--spacing-4); } .m-block-end-1 { margin-block-end: var(--spacing-1); } .m-block-end-2 { margin-block-end: var(--spacing-2); } .m-block-end-3 { margin-block-end: var(--spacing-3); } .m-block-end-4 { margin-block-end: var(--spacing-4); } .m-inline-start-1 { margin-inline-start: var(--spacing-1); } .m-inline-start-2 { margin-inline-start: var(--spacing-2); } .m-inline-start-3 { margin-inline-start: var(--spacing-3); } .m-inline-start-4 { margin-inline-start: var(--spacing-4); } .m-inline-end-1 { margin-inline-end: var(--spacing-1); } .m-inline-end-2 { margin-inline-end: var(--spacing-2); } .m-inline-end-3 { margin-inline-end: var(--spacing-3); } .m-inline-end-4 { margin-inline-end: var(--spacing-4); } .p-block-start-1 { padding-block-start: var(--spacing-1); } .p-block-start-2 { padding-block-start: var(--spacing-2); } .p-block-start-3 { padding-block-start: var(--spacing-3); } .p-block-start-4 { padding-block-start: var(--spacing-4); } .p-block-end-1 { padding-block-end: var(--spacing-1); } .p-block-end-2 { padding-block-end: var(--spacing-2); } .p-block-end-3 { padding-block-end: var(--spacing-3); } .p-block-end-4 { padding-block-end: var(--spacing-4); } .p-inline-start-1 { padding-inline-start: var(--spacing-1); } .p-inline-start-2 { padding-inline-start: var(--spacing-2); } .p-inline-start-3 { padding-inline-start: var(--spacing-3); } .p-inline-start-4 { padding-inline-start: var(--spacing-4); } .p-inline-end-1 { padding-inline-end: var(--spacing-1); } .p-inline-end-2 { padding-inline-end: var(--spacing-2); } .p-inline-end-3 { padding-inline-end: var(--spacing-3); } .p-inline-end-4 { padding-inline-end: var(--spacing-4); } /* Scrollen mit logischen Properties */ .overflow-inline { overflow-inline: auto; } .overflow-block { overflow-block: auto; } /* Übersetzte Layouts unterstützen */ [lang="ar"], [lang="he"], [lang="fa"], [lang="ur"] { direction: rtl; } /* Komponenten für internationalisierte UIs */ .navbar { border-block-end: var(--border-width) solid var(--color-surface-300); display: flex; padding-block: var(--spacing-3); padding-inline: var(--spacing-4); } .navbar-brand { margin-inline-end: var(--spacing-4); } .navbar-nav { display: flex; gap: var(--spacing-4); margin-inline-start: auto; } .dropdown-menu { border: var(--border-width) solid var(--color-surface-300); border-radius: var(--spacing-1); inset-block-start: 100%; inset-inline-start: 0; min-inline-size: var(--spacing-40); padding-block: var(--spacing-2); padding-inline: 0; position: absolute; } .dropdown-item { padding-block: var(--spacing-1); padding-inline: var(--spacing-3); text-align: start; } /* Karten-Komponente mit logischen Properties */ .card { border: var(--border-width) solid var(--color-surface-300); border-radius: var(--spacing-2); padding-block: var(--spacing-4); padding-inline: var(--spacing-4); } .card-header { border-block-end: var(--border-width) solid var(--color-surface-200); margin-block-end: var(--spacing-3); padding-block-end: var(--spacing-2); } .card-footer { border-block-start: var(--border-width) solid var(--color-surface-200); margin-block-start: var(--spacing-3); padding-block-start: var(--spacing-2); } /* Listen mit logischen Properties */ .list { padding-inline-start: var(--spacing-4); } .list-item { margin-block-end: var(--spacing-2); } /* Formular-Elemente mit logischen Properties */ .form-group { margin-block-end: var(--spacing-3); } .form-label { display: block; margin-block-end: var(--spacing-1); } .form-control { border: var(--border-width) solid var(--color-surface-300); border-radius: var(--spacing-1); inline-size: 100%; padding-block: var(--spacing-2); padding-inline: var(--spacing-3); } /* Buttons mit logischen Properties */ .btn { border: var(--border-width) solid transparent; border-radius: var(--spacing-1); padding-block: var(--spacing-2); padding-inline: var(--spacing-4); } .btn-icon { margin-inline-end: var(--spacing-2); } /* Tabellen mit logischen Properties */ .table { border-collapse: collapse; inline-size: 100%; } .table th, .table td { border-block-end: var(--border-width) solid var(--color-surface-300); padding-block: var(--spacing-2); padding-inline: var(--spacing-3); text-align: start; } /* Navigations-Tabs mit logischen Properties */ .tabs { border-block-end: var(--border-width) solid var(--color-surface-300); display: flex; } .tab { border-block-end: var(--border-width-thick) solid transparent; padding-block: var(--spacing-2); padding-inline: var(--spacing-4); } .tab.active { border-block-end-color: var(--color-primary-500); } /* Alert-Komponente mit logischen Properties */ .alert { border-inline-start: var(--spacing-1) solid var(--color-primary-500); border-radius: var(--spacing-1); padding-block: var(--spacing-3); padding-inline: var(--spacing-4); } .alert-danger { border-inline-start-color: var(--color-error-500); } .alert-success { border-inline-start-color: var(--color-success-500); } /* Abstand-Automatisierung */ .text-flow > * + * { margin-block-start: var(--spacing-3); } /* Benutzeroberflächenführungen */ .steps { display: flex; margin-block: var(--spacing-4); } .step { border-block-end: var(--border-width-thick) solid var(--color-surface-300); flex: 1; padding-block: var(--spacing-2); text-align: center; } .step.active { border-block-end-color: var(--color-primary-500); } /* Dialog/Modal */ .modal { align-items: center; display: flex; inset: 0; justify-content: center; position: fixed; } .modal-dialog { background: var(--color-white); border-radius: var(--spacing-2); max-block-size: 90%; max-inline-size: 90%; min-inline-size: var(--space-large-30rem); padding-block: var(--spacing-4); padding-inline: var(--spacing-4); } .modal-header { border-block-end: var(--border-width) solid var(--color-surface-300); margin-block-end: var(--spacing-3); padding-block-end: var(--spacing-2); } .modal-footer { border-block-start: var(--border-width) solid var(--color-surface-300); display: flex; gap: var(--spacing-2); justify-content: flex-end; margin-block-start: var(--spacing-3); padding-block-start: var(--spacing-2); } /* Responsives Layout mit logischen Properties */ @media (max-width: 768px) { .navbar { align-items: flex-start; flex-direction: column; } .navbar-nav { flex-direction: column; margin-block-start: var(--spacing-3); margin-inline-start: 0; } .grid-cols-2, .grid-cols-3, .grid-cols-4 { grid-template-columns: 1fr; } } /* RTL spezifische Anpassungen */ [dir="rtl"] .btn-icon { transform: scaleX(-1); } [dir="rtl"] .dropdown-menu { text-align: right; } /* Lang-spezifische Anpassungen */ [lang="ja"], [lang="zh"], [lang="ko"] { font-feature-settings: "palt"; line-break: strict; word-break: normal; } [lang="th"], [lang="my"] { line-height: 1.8; } /* Komplette Layout-Anordnung, unabhängig von der Schreibrichtung */ .layout { display: grid; grid-template: "header header header" auto "sidebar main aside" 1fr "footer footer footer" auto / 200px 1fr 200px; min-block-size: 100%; } .layout-header { border-block-end: var(--border-width) solid var(--color-surface-300); grid-area: header; padding-block: var(--spacing-3); padding-inline: var(--spacing-4); } .layout-sidebar { border-inline-end: var(--border-width) solid var(--color-surface-300); grid-area: sidebar; padding-block: var(--spacing-4); padding-inline: var(--spacing-3); } .layout-main { grid-area: main; padding-block: var(--spacing-4); padding-inline: var(--spacing-4); } .layout-aside { border-inline-start: var(--border-width) solid var(--color-surface-300); grid-area: aside; padding-block: var(--spacing-4); padding-inline: var(--spacing-3); } .layout-footer { border-block-start: var(--border-width) solid var(--color-surface-300); grid-area: footer; padding-block: var(--spacing-3); padding-inline: var(--spacing-4); } /* Responsives Layout */ @media (max-width: 990px) { .layout { grid-template-areas: "header header" "sidebar main" "footer footer"; grid-template-columns: var(--space-large-200) 1fr; } .layout-aside { display: none; } } @media (max-width: 768px) { .layout { grid-template-areas: "header" "main" "footer"; grid-template-columns: 1fr; } .layout-sidebar { display: none; } } /* Responsive Anpassungen für logische Eigenschaften */ @media (max-width: 768px) { /* Anpassungen für kleinere Bildschirme */ .block-spacer { margin-block: var(--spacing-4); } .inline-spacer { margin-inline: 0.5rem; } .flow-spacing > * + * { margin-block-start: 0.75rem; } .center-content { align-items: center; justify-content: center; } } /* Tablet-Anpassungen */ @media (max-width: 990px) { .tablet-padding { padding-block: var(--spacing-4); padding-inline: var(--spacing-6); } .tablet-margin { margin-block: var(--spacing-4); margin-inline: var(--spacing-6); } .tablet-spacing > * + * { margin-inline-start: var(--spacing-4); } } /* Mobile vertikale Ausrichtung */ @media (max-width: 768px) { .logical-stack { display: flex; flex-direction: column; gap: var(--space-4); } .logical-stack > * { margin-block-start: var(--space-0); margin-inline-start: var(--space-0); } } } /* Datei: core/colors.css */ /** * Farbsystem * * Diese Datei definiert die komplette Farbpalette des Designsystems mit * modernen OKLCH-Farbwerten für optimale Farbwiedergabe und -konsistenz. * * Das Farbsystem besteht aus: * - Hauptfarbpaletten (Blau, Grün, Rot, etc.) mit jeweils 10 Abstufungen * - Neutrale Farbpaletten (Grau, Warm-Grau) für UI-Elemente * - Utility-Klassen für Text- und Hintergrundfarben * * Alle Farben sind im OKLCH-Farbraum definiert, der folgende Vorteile bietet: * - Perceptive Gleichmäßigkeit der Farbabstufungen * - Erweiterten Farbraum verglichen mit RGB/sRGB * - Bessere Barrierefreiheit durch vorhersagbare Kontraste * * @hinweis Diese Datei wird vor color-mix.css geladen und stellt die Basis-Farbwerte bereit * @technisch Verwendet den modernen OKLCH-Farbraum für optimale Farbwiedergabe */ @layer colors { :root { /* Blautöne */ --color-blue-50: oklch(95% 0.05 250deg); --color-blue-100: oklch(90% 0.1 250deg); --color-blue-200: oklch(85% 0.15 250deg); --color-blue-300: oklch(80% 0.2 250deg); --color-blue-400: oklch(75% 0.25 250deg); --color-blue-500: oklch(70% 0.3 250deg); --color-blue-600: oklch(65% 0.35 250deg); --color-blue-700: oklch(60% 0.4 250deg); --color-blue-800: oklch(55% 0.45 250deg); --color-blue-900: oklch(50% 0.5 250deg); /* Hellblautöne */ --color-sky-50: oklch(95% 0.05 230deg); --color-sky-100: oklch(90% 0.1 230deg); --color-sky-200: oklch(85% 0.15 230deg); --color-sky-300: oklch(80% 0.2 230deg); --color-sky-400: oklch(75% 0.25 230deg); --color-sky-500: oklch(70% 0.3 230deg); --color-sky-600: oklch(65% 0.35 230deg); --color-sky-700: oklch(60% 0.4 230deg); --color-sky-800: oklch(55% 0.45 230deg); --color-sky-900: oklch(50% 0.5 230deg); /* Türkistöne */ --color-cyan-50: oklch(95% 0.05 200deg); --color-cyan-100: oklch(90% 0.1 200deg); --color-cyan-200: oklch(85% 0.15 200deg); --color-cyan-300: oklch(80% 0.2 200deg); --color-cyan-400: oklch(75% 0.25 200deg); --color-cyan-500: oklch(70% 0.3 200deg); --color-cyan-600: oklch(65% 0.35 200deg); --color-cyan-700: oklch(60% 0.4 200deg); --color-cyan-800: oklch(55% 0.45 200deg); --color-cyan-900: oklch(50% 0.5 200deg); /* Minttöne */ --color-mint-50: oklch(95% 0.05 170deg); --color-mint-100: oklch(90% 0.1 170deg); --color-mint-200: oklch(85% 0.15 170deg); --color-mint-300: oklch(80% 0.2 170deg); --color-mint-400: oklch(75% 0.25 170deg); --color-mint-500: oklch(70% 0.3 170deg); --color-mint-600: oklch(65% 0.35 170deg); --color-mint-700: oklch(60% 0.4 170deg); --color-mint-800: oklch(55% 0.45 170deg); --color-mint-900: oklch(50% 0.5 170deg); /* Grüntöne */ --color-green-50: oklch(95% 0.05 150deg); --color-green-100: oklch(90% 0.1 150deg); --color-green-200: oklch(85% 0.15 150deg); --color-green-300: oklch(80% 0.2 150deg); --color-green-400: oklch(75% 0.25 150deg); --color-green-500: oklch(70% 0.3 150deg); --color-green-600: oklch(65% 0.35 150deg); --color-green-700: oklch(60% 0.4 150deg); --color-green-800: oklch(55% 0.45 150deg); --color-green-900: oklch(50% 0.5 150deg); /* Limettöne */ --color-lime-50: oklch(95% 0.05 120deg); --color-lime-100: oklch(90% 0.1 120deg); --color-lime-200: oklch(85% 0.15 120deg); --color-lime-300: oklch(80% 0.2 120deg); --color-lime-400: oklch(75% 0.25 120deg); --color-lime-500: oklch(70% 0.3 120deg); --color-lime-600: oklch(65% 0.35 120deg); --color-lime-700: oklch(60% 0.4 120deg); --color-lime-800: oklch(55% 0.45 120deg); --color-lime-900: oklch(50% 0.5 120deg); /* Gelbtöne */ --color-yellow-50: oklch(95% 0.1 80deg); --color-yellow-100: oklch(90% 0.15 80deg); --color-yellow-200: oklch(85% 0.2 80deg); --color-yellow-300: oklch(80% 0.25 80deg); --color-yellow-400: oklch(75% 0.3 80deg); --color-yellow-500: oklch(70% 0.35 80deg); --color-yellow-600: oklch(65% 0.4 80deg); --color-yellow-700: oklch(60% 0.45 80deg); --color-yellow-800: oklch(55% 0.5 80deg); --color-yellow-900: oklch(50% 0.55 80deg); /* Goldtöne */ --color-gold-50: oklch(95% 0.1 65deg); --color-gold-100: oklch(90% 0.15 65deg); --color-gold-200: oklch(85% 0.2 65deg); --color-gold-300: oklch(80% 0.25 65deg); --color-gold-400: oklch(75% 0.3 65deg); --color-gold-500: oklch(70% 0.35 65deg); --color-gold-600: oklch(65% 0.4 65deg); --color-gold-700: oklch(60% 0.45 65deg); --color-gold-800: oklch(55% 0.5 65deg); --color-gold-900: oklch(50% 0.55 65deg); /* Orangetöne */ --color-orange-50: oklch(95% 0.1 50deg); --color-orange-100: oklch(90% 0.15 50deg); --color-orange-200: oklch(85% 0.2 50deg); --color-orange-300: oklch(80% 0.25 50deg); --color-orange-400: oklch(75% 0.3 50deg); --color-orange-500: oklch(70% 0.35 50deg); --color-orange-600: oklch(65% 0.4 50deg); --color-orange-700: oklch(60% 0.45 50deg); --color-orange-800: oklch(55% 0.5 50deg); --color-orange-900: oklch(50% 0.55 50deg); /* Koralltöne */ --color-coral-50: oklch(95% 0.1 40deg); --color-coral-100: oklch(90% 0.15 40deg); --color-coral-200: oklch(85% 0.2 40deg); --color-coral-300: oklch(80% 0.25 40deg); --color-coral-400: oklch(75% 0.3 40deg); --color-coral-500: oklch(70% 0.35 40deg); --color-coral-600: oklch(65% 0.4 40deg); --color-coral-700: oklch(60% 0.45 40deg); --color-coral-800: oklch(55% 0.5 40deg); --color-coral-900: oklch(50% 0.55 40deg); /* Rottöne */ --color-red-50: oklch(95% 0.1 30deg); --color-red-100: oklch(90% 0.15 30deg); --color-red-200: oklch(85% 0.2 30deg); --color-red-300: oklch(80% 0.25 30deg); --color-red-400: oklch(75% 0.3 30deg); --color-red-500: oklch(70% 0.35 30deg); --color-red-600: oklch(65% 0.4 30deg); --color-red-700: oklch(60% 0.45 30deg); --color-red-800: oklch(55% 0.5 30deg); --color-red-900: oklch(50% 0.55 30deg); /* Pinktöne */ --color-pink-50: oklch(95% 0.1 0deg); --color-pink-100: oklch(90% 0.15 0deg); --color-pink-200: oklch(85% 0.2 0deg); --color-pink-300: oklch(80% 0.25 0deg); --color-pink-400: oklch(75% 0.3 0deg); --color-pink-500: oklch(70% 0.35 0deg); --color-pink-600: oklch(65% 0.4 0deg); --color-pink-700: oklch(60% 0.45 0deg); --color-pink-800: oklch(55% 0.5 0deg); --color-pink-900: oklch(50% 0.55 0deg); /* Rosatöne */ --color-rose-50: oklch(95% 0.1 10deg); --color-rose-100: oklch(90% 0.15 10deg); --color-rose-200: oklch(85% 0.2 10deg); --color-rose-300: oklch(80% 0.25 10deg); --color-rose-400: oklch(75% 0.3 10deg); --color-rose-500: oklch(70% 0.35 10deg); --color-rose-600: oklch(65% 0.4 10deg); --color-rose-700: oklch(60% 0.45 10deg); --color-rose-800: oklch(55% 0.5 10deg); --color-rose-900: oklch(50% 0.55 10deg); /* Violetttöne */ --color-purple-50: oklch(95% 0.05 350deg); --color-purple-100: oklch(90% 0.1 350deg); --color-purple-200: oklch(85% 0.15 350deg); --color-purple-300: oklch(80% 0.2 350deg); --color-purple-400: oklch(75% 0.25 350deg); --color-purple-500: oklch(70% 0.3 350deg); --color-purple-600: oklch(65% 0.35 350deg); --color-purple-700: oklch(60% 0.4 350deg); --color-purple-800: oklch(55% 0.45 350deg); --color-purple-900: oklch(50% 0.5 350deg); /* Indigotöne */ --color-indigo-50: oklch(95% 0.05 300deg); --color-indigo-100: oklch(90% 0.1 300deg); --color-indigo-200: oklch(85% 0.15 300deg); --color-indigo-300: oklch(80% 0.2 300deg); --color-indigo-400: oklch(75% 0.25 300deg); --color-indigo-500: oklch(70% 0.3 300deg); --color-indigo-600: oklch(65% 0.35 300deg); --color-indigo-700: oklch(60% 0.4 300deg); --color-indigo-800: oklch(55% 0.45 300deg); --color-indigo-900: oklch(50% 0.5 300deg); /* Grautöne */ --color-gray-50: oklch(98% 0.02 250deg); --color-gray-100: oklch(95% 0.02 250deg); --color-gray-200: oklch(90% 0.02 250deg); --color-gray-300: oklch(85% 0.02 250deg); --color-gray-400: oklch(80% 0.02 250deg); --color-gray-500: oklch(75% 0.02 250deg); --color-gray-600: oklch(70% 0.02 250deg); --color-gray-700: oklch(65% 0.02 250deg); --color-gray-800: oklch(60% 0.02 250deg); --color-gray-900: oklch(55% 0.02 250deg); /* System-Grautöne (mit Hue-Berechnung) */ --color-gray-hue: 262; --color-system-gray-100: oklch(98.7% 0.003 var(--color-gray-hue)); --color-system-gray-200: oklch(97.4% 0.004 var(--color-gray-hue)); --color-system-gray-300: oklch(94.2% 0.006 var(--color-gray-hue)); --color-system-gray-400: oklch(89% 0.01 var(--color-gray-hue)); --color-system-gray-500: oklch(81% 0.014 var(--color-gray-hue)); --color-system-gray-600: oklch(68% 0.018 var(--color-gray-hue)); --color-system-gray-700: oklch(54% 0.02 var(--color-gray-hue)); --color-system-gray-800: oklch(36% 0.015 var(--color-gray-hue)); --color-system-gray-900: oklch(22% 0.01 var(--color-gray-hue)); /* Warme Grautöne */ --color-warm-gray-50: oklch(98% 0.02 30deg); --color-warm-gray-100: oklch(95% 0.02 30deg); --color-warm-gray-200: oklch(90% 0.02 30deg); --color-warm-gray-300: oklch(85% 0.02 30deg); --color-warm-gray-400: oklch(80% 0.02 30deg); --color-warm-gray-500: oklch(75% 0.02 30deg); --color-warm-gray-600: oklch(70% 0.02 30deg); --color-warm-gray-700: oklch(65% 0.02 30deg); --color-warm-gray-800: oklch(60% 0.02 30deg); --color-warm-gray-900: oklch(55% 0.02 30deg); /* Kalte Grautöne */ --color-cool-gray-50: oklch(98% 0.02 270deg); --color-cool-gray-100: oklch(95% 0.02 270deg); --color-cool-gray-200: oklch(90% 0.02 270deg); --color-cool-gray-300: oklch(85% 0.02 270deg); --color-cool-gray-400: oklch(80% 0.02 270deg); --color-cool-gray-500: oklch(75% 0.02 270deg); --color-cool-gray-600: oklch(70% 0.02 270deg); --color-cool-gray-700: oklch(65% 0.02 270deg); --color-cool-gray-800: oklch(60% 0.02 270deg); --color-cool-gray-900: oklch(55% 0.02 270deg); /* Reines Weiß und Schwarz */ --color-white: oklch(100% 0 0deg); --color-black: oklch(0 0 0deg); /* Alias für häufig verwendete Farben */ --color-text: var(--color-gray-900); --color-text-secondary: var(--color-gray-600); --color-background: var(--color-gray-50); --color-background-secondary: var(--color-gray-100); --color-background-tertiary: var(--color-gray-200); --color-border: var(--color-gray-300); /* Azurtöne */ --color-azure-50: oklch(95% 0.05 240deg); --color-azure-100: oklch(90% 0.1 240deg); --color-azure-200: oklch(85% 0.15 240deg); --color-azure-300: oklch(80% 0.2 240deg); --color-azure-400: oklch(75% 0.25 240deg); --color-azure-500: oklch(70% 0.3 240deg); --color-azure-600: oklch(65% 0.35 240deg); --color-azure-700: oklch(60% 0.4 240deg); --color-azure-800: oklch(55% 0.45 240deg); --color-azure-900: oklch(50% 0.5 240deg); /* Tealtöne */ --color-teal-50: oklch(95% 0.05 190deg); --color-teal-100: oklch(90% 0.1 190deg); --color-teal-200: oklch(85% 0.15 190deg); --color-teal-300: oklch(80% 0.2 190deg); --color-teal-400: oklch(75% 0.25 190deg); --color-teal-500: oklch(70% 0.3 190deg); --color-teal-600: oklch(65% 0.35 190deg); --color-teal-700: oklch(60% 0.4 190deg); --color-teal-800: oklch(55% 0.45 190deg); --color-teal-900: oklch(50% 0.5 190deg); /* Smaragdtöne */ --color-emerald-50: oklch(95% 0.1 165deg); --color-emerald-100: oklch(90% 0.15 165deg); --color-emerald-200: oklch(85% 0.2 165deg); --color-emerald-300: oklch(80% 0.25 165deg); --color-emerald-400: oklch(75% 0.3 165deg); --color-emerald-500: oklch(70% 0.35 165deg); --color-emerald-600: oklch(65% 0.4 165deg); --color-emerald-700: oklch(60% 0.45 165deg); --color-emerald-800: oklch(55% 0.5 165deg); --color-emerald-900: oklch(50% 0.55 165deg); /* Olivtöne */ --color-olive-50: oklch(95% 0.05 110deg); --color-olive-100: oklch(90% 0.1 110deg); --color-olive-200: oklch(85% 0.15 110deg); --color-olive-300: oklch(80% 0.2 110deg); --color-olive-400: oklch(75% 0.25 110deg); --color-olive-500: oklch(70% 0.3 110deg); --color-olive-600: oklch(65% 0.35 110deg); --color-olive-700: oklch(60% 0.4 110deg); --color-olive-800: oklch(55% 0.45 110deg); --color-olive-900: oklch(50% 0.5 110deg); /* Bernstein */ --color-amber-50: oklch(95% 0.1 70deg); --color-amber-100: oklch(90% 0.15 70deg); --color-amber-200: oklch(85% 0.2 70deg); --color-amber-300: oklch(80% 0.25 70deg); --color-amber-400: oklch(75% 0.3 70deg); --color-amber-500: oklch(70% 0.35 70deg); --color-amber-600: oklch(65% 0.4 70deg); --color-amber-700: oklch(60% 0.45 70deg); --color-amber-800: oklch(55% 0.5 70deg); --color-amber-900: oklch(50% 0.55 70deg); /* Kupfertöne */ --color-copper-50: oklch(95% 0.1 45deg); --color-copper-100: oklch(90% 0.15 45deg); --color-copper-200: oklch(85% 0.2 45deg); --color-copper-300: oklch(80% 0.25 45deg); --color-copper-400: oklch(75% 0.3 45deg); --color-copper-500: oklch(70% 0.35 45deg); --color-copper-600: oklch(65% 0.4 45deg); --color-copper-700: oklch(60% 0.45 45deg); --color-copper-800: oklch(55% 0.5 45deg); --color-copper-900: oklch(50% 0.55 45deg); /* Kirschtöne */ --color-cherry-50: oklch(95% 0.1 20deg); --color-cherry-100: oklch(90% 0.15 20deg); --color-cherry-200: oklch(85% 0.2 20deg); --color-cherry-300: oklch(80% 0.25 20deg); --color-cherry-400: oklch(75% 0.3 20deg); --color-cherry-500: oklch(70% 0.35 20deg); --color-cherry-600: oklch(65% 0.4 20deg); --color-cherry-700: oklch(60% 0.45 20deg); --color-cherry-800: oklch(55% 0.5 20deg); --color-cherry-900: oklch(50% 0.55 20deg); /* Magentatöne */ --color-magenta-50: oklch(95% 0.1 340deg); --color-magenta-100: oklch(90% 0.15 340deg); --color-magenta-200: oklch(85% 0.2 340deg); --color-magenta-300: oklch(80% 0.25 340deg); --color-magenta-400: oklch(75% 0.3 340deg); --color-magenta-500: oklch(70% 0.35 340deg); --color-magenta-600: oklch(65% 0.4 340deg); --color-magenta-700: oklch(60% 0.45 340deg); --color-magenta-800: oklch(55% 0.5 340deg); --color-magenta-900: oklch(50% 0.55 340deg); /* Lavendeltöne */ --color-lavender-50: oklch(95% 0.05 320deg); --color-lavender-100: oklch(90% 0.1 320deg); --color-lavender-200: oklch(85% 0.15 320deg); --color-lavender-300: oklch(80% 0.2 320deg); --color-lavender-400: oklch(75% 0.25 320deg); --color-lavender-500: oklch(70% 0.3 320deg); --color-lavender-600: oklch(65% 0.35 320deg); --color-lavender-700: oklch(60% 0.4 320deg); --color-lavender-800: oklch(55% 0.45 320deg); --color-lavender-900: oklch(50% 0.5 320deg); /* Bronzetöne */ --color-bronze-50: oklch(95% 0.1 40deg); --color-bronze-100: oklch(90% 0.15 40deg); --color-bronze-200: oklch(85% 0.2 40deg); --color-bronze-300: oklch(80% 0.25 40deg); --color-bronze-400: oklch(75% 0.3 40deg); --color-bronze-500: oklch(70% 0.35 40deg); --color-bronze-600: oklch(65% 0.4 40deg); --color-bronze-700: oklch(60% 0.45 40deg); --color-bronze-800: oklch(55% 0.5 40deg); --color-bronze-900: oklch(50% 0.55 40deg); /* Perltöne */ --color-pearl-50: oklch(98% 0.01 0deg); --color-pearl-100: oklch(95% 0.01 0deg); --color-pearl-200: oklch(92% 0.01 0deg); --color-pearl-300: oklch(89% 0.01 0deg); --color-pearl-400: oklch(86% 0.01 0deg); --color-pearl-500: oklch(83% 0.01 0deg); --color-pearl-600: oklch(80% 0.01 0deg); --color-pearl-700: oklch(77% 0.01 0deg); --color-pearl-800: oklch(74% 0.01 0deg); --color-pearl-900: oklch(71% 0.01 0deg); /* Champagnertöne */ --color-champagne-50: oklch(98% 0.02 60deg); --color-champagne-100: oklch(95% 0.02 60deg); --color-champagne-200: oklch(92% 0.02 60deg); --color-champagne-300: oklch(89% 0.02 60deg); --color-champagne-400: oklch(86% 0.02 60deg); --color-champagne-500: oklch(83% 0.02 60deg); --color-champagne-600: oklch(80% 0.02 60deg); --color-champagne-700: oklch(77% 0.02 60deg); --color-champagne-800: oklch(74% 0.02 60deg); --color-champagne-900: oklch(71% 0.02 60deg); /* Tauptöne */ --color-taupe-50: oklch(95% 0.02 20deg); --color-taupe-100: oklch(90% 0.02 20deg); --color-taupe-200: oklch(85% 0.02 20deg); --color-taupe-300: oklch(80% 0.02 20deg); --color-taupe-400: oklch(75% 0.02 20deg); --color-taupe-500: oklch(70% 0.02 20deg); --color-taupe-600: oklch(65% 0.02 20deg); --color-taupe-700: oklch(60% 0.02 20deg); --color-taupe-800: oklch(55% 0.02 20deg); --color-taupe-900: oklch(50% 0.02 20deg); /* Beigetöne */ --color-beige-50: oklch(98% 0.02 80deg); --color-beige-100: oklch(95% 0.02 80deg); --color-beige-200: oklch(92% 0.02 80deg); --color-beige-300: oklch(89% 0.02 80deg); --color-beige-400: oklch(86% 0.02 80deg); --color-beige-500: oklch(83% 0.02 80deg); --color-beige-600: oklch(80% 0.02 80deg); --color-beige-700: oklch(77% 0.02 80deg); --color-beige-800: oklch(74% 0.02 80deg); --color-beige-900: oklch(71% 0.02 80deg); /* Khakitöne */ --color-khaki-50: oklch(95% 0.05 100deg); --color-khaki-100: oklch(90% 0.05 100deg); --color-khaki-200: oklch(85% 0.05 100deg); --color-khaki-300: oklch(80% 0.05 100deg); --color-khaki-400: oklch(75% 0.05 100deg); --color-khaki-500: oklch(70% 0.05 100deg); --color-khaki-600: oklch(65% 0.05 100deg); --color-khaki-700: oklch(60% 0.05 100deg); --color-khaki-800: oklch(55% 0.05 100deg); --color-khaki-900: oklch(50% 0.05 100deg); /* Terrakottatöne */ --color-terracotta-50: oklch(95% 0.1 25deg); --color-terracotta-100: oklch(90% 0.15 25deg); --color-terracotta-200: oklch(85% 0.2 25deg); --color-terracotta-300: oklch(80% 0.25 25deg); --color-terracotta-400: oklch(75% 0.3 25deg); --color-terracotta-500: oklch(70% 0.35 25deg); --color-terracotta-600: oklch(65% 0.4 25deg); --color-terracotta-700: oklch(60% 0.45 25deg); --color-terracotta-800: oklch(55% 0.5 25deg); --color-terracotta-900: oklch(50% 0.55 25deg); /* Burgundertöne */ --color-burgundy-50: oklch(95% 0.1 350deg); --color-burgundy-100: oklch(90% 0.15 350deg); --color-burgundy-200: oklch(85% 0.2 350deg); --color-burgundy-300: oklch(80% 0.25 350deg); --color-burgundy-400: oklch(75% 0.3 350deg); --color-burgundy-500: oklch(70% 0.35 350deg); --color-burgundy-600: oklch(65% 0.4 350deg); --color-burgundy-700: oklch(60% 0.45 350deg); --color-burgundy-800: oklch(55% 0.5 350deg); --color-burgundy-900: oklch(50% 0.55 350deg); /* Silbertöne */ --color-silver-50: oklch(98% 0.01 250deg); --color-silver-100: oklch(95% 0.01 250deg); --color-silver-200: oklch(92% 0.01 250deg); --color-silver-300: oklch(89% 0.01 250deg); --color-silver-400: oklch(86% 0.01 250deg); --color-silver-500: oklch(83% 0.01 250deg); --color-silver-600: oklch(80% 0.01 250deg); --color-silver-700: oklch(77% 0.01 250deg); --color-silver-800: oklch(74% 0.01 250deg); --color-silver-900: oklch(71% 0.01 250deg); /* Platinatöne */ --color-platinum-50: oklch(98% 0.01 270deg); --color-platinum-100: oklch(95% 0.01 270deg); --color-platinum-200: oklch(92% 0.01 270deg); --color-platinum-300: oklch(89% 0.01 270deg); --color-platinum-400: oklch(86% 0.01 270deg); --color-platinum-500: oklch(83% 0.01 270deg); --color-platinum-600: oklch(80% 0.01 270deg); --color-platinum-700: oklch(77% 0.01 270deg); --color-platinum-800: oklch(74% 0.01 270deg); --color-platinum-900: oklch(71% 0.01 270deg); /* Graphittöne */ --color-graphite-50: oklch(95% 0.02 280deg); --color-graphite-100: oklch(90% 0.02 280deg); --color-graphite-200: oklch(85% 0.02 280deg); --color-graphite-300: oklch(80% 0.02 280deg); --color-graphite-400: oklch(75% 0.02 280deg); --color-graphite-500: oklch(70% 0.02 280deg); --color-graphite-600: oklch(65% 0.02 280deg); --color-graphite-700: oklch(60% 0.02 280deg); --color-graphite-800: oklch(55% 0.02 280deg); --color-graphite-900: oklch(50% 0.02 280deg); /* Moostöne */ --color-moss-50: oklch(95% 0.05 140deg); --color-moss-100: oklch(90% 0.05 140deg); --color-moss-200: oklch(85% 0.05 140deg); --color-moss-300: oklch(80% 0.05 140deg); --color-moss-400: oklch(75% 0.05 140deg); --color-moss-500: oklch(70% 0.05 140deg); --color-moss-600: oklch(65% 0.05 140deg); --color-moss-700: oklch(60% 0.05 140deg); --color-moss-800: oklch(55% 0.05 140deg); --color-moss-900: oklch(50% 0.05 140deg); /* Jade */ --color-jade-50: oklch(95% 0.1 150deg); --color-jade-100: oklch(90% 0.15 150deg); --color-jade-200: oklch(85% 0.2 150deg); --color-jade-300: oklch(80% 0.25 150deg); --color-jade-400: oklch(75% 0.3 150deg); --color-jade-500: oklch(70% 0.35 150deg); --color-jade-600: oklch(65% 0.4 150deg); --color-jade-700: oklch(60% 0.45 150deg); --color-jade-800: oklch(55% 0.5 150deg); --color-jade-900: oklch(50% 0.55 150deg); /* Saphir */ --color-sapphire-50: oklch(95% 0.1 260deg); --color-sapphire-100: oklch(90% 0.15 260deg); --color-sapphire-200: oklch(85% 0.2 260deg); --color-sapphire-300: oklch(80% 0.25 260deg); --color-sapphire-400: oklch(75% 0.3 260deg); --color-sapphire-500: oklch(70% 0.35 260deg); --color-sapphire-600: oklch(65% 0.4 260deg); --color-sapphire-700: oklch(60% 0.45 260deg); --color-sapphire-800: oklch(55% 0.5 260deg); --color-sapphire-900: oklch(50% 0.55 260deg); /* Rubin */ --color-ruby-50: oklch(95% 0.1 0deg); --color-ruby-100: oklch(90% 0.15 0deg); --color-ruby-200: oklch(85% 0.2 0deg); --color-ruby-300: oklch(80% 0.25 0deg); --color-ruby-400: oklch(75% 0.3 0deg); --color-ruby-500: oklch(70% 0.35 0deg); --color-ruby-600: oklch(65% 0.4 0deg); --color-ruby-700: oklch(60% 0.45 0deg); --color-ruby-800: oklch(55% 0.5 0deg); --color-ruby-900: oklch(50% 0.55 0deg); /* Amethyst */ --color-amethyst-50: oklch(95% 0.1 310deg); --color-amethyst-100: oklch(90% 0.15 310deg); --color-amethyst-200: oklch(85% 0.2 310deg); --color-amethyst-300: oklch(80% 0.25 310deg); --color-amethyst-400: oklch(75% 0.3 310deg); --color-amethyst-500: oklch(70% 0.35 310deg)