@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.
162 lines (139 loc) • 3.89 kB
CSS
/*
* Accessibility - ARIA Support
*
* Styles und Utilities für ARIA-Rollen und -Attribute.
* Diese Datei enthält Definitionen für konsistentes Styling von ARIA-Rollen.
*/
@layer accessibility {
/*
* ARIA-Rollen Styling
*
* Konsistentes Styling für verschiedene ARIA-Rollen,
* um die visuelle Darstellung mit der semantischen Bedeutung in Einklang zu bringen.
*/
/* Dialog und Modal-Dialoge */
[role="dialog"],
[role="alertdialog"] {
background-color: var(--color-surface);
border-radius: var(--border-radius-lg);
box-shadow: var(--shadow-xl);
max-height: 9%0;
overflow-y: auto;
position: relative;
z-index: var(--z-index-modal);
}
/* Navigation */
[role="navigation"] {
display: flex;
flex-wrap: wrap;
}
/* Tabs */
[role="tablist"] {
border-bottom: var(--border-width) solid var(--color-border);
display: flex;
}
[role="tab"] {
background: none;
border: none;
border-bottom: var(--border-width-thick) solid transparent;
cursor: pointer;
padding: 0.5rem var(--spacing-4);
}
[role="tab"][aria-selected="true"] {
border-bottom-color: var(--color-primary-500);
color: var(--color-primary-600);
font-weight: var(--font-weight-medium); /* Konsolidiert von separater Definition */
}
[role="tabpanel"] {
padding: var(--spacing-4) 0;
}
/* Menüs */
[role="menu"] {
background-color: var(--color-surface);
border: var(--border-width) solid var(--color-border);
border-radius: var(--border-radius-md);
box-shadow: var(--shadow-md);
display: flex;
flex-direction: column;
min-width: var(--spacing-40);
padding: 0.5rem 0;
}
[role="menuitem"] {
cursor: pointer;
padding: 0.5rem var(--spacing-4);
}
[role="menuitem"]:hover,
[role="menuitem"]:focus {
background-color: var(--color-surface-hover);
}
/* Listen */
[role="list"] {
list-style: none;
margin: 0;
padding: 0;
}
[role="listitem"] {
padding: 0.5rem 0;
}
/* Tooltips */
[role="tooltip"] {
background-color: var(--color-surface);
border: var(--border-width) solid var(--color-border);
border-radius: var(--border-radius-sm);
box-shadow: var(--shadow-md);
max-width: var(--spacing-80);
padding: 0.5rem;
position: absolute;
z-index: var(--z-index-tooltip);
}
/* Alert und Benachrichtigungen */
[role="alert"],
[role="status"],
[role="log"] {
background-color: var(--color-surface);
border-left: var(--spacing-1) solid var(--color-info);
border-radius: var(--border-radius-md);
margin: var(--spacing-4) 0;
padding: var(--spacing-4);
}
[role="alert"] {
border-left-color: var(--color-error);
}
[role="status"] {
border-left-color: var(--color-success);
}
/*
* ARIA-Attribute Styling
*
* Visuelles Feedback für verschiedene ARIA-Attribute,
* um Zustandsänderungen deutlicher zu machen.
*/
/* Erweiterte Elemente */
[aria-expanded="true"] {
/* Zusätzliche Stile für erweiterte Elemente */
}
/* Ausgewählte Elemente - bereits in [role="tab"][aria-selected="true"] konsolidiert */
/* Aktive Elemente */
[aria-current="page"],
[aria-current="step"],
[aria-current="location"],
[aria-current="date"],
[aria-current="time"] {
color: var(--color-primary-700);
font-weight: var(--font-weight-semibold);
}
/* Gedrückte Elemente */
[aria-pressed="true"] {
background-color: var(--color-primary-200);
border-color: var(--color-primary-400);
}
/* Kontrollierte Elemente */
[aria-controls]:focus {
outline: var(--focus-ring);
}
/* Beschriebene Elemente */
[aria-describedby] {
/* Subtile Markierung für Elemente mit Beschreibung */
border-bottom: var(--border-width) dotted var(--color-border);
}
}