Carousel

Displays multiple items in a sliding gallery.

Overview

A carousel for displaying multiple slides of content. Supports autoplay and auto-scroll options, with configurable slide widths and minimum sizes to maintain responsive layouts.

Properties

label string

Optional label for the carousel to help identify it in the editor.

slides array | default: array

Array of slides to display in the carousel.

Item Properties:

_component string | default: building-blocks/wrappers/carousel/carousel-slide

contentSections array | default: array

autoPlay boolean | default: false

Enable auto-play functionality.

autoScroll boolean | default: false

Enable auto-scroll functionality.

slideWidthPercent string | default: 100

Width of each slide as a percentage of the carousel (e.g., 33, 50, 100).

minSlideWidth number | default: 0

Minimum width of slides in pixels. Prevents slides from getting too small.

Slots

default

The contents for the the Carousel. Used only when the slides property is not set.

Child Component:
<CarouselSlide>
Properties (documented under the slides property above):
  • contentSections/slot

Examples

Auto play

---
import Image from "@core-elements/image/Image.astro";
import Carousel from "@wrappers/carousel/Carousel.astro";
import CarouselSlide from "@wrappers/carousel/CarouselSlide.astro";
---

<Carousel autoPlay>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Image alt="Quiet Street" source="/src/assets/images/component-library/quiet-street.jpg" />
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Image alt="Sunset" source="/src/assets/images/component-library/sunset.jpg" />
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Image alt="Sheep" source="/src/assets/images/component-library/sheep.jpg" />
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Image alt="Castle" source="/src/assets/images/component-library/castle.jpg" />
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Image alt="Dunedin Cliff" source="/src/assets/images/component-library/dunedin-cliff.jpg" />
  </CarouselSlide>
</Carousel>
---
blocks:
  _component: building-blocks/wrappers/carousel
  autoPlay: true
  slides:
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/core-elements/image
          source: /src/assets/images/component-library/quiet-street.jpg
          alt: Quiet Street
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/core-elements/image
          source: /src/assets/images/component-library/sunset.jpg
          alt: Sunset
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/core-elements/image
          source: /src/assets/images/component-library/sheep.jpg
          alt: Sheep
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/core-elements/image
          source: /src/assets/images/component-library/castle.jpg
          alt: Castle
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/core-elements/image
          source: /src/assets/images/component-library/dunedin-cliff.jpg
          alt: Dunedin Cliff
---

Auto scroll

---
import Image from "@core-elements/image/Image.astro";
import Carousel from "@wrappers/carousel/Carousel.astro";
import CarouselSlide from "@wrappers/carousel/CarouselSlide.astro";
---

<Carousel autoScroll>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Image alt="Quiet Street" source="/src/assets/images/component-library/quiet-street.jpg" />
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Image alt="Sunset" source="/src/assets/images/component-library/sunset.jpg" />
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Image alt="Sheep" source="/src/assets/images/component-library/sheep.jpg" />
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Image alt="Castle" source="/src/assets/images/component-library/castle.jpg" />
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Image alt="Dunedin Cliff" source="/src/assets/images/component-library/dunedin-cliff.jpg" />
  </CarouselSlide>
</Carousel>
---
blocks:
  _component: building-blocks/wrappers/carousel
  autoScroll: true
  slides:
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/core-elements/image
          source: /src/assets/images/component-library/quiet-street.jpg
          alt: Quiet Street
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/core-elements/image
          source: /src/assets/images/component-library/sunset.jpg
          alt: Sunset
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/core-elements/image
          source: /src/assets/images/component-library/sheep.jpg
          alt: Sheep
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/core-elements/image
          source: /src/assets/images/component-library/castle.jpg
          alt: Castle
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/core-elements/image
          source: /src/assets/images/component-library/dunedin-cliff.jpg
          alt: Dunedin Cliff
---

Width percentage

---
import Image from "@core-elements/image/Image.astro";
import Card from "@wrappers/card/Card.astro";
import Carousel from "@wrappers/carousel/Carousel.astro";
import CarouselSlide from "@wrappers/carousel/CarouselSlide.astro";
---

<Carousel minSlideWidth={200} slideWidthPercent={33}>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Card paddingHorizontal="xs" paddingVertical="none">
      <Image alt="Quiet Street" source="/src/assets/images/component-library/quiet-street.jpg" />
    </Card>
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Card paddingHorizontal="xs" paddingVertical="none">
      <Image alt="Sunset" source="/src/assets/images/component-library/sunset.jpg" />
    </Card>
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Card paddingHorizontal="xs" paddingVertical="none">
      <Image alt="Sheep" source="/src/assets/images/component-library/sheep.jpg" />
    </Card>
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Card paddingHorizontal="xs" paddingVertical="none">
      <Image alt="Castle" source="/src/assets/images/component-library/castle.jpg" />
    </Card>
  </CarouselSlide>
  <CarouselSlide _component="building-blocks/wrappers/carousel/carousel-slide">
    <Card paddingHorizontal="xs" paddingVertical="none">
      <Image alt="Dunedin Cliff" source="/src/assets/images/component-library/dunedin-cliff.jpg" />
    </Card>
  </CarouselSlide>
</Carousel>
---
blocks:
  _component: building-blocks/wrappers/carousel
  slideWidthPercent: 33
  minSlideWidth: 200
  slides:
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/wrappers/card
          paddingHorizontal: xs
          paddingVertical: none
          contentSections:
            - _component: building-blocks/core-elements/image
              source: /src/assets/images/component-library/quiet-street.jpg
              alt: Quiet Street
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/wrappers/card
          paddingHorizontal: xs
          paddingVertical: none
          contentSections:
            - _component: building-blocks/core-elements/image
              source: /src/assets/images/component-library/sunset.jpg
              alt: Sunset
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/wrappers/card
          paddingHorizontal: xs
          paddingVertical: none
          contentSections:
            - _component: building-blocks/core-elements/image
              source: /src/assets/images/component-library/sheep.jpg
              alt: Sheep
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/wrappers/card
          paddingHorizontal: xs
          paddingVertical: none
          contentSections:
            - _component: building-blocks/core-elements/image
              source: /src/assets/images/component-library/castle.jpg
              alt: Castle
    - _component: building-blocks/wrappers/carousel/carousel-slide
      contentSections:
        - _component: building-blocks/wrappers/card
          paddingHorizontal: xs
          paddingVertical: none
          contentSections:
            - _component: building-blocks/core-elements/image
              source: /src/assets/images/component-library/dunedin-cliff.jpg
              alt: Dunedin Cliff
---