@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.
82 lines (71 loc) • 2.43 kB
CSS
/*
* Accessibility System
*
* Hauptdatei für das Accessibility-System der UI-Bibliothek.
* Importiert und organisiert alle Accessibility-Module.
*/
/*
* Accessibility-Modul-Struktur:
*
* Diese Datei importiert alle Accessibility-bezogenen CSS-Module
* und stellt sicher, dass sie in der richtigen Reihenfolge geladen werden.
*/
/* Import der Accessibility-Module */
@import url('./keyboard.css') layer(accessibility);
@import url('./screenreader.css') layer(accessibility);
@import url('./contrast.css') layer(accessibility);
@import url('./aria.css') layer(accessibility);
/* Reduzierte Bewegung (Reduced Motion) für Benutzer, die weniger Animation bevorzugen */
@layer accessibility {
/* Wenn der Benutzer reduzierte Bewegung im System eingestellt hat */
@media (prefers-reduced-motion: reduce) {
:root {
/* Alle Animationen deaktivieren oder verlangsamen */
--transition-duration-fast: 0.01ms;
--transition-duration-normal: 0.01ms;
--transition-duration-slow: 0.01ms;
}
/* Alle Animationen deaktivieren */
*, *::before, *::after {
animation-duration: 0.01ms ;
animation-iteration-count: 1 ;
scroll-behavior: auto ;
transition-duration: 0.01ms ;
}
}
/* Klasse für explizit reduzierte Bewegung */
.reduced-motion {
/* Alle Animationen deaktivieren oder verlangsamen */
--transition-duration-fast: 0.01ms;
--transition-duration-normal: 0.01ms;
--transition-duration-slow: 0.01ms;
& *, & *::before, & *::after {
animation-duration: 0.01ms ;
animation-iteration-count: 1 ;
scroll-behavior: auto ;
transition-duration: 0.01ms ;
}
}
/* Basis-Einstellungen für Fokussierbarkeit */
[tabindex="-1"] {
outline: none;
}
/* Visuelle Hinweise für Interaktivität */
button,
[role="button"],
input,
select,
textarea,
a {
cursor: pointer;
}
[disabled] {
cursor: not-allowed ;
}
/* [aria-disabled="true"] bereits in screenreader.css definiert */
/* Globale Einstellungen für Tap-Targets */
a, button, [role="button"], [type="button"], [type="submit"], [type="reset"] {
min-height: 4%var(--spacing-1); /* Mindesthöhe für Touch-Targets */
min-width: 4%var(--spacing-1); /* Mindestbreite für Touch-Targets */
}
}