Responsive Design
Slides Per Page
The number of visible slides in a carousel is controlled using slide sizes with CSS. Slide size refer to width for a horizontal carousel and height for a vertical.
Carousel supports any slide size out of the box. It is also possible to set a different size for each slide individually.
Here's a simple example that shows one slide per page on small screen devices and three on a larger screen:
.f-carousel-slide {
width: 100%;
}
@media (min-width: 768px) {
.f-carousel-slide {
width: calc(100% / 3);
}
}You can also use CSS variable to achieve the same result:
.f-carousel {
--f-carousel-slide-width: 100%;
}
@media (min-width: 768px) {
.f-carousel {
--f-carousel-slide-width: calc(100% / 3);
}
}Slide Gaps
Use CSS variable --f-carousel-gap to set the gap between slides:
.f-carousel {
--f-carousel-gap: 16px;
}If you want to display multiple fully visible slides in a carousel, you need to calculate the widths of the slides based on the amount of visible gaps.
For example, if you want 3 slides to be fully visible with 8px of gap between them, you will have 2 gaps visible (16px total), and each slide will be (100% - 16px) / 3 wide:
.f-carousel {
--f-carousel-gap: 8px;
--f-carousel-slide-width: calc((100% - 16px) / 3);
}The main advantage of this approach is that you can have slides of any width and have full control over slide dimensions (including padding).
Breakpoints
You can make a lot of adjustments with CSS based on the width of the viewport, but sometimes you may need more customization.
For example, you may want to completely change the behavior of the Carousel on small screen devices. You can choose to change the direction of the carousel, disable a plugin, or disable the Carousel entirely. This can be achieved using the breakpoints option.
Example of a Carousel that is only enabled when the screen width is less than 768px:
const options = {
enabled: true,
breakpoints: {
"(min-width: 768px)": {
enabled: false,
},
},
};Disable thumbnails on small screen devices:
const options = {
Thumbs: false,
breakpoints: {
"(min-width: 768px)": {
Thumbs: {
type: "modern",
},
},
},
};Combine style and breakpoints options to quickly change the number of slides displayed depending on the screen size by setting CSS variables:
const options = {
style: {
"--f-carousel-slide-gap": "8px",
"--f-carousel-slide-width": "100%",
},
breakpoints: {
"(min-width: 768px)": {
style: {
"--f-carousel-slide-width": "calc((100% - 16px) / 3)",
},
},
},
};