Carousel:HextaUI と shadcn/ui

HextaUI の Carousel は shadcn/ui の名前とテーマトークンをそのまま使い、同じ CLI でインストールできます。このページでは、両方のソースから読み取った違いをまとめています。shadcn/ui 側は 2026-10-16 時点の base-vega レジストリです。

早見表

項目HextaUIshadcn/ui
エクスポートされるパーツ105
ラッパーが処理する props238
ソースの行数1667256
npm の依存関係@base-ui/react@^1.8.0@tabler/icons-reactclass-variance-authoritycncnembla-carousel-react
構成要素buttonnumber-flowthemebutton

ソースが多いこと自体が良いわけではありません。HextaUI の追加の行の多くは、本来なら自分で書くことになる状態、モーション、エッジケースを扱っています。

パーツ

HextaUI だけCarouselDotsCarouselCounterCarouselAutoplayToggleCarouselThumbnailsCarouselThumbnail

両方にあるCarouselCarouselContentCarouselItemCarouselPreviousCarouselNext

HextaUI が追加する props

HextaUI のラッパーが自分で処理し、shadcn/ui のラッパーは処理しない props です。Base UI や下位ライブラリにそのまま渡される props は、どちらのバージョンでも使えるため除いています。

プロパティ内容
defaultIndexCarouselAPI リファレンスを見る
rewindCarousel最後のスライドから最初のスライドに戻ります。
mouseDragCarouselマウスでスライドをドラッグできるようにします。
autoplayCarouselタイマーで進めます。delay のデフォルトは 5000ms で、最小は 1000ms です。
viewportClassNameCarouselContentスクロールするビューポートに適用されます。
variantCarouselAutoplayToggleAPI リファレンスを見る

バリアント

プロパティ両方にあるHextaUI のみshadcn/ui のみ
spacingCarousel–nonesmdefaultlg–
orientationCarouselNav–horizontalvertical–
directionCarouselNav–previousnext–

HextaUI 版

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

const slides = [1, 2, 3, 4, 5]

export function CarouselDemo() {
  return (
    <div className="w-full max-w-xs px-12">
      <Carousel aria-label="Numbers">
        <CarouselContent>
          {slides.map((value) => (
            <CarouselItem key={value}>
              <div className="flex aspect-square items-center justify-center rounded-xl border bg-card p-6 text-4xl font-semibold">
                {value}
              </div>
            </CarouselItem>
          ))}
        </CarouselContent>
        <CarouselPrevious />
        <CarouselNext />
        <div className="mt-3 flex justify-center">
          <CarouselDots />
        </div>
      </Carousel>
    </div>
  )
}

すべての状態、キーボード操作、API リファレンスはコンポーネントのページにあります。

このうち 13 個の例には専用のページもあります。

コンポーネントを 1 つ切り替える

add コマンドを --overwrite 付きで実行して @/components/ui の shadcn/ui のファイルを置き換え、残す前に git で差分を確認してください。import はそのままで、置き換えないコンポーネントもそのまま動きます。

pnpm dlx shadcn@latest add https://hextaui.com/r/carousel.json --overwrite
  • 上の表の props はすべて追加分なので、shadcn/ui 向けに書いた呼び出しではまだ渡されていません。
  • 切り替える前に、shadcn/ui にだけあるパーツやバリアントを確認し、最も近い HextaUI のものに置き換えてください。

ほかのコンポーネントの比較

その他の比較