Mantine UIベースのコミュニティコンポーネントカタログです。デザインシステムを活用した実用的なコンポーネントのスニペットとライブデモを提供します。
このプロジェクトは、Mantine UIデザインシステムを基盤として作られたコミュニティコンポーネントのカタログサイトです。以下の2種類のコンポーネントを提供しています:
- Custom コンポーネント: デザイントークンやガイドラインを用いて作成された独自コンポーネント
- Block コンポーネント: デザインシステムコンポーネントを組み合わせて作成された実用的なUIパターン
- Docusaurus 3.8.0 - ドキュメントサイト生成
- Mantine UI 8.0 - デザインシステム
- TypeScript - 型安全性
- React 19 - UIライブラリ
- MDX - マークダウン + React
コンポーネント | 説明 | 特徴 |
---|---|---|
AdvancedCombobox | 検索履歴・お気に入り機能付きCombobox | 🔍 インクリメンタル検索 ⭐ お気に入り機能 🕒 検索履歴 |
ProgressSteps | ステップ表示付きProgress | 📊 視覚的進捗表示 🎯 ステップ制御 🎨 状態管理 |
コンポーネント | 説明 | 構成要素 |
---|---|---|
LoginForm | 実用的なログインフォーム | TextInput + PasswordInput + Button + Alert |
UserCard | プロフィール表示カード | Avatar + Text + Badge + ActionIcon + Menu |
SearchBox | フィルタ機能付き検索ボックス | TextInput + Menu + Select + Badge |
NotificationBanner | アクション付き通知バナー | Alert + Button + Transition |
- Node.js 18.0 以上
- pnpm 8.0 以上
# リポジトリをクローン
git clone https://github.com/your-username/community-component-catalog.git
cd community-component-catalog
# 依存関係をインストール
pnpm install
# 開発サーバーを起動
pnpm start
# 本番用ビルド
pnpm build
# ローカルでビルド結果を確認
pnpm serve
community-component-catalog/
├── custom/ # Custom コンポーネント
│ ├── intro.mdx # Custom コンポーネント概要
│ ├── advanced-combobox.mdx # AdvancedCombobox
│ └── progress-steps.mdx # ProgressSteps
├── block/ # Block コンポーネント
│ ├── intro.mdx # Block コンポーネント概要
│ ├── login-form.mdx # LoginForm
│ ├── user-card.mdx # UserCard
│ ├── search-box.mdx # SearchBox
│ └── notification-banner.mdx # NotificationBanner
├── src/
│ ├── components/ # 共通コンポーネント
│ ├── theme/ # Mantine テーマ設定
│ │ ├── mantine-theme.ts # カスタムテーマ
│ │ └── Layout/ # レイアウトコンポーネント
│ └── css/ # カスタムスタイル
├── static/ # 静的ファイル
├── docusaurus.config.ts # Docusaurus 設定
└── sidebars.ts # サイドバー設定
このプロジェクトでは、Mantine UIとDocusaurusの完全な統合を実現しています:
- MantineProvider による全体テーマ管理
- ダークモード対応 (Docusaurusと連携)
- カスタムテーマ による統一感のあるデザイン
- MDXでのMantineコンポーネント 使用
{
"@mantine/core": "^8.0.2",
"@mantine/hooks": "^8.0.2",
"@mantine/form": "^8.0.2",
"@mantine/code-highlight": "^8.0.2",
"@mantine/notifications": "^8.0.2",
"@tabler/icons-react": "^3.34.0"
}
各コンポーネントページには以下の情報が含まれています:
- 概要 - コンポーネントの説明と用途
- ライブデモ - 実際に動作するコンポーネント
- 実装コード - TypeScript + Mantine UI
- プロパティ - 利用可能なpropsと設定
- 使用方法 - 基本的な使用例とカスタマイズ例
- 特徴 - コンポーネントの主要機能
- バリエーション - 異なる用途での使用例
- 適切なディレクトリ (
custom/
またはblock/
) にMDXファイルを作成 - フロントマターで
sidebar_position
を設定 - ライブデモ、実装コード、使用例を含める
- サイドバーは自動生成されます
src/theme/mantine-theme.ts
でMantineテーマをカスタマイズできます:
export const mantineTheme = createTheme({
primaryColor: 'blue',
colors: {
primary: primaryColor,
},
fontFamily: 'Inter, system-ui, sans-serif',
// ...
});
新しいコンポーネントの提案や改善案を歓迎します!
- このリポジトリをフォーク
- 新しいブランチを作成 (
git checkout -b feature/amazing-component
) - 変更をコミット (
git commit -m 'Add amazing component'
) - ブランチにプッシュ (
git push origin feature/amazing-component
) - プルリクエストを作成
- 実用性: 実際のプロジェクトで使用できるレベルの品質
- 再利用性: 様々なシーンで活用できる汎用性
- アクセシビリティ: WCAG準拠のアクセシブルな実装
- ドキュメント: 充実した使用例とプロパティ説明
このプロジェクトは MIT License の下で公開されています。
- ライブサイト: https://your-site.example.com
- Mantine UI: https://mantine.dev
- Docusaurus: https://docusaurus.io
Community Component Catalog - Mantine UIベースの実用的なコンポーネントスニペット集