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>