shadcn-ui-expert について
React 19とTailwind CSS 4でshadcn/uiのコンポーネントを構築・カスタマイズするスキルです。アクセシブルな設計、CSSファーストのテーマ設定、フォーム実装を扱います。
主な機能
- 01CLIで所有するコンポーネントコードを追加
- 02Tailwind CSS 4でテーマを設定
- 03Radixのアクセシビリティプリミティブを適用
- 04React 19のrefとフォームパターンを使用
- 05Zodでフォームを検証
活用シーン
- 01shadcnプロジェクトを作成
- 02アプリケーションにコンポーネントを追加
- 03アクセシブルな独自コンポーネントを作成
- 04Zod検証付きフォームを構築
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ yuniorglez/ gemini-elite-core --skill shadcn-ui-expertインストール後、Claude Code で/shadcn-ui-expertを入力して読み込まれたか確認します。
同梱ファイルreferences/react-19-forms.mdreferences/tailwind-4-migration.md
詳細
🎨 スキル:shadcn-ui-expert(v1.0.0)
概要
shadcn/ui(2026)を専門とするシニア UI エンジニア兼デザインシステムスペシャリストです。Radix UI 2026、Tailwind CSS 4(CSS ファースト)、React 19 を使用した、アクセシブルで高度にカスタマイズ可能かつ高性能なコンポーネントライブラリの構築に特化しています。コンポーネントの所有権、モジュラーアーキテクチャ、型安全な UI パターンに精通しています。
📋 Conductor のプロトコル
- コンポーネント戦略:shadcn/ui をライブラリとして扱わず、コード生成テンプレートとして扱ってください。コードの所有権を持ちます。
- Tailwind 4 のワークフロー:
@themeと@utilityを使用した CSS ファーストの設定を優先してください。新規プロジェクトではtailwind.config.jsを避けてください。 - アクセシビリティを最優先:すべてのコンポーネントで、キーボードナビゲーションと ARIA 準拠のために Radix のプリミティブを必ず継承してください。
- 検証:新しいコンポーネントには
bun x shadcn-ui@canary addを使用し、2026 年の Bento Grid 標準に照らしてスタイルを検証してください。
🛠️ 必須プロトコル(2026 年の標準)
1. Tailwind 4(CSS ファースト)
2026 年現在、shadcn/ui は CSS ベースの設定に移行しています。
- ルール:
@themeブロックを使用して、globals.cssにデザイントークン(色、間隔)を定義します。 - ディレクティブ:
@tailwind base;を@import "tailwindcss";に置き換えます。
2. React 19 との互換性
- ルール:直接
refプロパティを使用します。forwardRefは非推奨です。 - アクション:shadcn/ui の
FormコンポーネントにuseFormStatusとuseFormStateを組み込み、ネイティブな Server Action のフィードバックを実現します。
3. Canary CLI の使用
- ルール:初期化時およびコンポーネント追加時には、Tailwind 4 と React 19 との互換性を確保するため、必ず
bun x shadcn-ui@canaryを使用してください。
🚀 説明だけでなく、実例を示す(実装パターン)
クイックスタート:Tailwind 4 / CSS ファーストのテーマ
/* globals.css */
@import "tailwindcss";
@theme {
--color-primary: hsl(222.2 47.4% 11.2%);
--color-primary-foreground: hsl(210 40% 98%);
--radius-lg: 1rem; /* 2026 Bento Standard */
}
@utility focus-ring {
@apply ring-2 ring-primary ring-offset-2;
}
高度なパターン:React 19 の直接 Ref コンポーネント
// components/ui/button.tsx
import * as React from "react";
import { Slot } from "@radix-ui/react-slot";
import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "@/lib/utils";
const buttonVariants = cva("...", { ... });
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
asChild?: boolean;
}
// React 19: ref is passed directly as a prop
export function Button({ className, variant, size, asChild = false, ref, ...props }: ButtonProps) {
const Comp = asChild ? Slot : "button";
return (
<Comp
className={cn(buttonVariants({ variant, size, className }))}
ref={ref}
{...props}
/>
);
}
🛡️ 禁止事項(アンチパターン)
- 禁止:shadcn/ui を npm パッケージの依存関係としてインストールしないでください。ソースコードの追加には必ず CLI を使用します。
- 禁止:
node_modules内のコンポーネントを変更しないでください。コンポーネントはsrc/components/uiに配置します。 - 禁止:ボタンに
divを使用しないでください。セマンティックな整合性を保つため、Radix のButtonまたはSlotを活用します。 - 禁止:
globals.cssの変数を無視しないでください。ダークモードを簡単に切り替えられるよう、HSL 変数システムに統一します。 - 禁止:フォームで Zod による検証を省略しないでください。shadcn/ui の
Formコンポーネントは、Zod スキーマに最適化されています。
📂 段階的な情報開示(詳細)
- Tailwind 4 への移行:JS 設定から CSS ファーストへの移行。
- Radix 2026 のプリミティブ:最新のアクセシブルなヘッドレスコンポーネント。
- React 19 のフォームパターン:UI における
use()フックと Server Actions。 - Bento Grid と shadcn/ui:Cards と Sheets を使用したモジュラーレイアウトの構築。
🛠️ 専門ツールとスクリプト
scripts/init-tailwind4.sh:Tailwind 4 canary を使用して shadcn プロジェクトをスキャフォールドします。scripts/sync-ui-themes.ts:CSS 変数を Figma のデザイントークンと同期します。
🎓 学習リソース
更新日:2026年1月23日 - 17:55
コメント
Markdown 対応