コンポーネントガイド

再利用可能なコンポーネントの使い方

コンポーネントライブラリ

このページでは、デザインシステムで提供される再利用可能なコンポーネントの使い方を紹介します。

各コンポーネントは、Astroコンポーネントとして提供されており、プロジェクト内で簡単にインポートして使用できます。

ボタン

プレビュー

Astro コンポーネント使用例

---
import Button from '@/design-system/components/Button.astro';
---

<Button variant="primary" size="md">プライマリボタン</Button>
<Button variant="secondary">セカンダリボタン</Button>
<Button variant="outline" href="/contact">アウトライン</Button>
<Button variant="primary" size="sm">小さいボタン</Button>

HTML直接使用

<button class="bg-accent-blue-500 hover:bg-accent-blue-700 text-white font-medium px-6 py-3 rounded-lg shadow-md hover:shadow-lg transition-all duration-200">
  プライマリボタン
</button>

カード

プレビュー

基本カード

カードの説明文がここに入ります。

詳細を見る →

フィーチャーカード

アイコン付きカード

画像付きカード

画像エリアとコンテンツ

Astro コンポーネント使用例

---
import Card from '@/design-system/components/Card.astro';
---

<!-- 基本カード -->
<Card>
  <h3>タイトル</h3>
  <p>内容</p>
</Card>

<!-- フィーチャーカード -->
<Card variant="feature">
  <div slot="icon">
    <i class="fas fa-check"></i>
  </div>
  <h3>タイトル</h3>
  <p>内容</p>
</Card>

<!-- 画像付きカード -->
<Card variant="image" imageSrc="/image.jpg" imageAlt="説明">
  <h3>タイトル</h3>
  <p>内容</p>
</Card>

フォーム

プレビュー

Astro コンポーネント使用例

---
import Input from '@/design-system/components/Input.astro';
import Textarea from '@/design-system/components/Textarea.astro';
---

<Input
  type="text"
  id="name"
  label="お名前"
  placeholder="山田太郎"
  required
/>

<Input
  type="email"
  id="email"
  label="メールアドレス"
  placeholder="example@email.com"
  required
/>

<Textarea
  id="message"
  label="お問い合わせ内容"
  rows={4}
  required
/>

バッジ

プレビュー

新着 おすすめ 限定 在庫あり 売り切れ

Astro コンポーネント使用例

---
import Badge from '@/design-system/components/Badge.astro';
---

<Badge variant="coral">新着</Badge>
<Badge variant="accent">おすすめ</Badge>
<Badge variant="outline">限定</Badge>
<Badge variant="success">在庫あり</Badge>
<Badge variant="error">売り切れ</Badge>

アラート・通知

プレビュー

成功: 送信が完了しました。

エラー: エラーが発生しました。

情報: 重要なお知らせです。

警告: 入力内容をご確認ください。

Astro コンポーネント使用例

---
import Alert from '@/design-system/components/Alert.astro';
---

<Alert variant="success">送信が完了しました。</Alert>
<Alert variant="error">エラーが発生しました。</Alert>
<Alert variant="info">重要なお知らせです。</Alert>
<Alert variant="warning">入力内容をご確認ください。</Alert>

セクション

プレビュー

Hero Section (bg-coral-50)

Default Section (bg-white)

Alternate Section (bg-gray-50)

Astro コンポーネント使用例

---
import Section from '@/design-system/components/Section.astro';
---

<Section variant="hero" containerWidth="default">
  <h1>ヒーローセクション</h1>
  <p>メインメッセージ</p>
</Section>

<Section>
  <h2>標準セクション</h2>
  <p>コンテンツ</p>
</Section>

<Section variant="alternate" containerWidth="wide">
  <h2>交互セクション</h2>
  <p>背景色が異なるセクション</p>
</Section>

ヘッダー・ナビゲーション

プレビュー

Astro コンポーネント使用例

---
import Header from '@/design-system/components/Header.astro';
import NavLink from '@/design-system/components/NavLink.astro';
---

<Header logoText="サイト名" logoHref="/">
  <NavLink href="#about">About</NavLink>
  <NavLink href="#service" active>Service</NavLink>
  <NavLink href="#contact">Contact</NavLink>
</Header>

グリッドレイアウト

2カラムグリッド

グリッドアイテム1

グリッドアイテム2

3カラムグリッド

アイテム1

アイテム2

アイテム3

HTMLクラス

<!-- 2カラム -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">

<!-- 3カラム -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">

<!-- 4カラム -->
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">