Creating sliders or carousels historically required JavaScript, but new CSS features now enable building CSS-only carousels with enhanced accessibility.
The new CSS features include ::scroll-button() pseudo-element for interactive scroll buttons, ::scroll-marker for visual markers, and :target-current pseudo-class for styling active scroll markers.
The ::scroll-button() allows creating scroll buttons for different directions within a scroll container and can be styled freely.
The ::scroll-marker pseudo-element represents markers tied to scrollable items and can be styled to create thumbnails or tabs for carousels.
Combining these features enables building a CSS-only carousel with scroll container setup, scroll buttons for navigation, and markers for visual indication.
Accessibility is inherently built into features like scroll buttons and markers, reducing the need for manual accessibility implementations.
Browser compatibility for features like ::scroll-button() and ::scroll-marker is limited to Chrome 135+ and Edge 135+ but is expected to expand.
These CSS features showcase the advancements in native styling, offering alternatives to traditional JavaScript-based carousels.