- Durch die Weiterentwicklung der CSS-Plattform ist nun ein Niveau erreicht, auf dem sich selbst komplexe Animationen und Interaktionen ohne JavaScript umsetzen lassen
- Neu hinzugekommene Features unterstützen die Anpassung von
<select>, Erkennung des Scroll-Status, Berechnungen zwischen Geschwisterelementen und attributbasiertes Styling
- Mit
appearance: base-select und ::picker(select) ist vollständige Styling-Kontrolle bei gleichzeitig erhaltener Barrierefreiheit und nativem Verhalten möglich
- Mit
sibling-index() und attr() lassen sich datenbasierte Animationen und Farbstyling kompakt umsetzen
- Diese Veränderungen bedeuten einen Paradigmenwechsel in der Frontend-Entwicklung, der die Abhängigkeit von JavaScript reduziert und Barrierefreiheit sowie Wartbarkeit verbessert
Überblick über die neuen CSS-Features
- In CSS des Jahres 2026 werden zahlreiche neue Funktionen für Interaktion und Animation eingeführt
appearance: base-select schaltet <select>-Elemente in einen anpassbaren Modus
select::picker(select) ist ein Pseudo-Element, das die Dropdown-Oberfläche darstellt und sich etwa mit Schatten, Rahmen und Abständen stylen lässt
selectedcontent stylt den Anzeigebereich der ausgewählten Option
- Auch die Scroll-bezogenen Features werden deutlich ausgebaut
::scroll-button() sind automatisch erzeugte Links-/Rechts-Schaltflächen für scrollbare Container
::scroll-marker und ::scroll-marker-group dienen als Paginierungspunkte oder visuelle Indikatoren
scroll-target-group und :target-current heben automatisch den Link hervor, der zum aktuell sichtbaren Abschnitt gehört
- Zusätzlich kommen Container Queries auf Basis des Scroll-Status hinzu
- Mit
container-type: scroll-state und @container scroll-state(snapped: x) lassen sich Styles abhängig von der Scroll-Position ändern
- Ebenfalls neu sind Tree-Counting-Funktionen und typisierte Attributreferenzen
sibling-index() und sibling-count() geben Reihenfolge und Anzahl von Geschwisterelementen zurück
attr() kann Attributwerte als Typen wie etwa Farben auslesen und direkt in CSS-Eigenschaften verwenden
@starting-style ist eine experimentelle Syntax zur Definition des Styles beim Start einer Animation
Demo: Anpassung eines nativen HTML-<select>
- Das
<select>-Element bietet Barrierefreiheit und semantische Struktur, bisher war die Styling-Kontrolle jedoch eingeschränkt
- Mit den neuen CSS-Features ist vollständige Anpassung ohne JavaScript möglich
- Anpassungsmodus mit
appearance: base-select aktivieren
- Dropdown-Oberfläche mit
select::picker(select) stylen
- Der Browser übernimmt automatisch
- Overflow-Handling: automatisches Scrollen, damit das Dropdown nicht aus dem Bildschirmbereich herausragt
- Anker-Positionierung: automatische Wahl der optimalen Position je nach verfügbarem Viewport-Platz
- Fokus-Management und Tastaturnavigation: Unterstützung für Arrow-, Enter- und Escape-Tasten
- Rich-Content-Optionen: strukturierte Inhalte wie Icons und Labels sind möglich
- In nicht unterstützenden Browsern erfolgt ein Fallback auf das Standard-
<select>, ohne dass ein separates Polyfill nötig ist
Staffelanimation mit sibling-index()
- Wenn sich Dropdown-Optionen öffnen, lässt sich eine sequenzielle Slide-Animation umsetzen
sibling-index() gibt die Position eines Elements unter seinen Geschwistern (beginnend bei 1) zurück
- Beispiel: Die erste Option erhält
0s, die zweite 0.2s, die dritte 0.4s Verzögerung
- Beim Hinzufügen oder Entfernen von Elementen werden die Timings automatisch neu berechnet, was die Wartung erleichtert
- Damit wird ein Prozess vereinfacht, der bisher mit
:nth-child() oder Custom Properties manuell festgelegt werden musste
Datenbasiertes Styling mit attr()
- Mit der typisierten Variante von
attr() lassen sich HTML-Attributwerte direkt im Styling verwenden
- Beispiel: Das Attribut
data-bg-color wird mit background-color: attr(data-bg-color color, transparent) ausgelesen und verwendet
- Wird der Attributtyp angegeben, kann der Browser den Wert korrekt parsen, und eine Fallback-Farbe ist ebenfalls möglich
- So entsteht eine datenzentrierte Styling-Struktur, bei der sich Farben im HTML ändern lassen, ohne das CSS anpassen zu müssen
Vergleich: Dropdown in CSS vs. JavaScript-Version
- Dieselbe Dropdown-Komponente benötigt in JavaScript mehr als 150 Zeilen Code
- Die CSS-Version erreicht dieselbe Funktionalität mit nur einem
<select> und einigen Attributen
- Native Barrierefreiheit, Fokus und Tastatursteuerung werden automatisch auf Plattformebene bereitgestellt
Zukunft von CSS und Entwicklungsrichtung
- Die neuen CSS-Features ermöglichen es, komplexe UIs mit einfachem deklarativem Code umzusetzen
- Dank der vom Plattform-Stack bereitgestellten Funktionen nehmen Redundanzen im Code und die Abhängigkeit von externen Bibliotheken ab
- Im Zeitalter der KI erhöht eine solche einfache, deklarative Struktur die Zuverlässigkeit automatisierter Codegenerierung
- Empfohlener Ansatz für den Praxiseinsatz
- Bestehende JavaScript-zentrierte UI-Komponenten auf CSS-basierte Ansätze hin überprüfen
- Barrierefreiheitstests parallel durchführen, um Tastatur- und Screenreader-Kompatibilität zu prüfen
- Den Browser-Support kontinuierlich beobachten und die Einführung schrittweise vornehmen
- Diese Veränderungen zeigen, dass CSS sich zur zentralen Technologie für Frontend-Interaktionen entwickelt
Noch keine Kommentare.