navigation

Carousel

Embla ベースのアクセシブルなカルーセル。スライド読み上げ、キーボード操作、トラック・スライド・前後ボタンの複合 API を備えています。

インポート

import { Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext } from '@stella-ds/react'
CarouselCarouselContentCarouselItemCarouselPreviousCarouselNext

Props

Propデフォルト説明
loopbooleanfalseWrap from the last slide back to the first
slideAlign'smart' | 'start' | 'center' | 'end''center'Embla snap alignment
slidesPerViewnumber1How many slides should fit in one viewport. Fractional values create peeking layouts.
setApi(api: CarouselApi) => voidundefinedExpose the underlying Embla API for advanced control

Preview

Two-up cards
Exact-fit images

使用例

Two-up cards
<Carousel aria-label="Featured projects" slideAlign="smart" slidesPerView={2}>
  <CarouselContent>
    <CarouselItem>
      <article style={{ borderRadius: '1rem', border: '1px solid var(--stella-color-void-muted)', boxShadow: 'var(--stella-shadow-md)', padding: '1.25rem' }}>
        Project one
      </article>
    </CarouselItem>
    <CarouselItem>
      <article style={{ borderRadius: '1rem', border: '1px solid var(--stella-color-void-muted)', boxShadow: 'var(--stella-shadow-md)', padding: '1.25rem' }}>
        Project two
      </article>
    </CarouselItem>
    <CarouselItem>
      <article style={{ borderRadius: '1rem', border: '1px solid var(--stella-color-void-muted)', boxShadow: 'var(--stella-shadow-md)', padding: '1.25rem' }}>
        Project three
      </article>
    </CarouselItem>
  </CarouselContent>
  <div style={{ display: 'flex', gap: '0.75rem' }}>
    <CarouselPrevious />
    <CarouselNext />
  </div>
</Carousel>
Card
コンポーネント一覧
Checkbox