Carousel

短い順序付きのコンテンツを、スライド単位で閲覧する場合に使います。

プレビュー

機能の紹介

ダッシュボード、設定、分析のスライドをドラッグや前後の操作で閲覧します。

プレビューを読み込んでいます。

インストール

この Registry を初めて使う場合は、先に 基本設定と共通スタイルの導入 を完了してください。

npx shadcn@latest add @neumorphism-ui/carousel

共有 base を一度導入した後、CLI でコンポーネントと依存関係を追加します。

Registry JSON

使い方

領域に名前を付け、CarouselContent と CarouselItem にスライドを置きます。名前付きの前後ボタンを加え、自動移動なしでも主要内容を見つけられるようにします。

"use client";

import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "@/components/ui/carousel";

export default function Example() {
  return (
    <Carousel aria-label="Product tour" className="max-w-md px-12">
      <CarouselContent>
        {["Overview", "Projects", "Settings"].map(title => (
          <CarouselItem key={title}><div className="p-6">{title}</div></CarouselItem>
        ))}
      </CarouselContent>
      <CarouselPrevious />
      <CarouselNext />
    </Carousel>
  );
}

API リファレンス

スクロール位置とドラッグは Embla Carousel に任せ、ニューモーフィズムはスライド表面と操作ボタンに限定します。先頭と末尾では前後ボタンが自動的に無効になります。

コンポーネントプロパティ型デフォルト説明
Carouselorientation"horizontal" | "vertical""horizontal"スクロール軸と対応する方向キー操作を指定します。
CarouseloptsEmblaOptionsType—loop や align などの Embla オプションを渡します。
CarouselsetApi(api: CarouselApi) => void—外部連携用に Embla API インスタンスを受け取ります。
CarouselItemchildrenReactNode—1つのスライドの実コンテンツを配置します。
CarouselPrevious / CarouselNextlabelstring—前後ボタンのアクセシブル名をローカライズします。

アクセシビリティ

  • 01

    Carousel に aria-label または aria-labelledby で領域の目的を指定します。

  • 02

    各スライドは group と carousel slide の説明を使用し、端では移動ボタンが disabled を公開します。

  • 03

    横方向は左右キー、縦方向は上下キーで移動できます。