ckm:ui-styling
UIスタイリングツールキット - shadcn/ui、Tailwind CSS、キャンバスデザイン
shadcn/uiのアクセシブルなコンポーネントライブラリと、Tailwind CSSのユーティリティファーストなスタイリング、キャンバスベースのビジュアルデザインシステムを組み合わせることで、UI開発の摩擦を排除します。このスキルは、40以上のshadcn/uiコンポーネントのリファレンスドキュメント、テーマ設定とダークモードのパターン、アクセシビリティガイドライン、レスポンシブデザインユーティリティ、コンポーネントインストールとTailwind設定生成のためのPython自動化スクリプトを提供します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
Agent向けリソース
AI Agent、クローラー、またはスクリプトがページ全体ではなくクリーンなコンテキストを必要とする場合は、これらのリンクを使ってください。
テストする
「ckm:ui-styling」を使用しています。 shadcn/uiのbutton、card、dialogコンポーネントをインストールし、カードベースの設定パネルを表示してください
期待される結果:
```bash
npx shadcn@latest add button card dialog
```
```tsx
import { Button } from "@/components/ui/button"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
import {
Dialog,
DialogContent,
DialogHeader,
DialogTitle,
DialogTrigger,
} from "@/components/ui/dialog"
export function SettingsPanel() {
return (
<div className="container mx-auto p-6 space-y-6">
<Card>
<CardHeader>
<CardTitle>Profile Settings</CardTitle>
</CardHeader>
<CardContent className="space-y-4">
<p className="text-sm text-muted-foreground">
Manage your account settings and preferences
</p>
<Dialog>
<DialogTrigger asChild>
<Button variant="outline">Edit Profile</Button>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>Edit Profile</DialogTitle>
</DialogHeader>
<div className="space-y-4 py-4">
<p className="text-sm text-muted-foreground">
Profile editing form content here
</p>
<Button className="w-full">Save Changes</Button>
</div>
</DialogContent>
</Dialog>
</CardContent>
</Card>
</div>
)
}
```
「ckm:ui-styling」を使用しています。 ダークモード対応のレスポンシブヘッダーをshadcn/uiのナビゲーションを使って作成してください
期待される結果:
```tsx
import { Button } from "@/components/ui/button"
import {
NavigationMenu,
NavigationMenuList,
NavigationMenuItem,
NavigationMenuLink,
} from "@/components/ui/navigation-menu"
import { Moon, Sun } from "lucide-react"
import { useTheme } from "next-themes"
export function Header() {
const { theme, setTheme } = useTheme()
return (
<header className="sticky top-0 z-50 w-full border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
<div className="container flex h-16 items-center justify-between">
<NavigationMenu>
<NavigationMenuList>
<NavigationMenuItem>
<NavigationMenuLink className="font-bold text-xl">
Logo
</NavigationMenuLink>
</NavigationMenuItem>
</NavigationMenuList>
</NavigationMenu>
<Button
variant="ghost"
size="icon"
onClick={() => setTheme(theme === "dark" ? "light" : "dark")}
>
<Sun className="h-5 w-5 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" />
<Moon className="absolute h-5 w-5 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" />
</Button>
</div>
</header>
)
}
```
セキュリティ監査
低リスクThis skill is safe to publish. It provides UI component documentation and styling guidance. The only executable code is two Python utility scripts: shadcn_add.py (installs shadcn/ui components via npx subprocess) and tailwind_config_gen.py (generates Tailwind CSS config files). The subprocess.run() calls in shadcn_add.py use hardcoded command arguments (npx shadcn@latest add) with dry-run support, making them low-risk. All 770 static analysis findings were reviewed - the vast majority are false positives from font license files (SIL OFL text with URLs), SQLite coverage database binary data, and documentation markdown files containing code examples. No obfuscation, network callbacks, credential access, or dangerous code injection patterns were found.
低リスクの問題 (2)
リスク要因
⚙️ 外部コマンド (2)
📁 ファイルシステムへのアクセス (2)
品質スコア
作れるもの
管理ダッシュボードの構築
shadcn/uiコンポーネントとTailwindユーティリティクラスを使用して、データテーブル、ナビゲーションメニュー、バリデーション付きフォーム、レスポンシブカードレイアウトを備えた管理インターフェースを迅速に構築します。
デザインシステムの実装
カスタムカラー、フォント、スペーシング、ブレークポイントを含むTailwind設定を生成し、shadcn/uiのテーマ対応コンポーネント全体に適用することで、プロジェクト全体で一貫したデザイントークンを確立します。
アクセシブルなフォームの作成
shadcn/uiのフォームコンポーネント、react-hook-formによるバリデーション、キーボードナビゲーションとスクリーンリーダー対応のARIA準拠パターンを使用して、完全なアクセシビリティサポートを備えたプロダクション対応フォームを構築します。
迅速なUIプロトタイピング
オンデマンドでshadcn/uiコンポーネントをインストールし、レスポンシブなTailwindレイアウトを適用し、カスタムCSSを書かずにユーティリティクラスを使ってビジュアルデザインを反復することで、UIコンセプトを素早くプロトタイピングします。
ビジュアルブランド素材
キャンバスデザインシステムのパターンを使用して、キャンバスベースのビジュアルコンポジション、ポスター、ブランド素材を生成します。厳選されたフォントの組み合わせやデザイン哲学のガイダンスにもアクセスできます。
これらのプロンプトを試す
私のプロジェクトに以下のshadcn/uiコンポーネントをインストールしてください:[button, card, dialog, form, table]。次に、それらを組み合わせて、適切なレイアウトとダークモード対応の[dashboard page / settings panel / data view]の完全な使用例を示してください。
[Next.js / Vite / Astro]プロジェクト用のtailwind.config.tsを生成してください:カスタムカラーパレット[primary: blue, accent: purple]、フォントファミリー[sans: Inter、mono: JetBrains Mono]、カスタムスペーシング[18: 4.5rem、22: 5.5rem]、追加ブレークポイント[3xl: 1920px]。推奨プラグインも含めてください。
shadcn/uiコンポーネントを使用して、レスポンシブな[dashboard / landing page / settings panel]レイアウトを作成してください。モバイルファーストのレスポンシブグリッド、ダークモードトグル、キーボードサポート付きのアクセシブルなナビゲーション、適切なセマンティックHTML構造を含めてください。
shadcn/uiのフォームコンポーネントを使用して、アクセシブルな[sign-up / contact / checkout]フォームを構築してください。zodを使用したフィールドバリデーション、エラー状態の処理、送信時のローディング状態、スクリーンリーダー用のARIAラベル、キーボードタブ順序、フォーカス管理を含めてください。
ベストプラクティス
- 複雑なUIは、モノリシックなコンポーネントを構築するのではなく、シンプルで組み合わせ可能なshadcn/uiプリミティブから構成する
- TailwindユーティリティクラスをJSX内で直接使用し、同じパターンが3回以上現れた場合にのみ再利用可能なコンポーネントに抽出する
- モバイルファーストのレスポンシブデザインを採用する:ベースのモバイルスタイルから始め、レスポンシブバリアント(sm:、md:、lg:)を段階的に追加する
- Radix UIの組み込みアクセシビリティ機能を活用し、常に可視フォーカスインジケータを追加し、セマンティックHTMLを使用する
- 一貫したデザイントークンを維持する:tailwind.configで定義されたスペーシングスケール、カラーパレット、タイポグラフィシステムを使用する
- すべてのテーマ対応要素に一貫してdark:バリアントを適用し、半分だけテーマが適用されたダークモードを防ぐ
- 動的なクラス名の構築を避けることで、Tailwindの自動CSSパージの恩恵を受ける
- shadcn/uiコンポーネントで完全なTypeScript型安全性を活用し、開発体験を向上させ、早期にエラーを発見する
- ビジュアルコンポジションが視線を誘導するようにし、スペーシング、色、タイポグラフィ階層を意図的に使用する
- マイクロインタラクションから色のコントラスト比まで、すべてのディテールが重要であるという職人意識を持ってUIに取り組む
回避
- 文字列連結によるTailwindクラス名の動的構築(例:`bg-${color}-500`)はパージを妨げるため避ける。代わりに完全なクラス名またはsafelist設定オプションを使用する
- CSS変数テーマシステムやバリアントスロットを使用せずに、shadcn/uiコンポーネントのソースファイルを直接上書きする
- コンポーネント抽出時に特定性の競合を生み出す方法でTailwindの@applyディレクティブをネストする
- shadcn/uiのDialogやDrawerコンポーネントがすでにアクセシブルでテスト済みのオーバーレイを提供しているのに、カスタムのモーダル/ダイアログ実装を構築する
- コンポーネントツリー全体を複製してダークモードを適用する。代わりに個々のユーティリティクラスにdark:バリアントプレフィックスを使用する
- プロジェクトに.jsと.tsの両方のtailwind設定ファイルを含める(アクティブにするのは1つだけ)
- 最初に`npx shadcn@latest init`を実行せずにshadcn/uiコンポーネントのインストールを実行する - components.json設定が必要です
- キャンバスAPIを本来の目的(ビジュアルデザインコンポジションやグラフィックス)ではなく、レイアウトや構造に使用する
- 非ボタン要素にカスタムクリックハンドラを実装する際に、キーボードユーザー向けのfocus-visibleスタイルを無視する