Carousel Component
Slides Only (Scrollable)
This carousel uses CSS Scroll Snap for a smooth, swipeable experience on touch devices and trackpads. No controls are needed.
<div class="scroll-carousel">
<div class="slide"><div class="demo-card">...</div></div>
<div class="slide"><div class="demo-card">...</div></div>
<div class="slide"><div class="demo-card">...</div></div>
</div>
With Controls
This version uses hidden radio buttons and labels to create previous/next arrows. It is not scrollable.
<!-- Radio inputs to manage state -->
<input type="radio" name="carousel-controls" id="slide1-ctrl" checked>
<input type="radio" name="carousel-controls" id="slide2-ctrl">
...
<div class="radio-carousel-viewport">
<div class="slide">...</div>
<div class="slide">...</div>
</div>
<!-- Labels act as next/prev buttons -->
<label for="slide2-ctrl" class="carousel-control next"></label>
<label for="slide1-ctrl" class="carousel-control prev"></label>
...
With Indicators
This version adds indicator dots to the bottom, which also function as navigation controls.
<!-- Add a container for the indicator labels -->
<div class="carousel-indicators">
<label for="slide1-ind" class="indicator-dot"></label>
<label for="slide2-ind" class="indicator-dot"></label>
<label for="slide3-ind" class="indicator-dot"></label>
</div>