User Story
Als Site-Builder möchte ich den Slider-Container mit erweitertem Funktionsumfang (Infinite-Carousel, sichtbarer Cursor beim Hovern, Bleed-Effekt) nutzen können, damit ich Karussell-Sektionen nach Figma-Spec umsetzen kann, ohne am Quellcode des Themes zu arbeiten.
Implementierte Features
1 — Infinite Carousel mit Mobile-Disable
Neuer Bool-Prop infinite auf slider-container. Wenn aktiv, wird das
aktive Slide zentriert dargestellt, benachbarte Slides sind beidseitig sichtbar, Navigation
wraps nahtlos. Auf Mobile (< 768 px) ist Infinite automatisch deaktiviert — der Slider
verhält sich dort wie ein normaler Paged-Slider.
Technisch: JS trennt #infinite (Prop-Wert) von #infiniteActive
(effektiver Wert nach Breakpoint-Check). Alle Methoden arbeiten ausschließlich mit
#infiniteActive. Ein resize-Listener aktualisiert
#infiniteActive bei Viewport-Änderungen.
2 — Cursor-Grab beim Hovern
Nutzer sehen beim Hovern über den Slider eine Hand-Cursor-Geste, die andeutet, dass der
Slider per Drag/Maus bedienbar ist. Beim aktiven Drag wechselt der Cursor zu
grabbing.
Technisch: cursor-grab [&_*]:cursor-grab (Descendant-Selektor nötig, da
Kind-Elemente — z. B. Links in Cards — inherited cursor überschreiben). JS setzt
data-grabbing am Container-Element statt inline-style, damit der
CSS-Selektor [.slider-container[data-grabbing]_&]:cursor-grabbing greift.
Im Canvas-Editor ist der Grab-Cursor deaktiviert.
3 — Bleed-Prop (Kartenüberlauf)
Neuer Enum-Prop bleed (none | sm). Bei sm
werden die äußeren Kanten der sichtbaren Slides um 15 px abgeschnitten — links und rechts —
was den Effekt „da ist noch mehr" erzeugt, ohne benachbarte Slides vollständig zu zeigen
(anders als peek). Wird von infinite und peek ignoriert,
wenn diese aktiv sind.
Technisch: #activeBleed()-Methode im JS; Korrektur des initialen
translateX um den Bleed-Betrag (sonst liegt das erste Slide bündig an der
Viewport-Kante — kein linker Clip).