Carousel
Carousel - modern carousel based on Swiper Element (Web Component)
ABCDA
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="js"><code><span class="line"><span style="color:#E1E4E8"><</span><span style="color:#79B8FF">swiper-container</span></span>
<span class="line"><span style="color:#B392F0"> class</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"max-w-full w-full flex overflow-hidden"</span></span>
<span class="line"><span style="color:#B392F0"> grid-rows</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"1"</span></span>
<span class="line"><span style="color:#B392F0"> mousewheel-force-to-axis</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"true"</span></span>
<span class="line"><span style="color:#B392F0"> navigation</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"true"</span></span>
<span class="line"><span style="color:#B392F0"> pagination-type</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"fraction"</span></span>
<span class="line"><span style="color:#B392F0"> scrollbar</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"false"</span></span>
<span class="line"><span style="color:#B392F0"> slides-per-view</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"auto"</span></span>
<span class="line"><span style="color:#B392F0"> space-between</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"0"</span></span>
<span class="line"><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#79B8FF">swiper-slide</span><span style="color:#B392F0"> class</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"bg-blue-50 p-12 border-1 min-w-full"</span><span style="color:#E1E4E8">>A</</span><span style="color:#79B8FF">swiper-slide</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#79B8FF">swiper-slide</span><span style="color:#B392F0"> class</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"bg-blue-100 p-12 border-1 min-w-full"</span><span style="color:#E1E4E8">>B</</span><span style="color:#79B8FF">swiper-slide</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#79B8FF">swiper-slide</span><span style="color:#B392F0"> class</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"bg-blue-200 p-12 border-1 min-w-full"</span><span style="color:#E1E4E8">>C</</span><span style="color:#79B8FF">swiper-slide</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#79B8FF">swiper-slide</span><span style="color:#B392F0"> class</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"bg-blue-300 p-12 border-1 min-w-full"</span><span style="color:#E1E4E8">>D</</span><span style="color:#79B8FF">swiper-slide</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#79B8FF">swiper-slide</span><span style="color:#B392F0"> class</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"bg-blue-400 p-12 border-1 min-w-full"</span><span style="color:#E1E4E8">>A</</span><span style="color:#79B8FF">swiper-slide</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"></</span><span style="color:#79B8FF">swiper-container</span><span style="color:#E1E4E8">></span></span></code></pre>
Find the code for this page in the src/pages/components/carousel.mdx file.
Product Carousel
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="html"><code><span class="line"><span style="color:#E1E4E8"><</span><span style="color:#85E89D">div</span><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"bg-white rounded-lg p-4 w-full"</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">swiper-container</span></span>
<span class="line"><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"flex w-full max-w-full"</span></span>
<span class="line"><span style="color:#B392F0"> grid-rows</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"1"</span></span>
<span class="line"><span style="color:#B392F0"> mousewheel-force-to-axis</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"true"</span></span>
<span class="line"><span style="color:#B392F0"> navigation</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"false"</span></span>
<span class="line"><span style="color:#B392F0"> scrollbar</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"false"</span></span>
<span class="line"><span style="color:#B392F0"> slides-per-view</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"auto"</span></span>
<span class="line"><span style="color:#B392F0"> space-between</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"0"</span></span>
<span class="line"><span style="color:#E1E4E8"> ></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#85E89D">swiper-slide</span></span>
<span class="line"><span style="color:#B392F0"> class</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">"carousel-product-tile"</span></span>
<span class="line"><span style="color:#E1E4E8"> ></span></span>
<span class="line"><span style="color:#E1E4E8"> <</span><span style="color:#FDAEB7;font-style:italic">ProductTile</span><span style="color:#B392F0"> productObject</span><span style="color:#E1E4E8">=</span><span style="color:#9ECBFF">{productObject}</span><span style="color:#E1E4E8"> /></span></span>
<span class="line"><span style="color:#E1E4E8"> </</span><span style="color:#85E89D">swiper-slide</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"> ...</span></span>
<span class="line"><span style="color:#E1E4E8"> </</span><span style="color:#85E89D">swiper-container</span><span style="color:#E1E4E8">></span></span>
<span class="line"><span style="color:#E1E4E8"></</span><span style="color:#85E89D">div</span><span style="color:#E1E4E8">></span></span></code></pre>
Props
Both Carousel and ProductCarousel are zero-prop wrappers around <swiper-container>. They render a fixed demo set of slides — drop their markup into your own page and pass slides as children to customize.
Swiper Attributes
Configure behavior via attributes on <swiper-container>. The full list lives in the Swiper Element docs; the most useful ones are:
| Attribute |
Type |
Description |
slides-per-view |
number | 'auto' |
Number of visible slides (use auto for variable widths) |
space-between |
number |
Gap between slides in pixels |
navigation |
boolean |
Show prev/next arrows |
pagination |
boolean |
Show pagination dots |
pagination-type |
'bullets' | 'fraction' | 'progressbar' |
Pagination style |
scrollbar |
boolean |
Show draggable scrollbar |
mousewheel-force-to-axis |
boolean |
Lock mousewheel to scroll axis |
grid-rows |
number |
Number of slide rows in grid layout |
CSS Shortcuts
| Class |
Purpose |
carousel-product-tile |
Slide width sizing for product tiles inside ProductCarousel |