shadcn
shadcn/uiコンポーネントライブラリのベストプラクティスとパターンに関するスキルです。shadcn/uiコンポーネントの実装・レビュー・リファクタリング時に適用され、適切なアーキテクチャ・アクセシビリティ・パフォーマンスを確保します。Radix primitives の活用、Tailwindによるスタイリング、React Hook Formを用いたバリデーション、データテーブル、テーマ設定、コンポーネントの組み合わせパターンが関わる作業でトリガーされます。
description の原文を見る
shadcn/ui component library best practices and patterns (formerly shadcn-ui). This skill should be used when writing, reviewing, or refactoring shadcn/ui components to ensure proper architecture, accessibility, and performance. Triggers on tasks involving Radix primitives, Tailwind styling, form validation with React Hook Form, data tables, theming, or component composition patterns.
SKILL.md 本文
shadcn/ui コミュニティベストプラクティス
shadcn/ui アプリケーション向けの包括的なベストプラクティスガイド。shadcn/ui コミュニティによって保守されています。10 のカテゴリにわたる 58 のルールが含まれており、自動リファクタリングとコード生成を指導するために影響度順に優先順位付けされています。
適用する場合
以下の場合にこれらのガイドラインを参照してください:
- プロジェクトで shadcn/ui をインストールおよび設定する
- 新しい shadcn/ui コンポーネントを作成またはプリミティブを合成する
- React Hook Form と Zod 検証を使用してフォームを実装する
- データテーブルを構築または大規模データセット表示を処理する
- テーマをカスタマイズまたはダークモードサポートを追加する
- コードをアクセシビリティ準拠について確認する
ルールカテゴリ(優先度別)
| 優先度 | カテゴリ | インパクト | プレフィックス |
|---|---|---|---|
| 1 | CLI & プロジェクト設定 | 重大 | setup- |
| 2 | コンポーネントアーキテクチャ | 重大 | arch- |
| 3 | アクセシビリティ保全 | 重大 | ally- |
| 4 | スタイリング & テーミング | 高 | style- |
| 5 | フォームパターン | 高 | form- |
| 6 | データ表示 | 中程度-高 | data- |
| 7 | レイアウト & ナビゲーション | 中程度 | layout- |
| 8 | コンポーネント合成 | 中程度 | comp- |
| 9 | パフォーマンス最適化 | 中程度 | perf- |
| 10 | ステート管理 | 低-中程度 | state- |
クイックリファレンス
1. CLI & プロジェクト設定(重大)
- コンポーネント追加前に components.json を設定setup-components-json- components.json に対応する TypeScript パスエイリアスを設定setup-path-aliases- コンポーネント使用前に cn ユーティリティを作成setup-cn-utility- コピペではなく CLI でコンポーネントを追加setup-use-cli-not-copy- 一貫したテーミングのために CSS 変数を有効化setup-css-variables-theme- フレームワークサポートに基づいて RSC フラグを設定setup-rsc-configuration
2. コンポーネントアーキテクチャ(重大)
- カスタムトリガー要素に asChild プロップを使用arch-use-asChild-for-custom-triggers- Radix コンパウンドコンポーネント階層を維持arch-preserve-radix-primitive-structure- Class Variance Authority を使用してタイプセーフなバリアントを実装arch-extend-variants-with-cva- cn() ユーティリティを Tailwind クラスマージに使用arch-use-cn-for-class-merging- フォームとフォーカス統合のための ref フォワーディングarch-forward-refs-for-composable-components- ベーススタイルとバリアント固有スタイルを分離arch-isolate-component-variants
3. アクセシビリティ保全(重大)
- Radix ARIA 属性をそのまま保持ally-preserve-aria-attributes- アイコンボタンにスクリーンリーダーラベルを追加ally-provide-sr-only-labels- モーダル内のフォーカストラッピングを保持ally-maintain-focus-management- WAI-ARIA キーボードパターンを保持ally-preserve-keyboard-navigation- WCAG カラーコントラスト比を維持ally-ensure-color-contrast- スクリーンリーダーのために常に DialogTitle を含めるally-dialog-title-required- ラベルをフォームコントロールに関連付けるally-form-field-labels- フォームエラー状態に aria-invalid を使用ally-aria-invalid-errors- Checkbox をクリックターゲットのために Label でラップally-checkbox-label-association- キーボードナビゲーションのフォーカスビジブルスタイルを保持ally-focus-visible-styles
4. スタイリング & テーミング(高)
- テーマ色に CSS 変数を使用style-use-css-variables-for-theming- スタイル上書きに !important を絶対に使用しないstyle-avoid-important-overrides- デザイントークンのために Tailwind テーマを拡張style-use-tailwind-theme-extend- 一貫した Tailwind スペーシングスケールを使用style-consistent-spacing-scale- モバイルファースト・レスポンシブデザインを適用style-responsive-design-patterns- CSS 変数でダークモードをサポートstyle-dark-mode-support
5. フォームパターン(高)
- React Hook Form との統合form-use-react-hook-form-integration- タイプセーフ検証に Zod を使用form-use-zod-for-schema-validation- 適切なタイミングでエラーを表示form-show-validation-errors-correctly- 非同期検証呼び出しをデバウンスform-handle-async-validation- 送信後のフォーム状態をリセットform-reset-form-state-correctly
6. データ表示(中程度-高)
- ソート/フィルタリングに TanStack Table を使用data-use-tanstack-table-for-complex-tables- 100 項目以上のリストを仮想化data-virtualize-large-lists- ローディング状態に Skeleton を使用data-use-skeleton-loading-states- 大規模データセットをサーバー側でページネートdata-paginate-server-side- アクション可能な空状態を提供data-empty-states-with-guidance
7. レイアウト & ナビゲーション(中程度)
- レイアウトを SidebarProvider でラップlayout-sidebar-provider- サイドバーの折りたたみ動作を設定layout-sidebar-collapsible- グループを使ってサイドバーナビゲーションを整理layout-sidebar-groups- モバイルナビゲーションオーバーレイに Sheet を使用layout-sheet-mobile-nav- 深いナビゲーション用にブレッドクラムを実装layout-breadcrumb-navigation
8. コンポーネント合成(中程度)
- コンパウンドコンポーネントパターンを使用comp-compose-with-compound-components- モバイルデバイスで Drawer を使用comp-use-drawer-for-mobile-modals- Command で検索可能なセレクトを作成comp-combine-command-with-popover- ネストされたダイアログフォーカスを正しく管理comp-nest-dialogs-correctly- 再利用可能なフォームフィールドコンポーネントを抽出comp-create-reusable-form-fields- 柔軟なコンテンツのためにスロットパターンを使用comp-use-slot-pattern-for-flexibility
9. パフォーマンス最適化(中程度)
- 50KB 以上のコンポーネントを遅延ロードperf-lazy-load-heavy-components- リストアイテムと負荷の高いコンポーネントをメモ化perf-memoize-expensive-renders- Lucide アイコン用に直接インポートを使用perf-optimize-icon-imports- フォームフィールド監視を分離perf-avoid-unnecessary-rerenders-in-forms- 検索およびフィルタ入力をデバウンスperf-debounce-search-inputs
10. ステート管理(低-中程度)
- シンプルなフォームには非制御を使用state-prefer-uncontrolled-for-simple-inputs- 状態を最小共通祖先に持ち上げるstate-lift-state-to-appropriate-level- プログラマティックアクセスのためにダイアログを制御state-use-controlled-dialog-state- 状態を使用位置の近くに保持state-colocate-state-with-components
使い方
詳細説明とコード例については、個別の参照ファイルを読んでください:
セクション定義- カテゴリ構造とインパクトレベルルールテンプレート- 新しいルール追加用のテンプレート
完全なコンパイル済みドキュメント
すべてのルールを含む単一ファイルリファレンスについては、AGENTS.md を参照してください。
参照ファイル
| ファイル | 説明 |
|---|---|
AGENTS.md | すべてのルールを含む完全なコンパイル済みガイド |
references/_sections.md | カテゴリ定義と順序付け |
assets/templates/_template.md | 新しいルール用のテンプレート |
metadata.json | バージョンと参照情報 |
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- pproenca
- リポジトリ
- pproenca/dot-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/pproenca/dot-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。