カルーセル / スライダー(Carousel / Slider)
Swiper・Embla Carousel・Keen Sliderなどのカルーセル実装比較。自動再生・複数アイテム表示・フェードなど実践的なパターンをインタラクティブに確認できます。
💡 このページでは、Ant Design・Mantine・shadcn/ui(UIコンポーネントライブラリ)と Swiper・Embla Carousel・Keen Slider(カルーセル専用ライブラリ)の実装を比較できます。
antdv6.3.7@mantine/corev9.1.1shadcn/uiv4.2.0swiperv12.1.4embla-carousel-reactv8.6.0keen-sliderv6.8.6
Ant Design Carousel
Ant Design に組み込みの Carousel コンポーネント(rc-slick ベース)。autoplay・dots・arrows・effect など充実した Props で、外部プラグイン不要で多彩な表現が可能。 slidesToShow で複数アイテム同時表示にも対応。
autoplayeffect="fade"slidesToShowdots / arrowsプラグイン不要
読み込み中...
tsx
'use client';
import { Carousel } from 'antd';
import { ConfigProvider } from 'antd';
const slides = [
{ color: '#4f46e5', label: 'Slide 1' },
{ color: '#0891b2', label: 'Slide 2' },
{ color: '#16a34a', label: 'Slide 3' },
{ color: '#dc2626', label: 'Slide 4' },
];
export function AntCarouselDemo() {
return (
<ConfigProvider>
{/* 基本カルーセル(自動再生・矢印・ドット) */}
<Carousel autoplay autoplaySpeed={3000} dots arrows loop>
{slides.map(s => (
<div key={s.label}>
<div style={{ background: s.color, height: 220 }}
className="flex items-center justify-center text-white text-2xl font-bold">
{s.label}
</div>
</div>
))}
</Carousel>
{/* フェードトランジション */}
<Carousel autoplay effect="fade" autoplaySpeed={2500} dots>
{slides.map(s => (
<div key={s.label}>
<div style={{ background: s.color, height: 180 }}
className="flex items-center justify-center text-white text-2xl font-bold">
{s.label}
</div>
</div>
))}
</Carousel>
{/* 複数アイテム表示 */}
<Carousel slidesToShow={3} slidesToScroll={1} autoplay dots arrows>
{slides.map(s => (
<div key={s.label} className="px-1">
<div style={{ background: s.color, height: 140 }}
className="flex items-center justify-center text-white font-bold rounded-lg">
{s.label}
</div>
</div>
))}
</Carousel>
</ConfigProvider>
);
}🤖 AIプロンプトテンプレート
React + Tailwind CSSで、Ant Designを使ったカルーセルを実装してください。 - 使用ライブラリ: antd の Carousel コンポーネント - autoplay prop で自動再生を有効化、autoplaySpeed で切り替え間隔(ms)を設定 - dots prop でドットインジケーターを表示 - arrows prop(v5.17+)で前へ/次へ矢印ナビゲーションを表示 - effect="fade" でフェードトランジションに切り替え - slidesToShow で1画面に表示するスライド数を設定(複数アイテム表示) - loop prop でループ(無限スクロール)を有効化 - ref + CarouselRef でプログラムからスクロールを制御(goTo, prev, next)
⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。
ライブラリ比較
| 項目 | Ant Design | Mantine | shadcn/ui | Swiper | Embla | Keen Slider |
|---|---|---|---|---|---|---|
| 自動再生 | ✅ autoplay prop | ✅ Embla Autoplay | ✅ Embla Autoplay | ✅ Autoplay モジュール | ✅ Autoplay プラグイン | ⚠️ 自作プラグイン |
| フェード切り替え | ✅ effect="fade" | ❌ 非対応 | ❌ 非対応 | ✅ effect="fade" | ❌ 非対応 | ❌ 非対応 |
| 複数アイテム表示 | ✅ slidesToShow | ✅ slideSize | ✅ basis-1/3 | ✅ slidesPerView | ✅ flex-[0_0_32%] | ✅ slides.perView |
| レスポンシブ | ⚠️ 手動実装 | ⚠️ 手動実装 | ✅ CSS(Tailwind) | ✅ breakpoints prop | ⚠️ 手動実装 | ✅ breakpoints prop |
| 外部依存 | antd のみ | @mantine/carousel + Embla | embla-carousel-react | swiper のみ | embla-carousel-react | keen-slider のみ |
| スタイル自由度 | ⚠️ antd スタイルに依存 | ⚠️ Mantine デザインシステム | ✅ Tailwind 完全対応 | ✅ CSS 上書き可 | ✅ 完全自由 | ✅ 完全自由 |
| バンドルサイズ | ⚠️ antd 全体に依存 | ⚠️ @mantine/carousel のみ小 | ✅ 小(Emblaと同等) | ✅ 使ったモジュールのみ | ✅ 超軽量 | ✅ 軽量 |
選択のポイント
- Ant Design — antd を既に使っているプロジェクトなら追加依存なしで使える。autoplay・effect・slidesToShow など 必要な機能が Props で揃っており、外部プラグイン不要で即実装できるのが強み。
- Mantine Carousel — @mantine/carousel は Embla Carousel の高品質なラッパー。withIndicators・withControls・slideSize など Mantine らしい宣言的 API で書けるのが魅力。Mantine を採用しているプロジェクトで特に相性が良い。
- shadcn/ui Carousel — Embla Carousel ベースで、CarouselItem の basis-1/3 のように Tailwind の CSS を直接使って レイアウトを制御できる。デザインシステムを Tailwind で統一しているプロジェクトに最適。
- Swiper — 週700万DLの圧倒的シェアを誇る最も機能豊富なライブラリ。フェード・キューブ・カードなど 豊富なエフェクト、breakpoints によるレスポンシブ設定、縦スクロールなど高度な要件に対応。 ドキュメントが充実しており、ECサイトや LP に特に向いている。
- Embla Carousel — 依存ゼロ・超軽量のヘッドレスカルーセル。スタイルを完全に自前で制御できるため、 デザインシステムへの完全準拠が必要な場面に向いている。 Mantine・shadcn/ui の内部エンジンでもあるため信頼性が高い。
- Keen Slider — React Hooks ベースで簡潔に書けるカルーセル。slides: { perView, spacing } の直感的な API と タッチ操作対応が特徴。オートプレイはプラグインを自作する必要があるが、 シンプルなスライダー・ギャラリーには手軽に使える。
カルーセル(スライダー)は、複数のコンテンツを横方向にスライドして切り替えるUI。商品画像・ヒーローバナー・お客様の声・ニュース記事のハイライトなど、限られたスペースに複数のコンテンツを収めたい場面で使われる。
ECサイトの商品画像ギャラリー・LP のヒーローバナー・ポートフォリオのビジュアル・証言・口コミの一覧表示・ニュースや記事のハイライト。
主なバリエーション
- •単一スライド型(1枚ずつ表示)
- •複数アイテム表示型(3〜5枚同時表示)
- •自動再生型(オートプレイ)
- •フェード切り替え型
- •サムネイル連動型
- •無限ループ型