mcpField
S
Shadcn UI & Blocks

Shadcn UI & Blocks

github.com/masonjamesデザイン・UI30462 回インストール39 週間前に更新
リポジトリ

Shadcn UI & Blocks について

Tailwind CSS を使う React または Next.js プロジェクトで、shadcn/ui のコンポーネントと ShadcnBlocks のセクションを選び、導入するスキルです。要望に合うバリエーションを提案し、確認質問を最大 2 つ行って、編集可能なページを組み立てます。

主な機能

  1. 01要望に合うブロックのバリエーション選定
  2. 02確認質問は最大 2 つ
  3. 03ブロックとコンポーネントのカタログ参照
  4. 04ブロックまたはコンポーネントの設定と導入
  5. 05編集可能なページセクションの組み立て

活用シーン

  1. 01サイトに合うヒーローや料金セクションの選定
  2. 02フォーム、ダイアログ、チャートの検索
  3. 03ブロックを使ったランディングページの作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/masonjames/shadcnblocks-skill --skill shadcn-ui-&-blocks

インストール後、Claude Code で/shadcn-ui-&-blocksを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
block-catalog.md
setup-guide.md
component-catalog.md
block-index.md
scripts/
get-api-key.sh
setup-shadcnblocks.sh

詳細

Shadcn UI & ShadcnBlocks 連携

このスキルは、shadcn/ui コンポーネントとプレミアムな ShadcnBlocks テンプレートを使用して、洗練されたフロントエンドを構築できるようにします。主な機能は、あらゆる UI のニーズに対して最適なブロックまたはコンポーネントをインテリジェントに推薦することです。単に適切なカテゴリだけでなく、そのカテゴリ内の適切なバリアントを提案し、その後セットアップとインストールを処理します。

使用するタイミング

次の場合にこのスキルを有効にします:

  • 新しいフロントエンド、ランディングページ、マーケティングサイト、またはアプリ UI を作成する場合
  • プロジェクトが React/Next.js と Tailwind CSS を使用している、または使用すべき場合
  • 構築済みの UI セクション(ヒーロー、料金、機能、お客様の声など)が開発を加速させる場合
  • ユーザーが特定の UI 要素(フォーム、チャート、ダイアログ、ナビゲーションなど)を必要としている場合
  • ユーザーが shadcn、shadcn/ui、shadcnblocks、または Tailwind ベースの UI コンポーネントに言及した場合

ブロックとコンポーネントの比較

ブロックコンポーネント
内容ページ全体のセクション再利用可能な UI 要素
サイズヒーロー、料金、フッターなどボタン、入力、ダイアログなど
数71 カテゴリにわたる 1,338 個60 以上のグループにわたる 1,189 個
アクセスプレミアム(API キーが必要)無料
インストール@shadcnblocks/<name><number>@shadcnblocks/<type>-<style>-<number>

ブロックを使用して、構築済みのセクションからページ全体のレイアウトを構成します。 コンポーネントを使用して、カスタムコード内の個々の UI 要素を実装します。


インテリジェントなブロック選択

0〜2 質問ルール

ブロックを推薦する際は、次の段階的な開示フローに従います:

  • 0 質問: ユーザーのリクエストが直接マッチングできるほど具体的である場合(例:「メールアドレス取得フォーム付きのヒーローを追加して」→ cta_pattern: form_capture でマッチング)
  • 1 質問: セクションは明確だが、スタイル/レイアウトが曖昧である場合(例:「機能セクションを追加して」→ レイアウトの好みを尋ねる)
  • 最大 2 質問: セクションとスタイルの両方が不明確である場合(例:「製品を紹介するセクションを追加して」→ セクションの種類を尋ね、次にスタイルを尋ねる)

3 つ以上の質問は絶対にしないでください。 それでも曖昧な場合は、最適な 2〜3 個を選び、トレードオフを説明します。

意思決定フロー: 推論 → 質問 → 候補の絞り込み

ステップ 1 — リクエストから推論する(常に最初に行う)

何かを尋ねる前に、できるだけ多くの制約を抽出します:

  • セクションの種類: ヒーロー、機能、料金、お客様の声、CTA、FAQ、ナビゲーションバー、フッター、お問い合わせ、統計
  • 目的のキーワード: 「signup」→ convert/capture_leads、「trust」→ trust、「compare plans」→ compare
  • レイアウトのヒント: 「grid」→ grid_cards、「side by side」→ split、「accordion」→ accordion interaction
  • トーンのヒント: 「clean」→ minimal、「bold」→ bold、「professional」→ enterprise
  • メディアのヒント: 「with screenshots」→ screenshot media、「video」→ video media
  • 密度のヒント: 「simple」→ minimal density、「detailed」→ rich density

ステップ 2 — 的を絞った質問をする(必要な場合のみ)

AskUserQuestion を使用して、構造化された多肢選択形式で絞り込みます。セクションごとに事前定義された質問と選択肢については、references/block-index.md → selection_prompts を参照してください。

事前定義されたプロンプトがあるセクション: ヒーロー、機能、料金、お客様の声、CTA、FAQ、ナビゲーションバー、フッター、お問い合わせ、統計。

機能セクションのリクエストの例:

AskUserQuestion:
  question: "How do you want to showcase your features?"
  options:
    - "Card grid (3-4 columns with icons)" — Classic feature grid with icon + description per card
    - "Alternating image + text rows" — Deep-dive with large visuals, great for product tours
    - "Bento / asymmetric grid" — Modern editorial layout with mixed-size cards
    - "Simple icon list or checklist" — Compact, scannable benefit list

AskUserQuestion が利用できない場合は、同じ質問を番号付きの選択肢とともにインラインで尋ねます。

ステップ 3 — タグをマッチングして最適な 2〜3 個を返す

ユーザーの回答をタグフィルターにマッピングし、references/block-index.md のエントリとマッチングします。次の形式で正確に 2〜3 個の推薦を返します:

Here are the best matches for your [section type]:

1. **[block-id]** — [1-line "why this one"]
   Layout: [layout] · Tone: [tone] · [key differentiator]

2. **[block-id]** — [1-line "why this one"]
   Layout: [layout] · Tone: [tone] · [key differentiator]

3. **[block-id]** — [1-line "why this one"]
   Layout: [layout] · Tone: [tone] · [key differentiator]

Which one works best? I'll install it and set it up.

ユーザーが選択したら、インストールコマンドを提供し、それをページに組み込みます。

マッチングに使用するタグの軸

以下は、ブロックを区別するために references/block-index.md から使用される主要な軸です:

軸わかること値の例
layout視覚的な配置centered、split_right_media、grid_cards、bento、alternating
tone美的な印象minimal、modern、bold、enterprise、elegant、playful
goalビジネス上の目的awareness、explain、trust、convert、capture_leads、compare
cta_patternアクションの種類single_primary、primary_secondary、form_capture、multi_action
mediaビジュアルコンテンツscreenshot、illustration、video、icons、avatars、logos
interaction動的な挙動static、accordion、tabs、carousel、toggle、hover
items_count表示される項目数few、moderate、many
content_densityコンテンツ量minimal、standard、rich
complexity実装の手間low、medium、high
どのリファレンスをいつ使うか
シナリオ使用するもの
最適なブロックを提案する(デフォルト)references/block-index.md — 選択プロンプト付きのタグ付けされた候補
ユーザーが特定の番号のバリアントを希望するreferences/block-catalog.md — すべてのバリアント番号を含む完全なカタログ
block-index にないセクション(例: ブログ、ギャラリー)references/block-catalog.md — カテゴリのデフォルトにフォールバック
ユーザーがすべてのオプションを閲覧したいhttps://shadcnblocks.com/explorer/blocks に誘導
個別の UI 要素が必要references/component-catalog.md — 無料コンポーネント

カテゴリ早見リファレンス

まだ block-index.md にないセクションには、以下のデフォルトを使用します:

コンテンツとブログ
必要なものカテゴリ最初に使うもの
ブログ一覧blog(22 バリアント)blog1
ブログ記事ページblogpost(7 バリアント)blogpost1
変更履歴changelog(7 バリアント)changelog1
コードスニペットcode-example(5 バリアント)code-example1
会社概要とチーム
必要なものカテゴリ最初に使うもの
会社概要セクションabout(17 バリアント)about1
チームページteam(14 バリアント)team1
会社の沿革timeline(15 バリアント)timeline1
求人情報careers(9 バリアント)careers1
Eコマース
必要なものカテゴリ最初に使うもの
商品カードproduct-card(10 バリアント)product-card1
商品一覧product-list(10 バリアント)product-list1
商品詳細product-detail(10 バリアント)product-detail1
ショッピングカートshopping-cart(11 バリアント)shopping-cart1
チェックアウトcheckout(6 バリアント)checkout1
注文履歴order-history(5 バリアント)order-history1
アプリとダッシュボード
必要なものカテゴリ最初に使うもの
ダッシュボードのチャートchart-card(27 バリアント)chart-card10
データテーブルdata-table(32 バリアント)data-table1
アプリのサイドバーsidebar(21 バリアント)sidebar1
アプリシェルのレイアウトapplication-shell(14 バリアント)application-shell1
ユーザープロフィールuser-profile(12 バリアント)user-profile1
ポートフォリオ
必要なものカテゴリ最初に使うもの
画像ギャラリーgallery(48 バリアント)gallery1
プロジェクト一覧projects(25 バリアント)projects1
プロジェクト詳細project(33 バリアント)project1
ケーススタディcase-studies(6 バリアント)case-studies1
ビジュアルと装飾
必要なものカテゴリ最初に使うもの
背景パターンbackground-pattern(40 バリアント)background-pattern1
アニメーションシェーダーshader(10 バリアント)shader1
Bento グリッドレイアウトbento(8 バリアント)bento1
ナビゲーションとその他
目的カテゴリはじめに使うもの
お知らせバーbanner (7 variants)banner1
セール・プロモバーpromo-banner (7 variants)promo-banner1
パートナーロゴlogos (13 variants)logos1
比較compare (10 variants)compare1

適切なコンポーネントの選択

完全なカタログについては references/component-catalog.md を参照してください。主なグループ:

目的コンポーネントグループ例
フォームレイアウトForm (86)form-signin-1
ラベル付き入力Field (38)field-standard-1
アドオン付き入力Input Group (39)input-group-standard-1
検索可能なセレクトCombobox (42)combobox-standard-1
ファイルアップロードFile Upload (44)file-upload-standard-1
日付ピッカーDate Picker (8)date-picker-standard-1
アラートメッセージAlert (25)alert-error-1
確認ダイアログAlert Dialog (39)alert-dialog-standard-1
ローディングスケルトンSkeleton (30)skeleton-standard-1
トースト通知Sonner (24)sonner-standard-1
空の状態Empty (22)empty-standard-1
モーダルダイアログDialog (17)dialog-standard-1
サイドパネルSheet (29) / Drawer (22)sheet-standard-1
アコーディオンAccordion (21)accordion-standard-1
データチャートChart (70)chart-standard-1
コマンドパレットCommand (21)command-standard-1
ドロップダウンメニューDropdown Menu (30)dropdown-menu-standard-1
キーボードショートカットKBD (39)kbd-standard-1

基本的なワークフロー

1. プロジェクトの基盤を確認する

プロジェクトで shadcn/ui が初期化されていることを確認してください。まだの場合は:

npx shadcn@latest init

これにより、プロジェクトのルートに components.json が作成されます。

2. ShadcnBlocks レジストリを設定する

components.json に @shadcnblocks レジストリがすでに含まれているか確認してください。まだの場合は、次を実行します:

bash "${CLAUDE_PLUGIN_ROOT}/skills/shadcn-ui/scripts/setup-shadcnblocks.sh" .

これにより、components.json に @shadcnblocks レジストリが追加され、.env に SHADCNBLOCKS_API_KEY が設定されます。

スクリプトを実行できない場合 (たとえば jq がない場合) は、手動で設定します:

  1. .env に追加: SHADCNBLOCKS_API_KEY=<key>
  2. components.json にレジストリを追加:
{
  "registries": {
    "@shadcnblocks": {
      "url": "https://shadcnblocks.com/r/{name}",
      "headers": {
        "Authorization": "Bearer ${SHADCNBLOCKS_API_KEY}"
      }
    }
  }
}
3. ブロックを選択してインストールする

上記のインテリジェント選択フローを使用して最適なブロックを推薦し、インストールします:

# Blocks (full page sections)
npx shadcn add @shadcnblocks/hero125
npx shadcn add @shadcnblocks/pricing3

# Components (UI elements)
npx shadcn add @shadcnblocks/accordion-standard-1
npx shadcn add @shadcnblocks/file-upload-standard-1
4. ページを構成する

ページレイアウトでブロックをインポートして構成します:

import { Navbar1 } from "@/components/navbar1";
import { Hero125 } from "@/components/hero125";
import { Feature3 } from "@/components/feature3";
import { Footer1 } from "@/components/footer1";

export default function LandingPage() {
  return (
    <>
      <Navbar1 />
      <Hero125 />
      <Feature3 />
      <Footer1 />
    </>
  );
}

ブロックは完全に編集可能なソースコードであり、ロックされた依存関係ではありません。インストール後に props とコンテンツをカスタマイズしてください。

ランディングページの組み立てパターン

一般的なマーケティング用ランディングページでは、各セクションにインテリジェント選択フローを使用します。よくある組み立て例:

npx shadcn add @shadcnblocks/navbar1      # Simple nav with CTA
npx shadcn add @shadcnblocks/hero125      # Modern centered hero
npx shadcn add @shadcnblocks/logos1        # Trust logos strip
npx shadcn add @shadcnblocks/feature3     # 3-column feature cards
npx shadcn add @shadcnblocks/stats1       # Metrics bar
npx shadcn add @shadcnblocks/testimonial1 # Social proof grid
npx shadcn add @shadcnblocks/pricing3     # 3-tier pricing cards
npx shadcn add @shadcnblocks/faq1         # Accordion FAQ
npx shadcn add @shadcnblocks/cta1         # Final call to action
npx shadcn add @shadcnblocks/footer1      # Multi-column footer

これらはそれぞれ「モダン SaaS」のトーンに合わせて選択されたものです。異なるトーン (エンタープライズ、ミニマル、ボールド、遊び心) では、選択フローが異なるバリアントを推薦します。

API キーの管理

ShadcnBlocks の API キーは複数の方法で指定できます (順に確認されます):

  1. 環境変数 (最も簡単): シェルまたは .env ファイルに SHADCNBLOCKS_API_KEY を設定します
  2. 1Password CLI: ヘルパースクリプトは op read を使用してキーを取得します。OP_SHADCNBLOCKS_REF に 1Password の参照パスを設定するか、デフォルトでは op://Platform Infra/ShadcnBlocks API Key/credential が使用されます

ヘルパースクリプトを使用してキーを取得します:

bash "${CLAUDE_PLUGIN_ROOT}/skills/shadcn-ui/scripts/get-api-key.sh"

セキュリティ: API キーをソースファイルにハードコードしないでください。常に .env で SHADCNBLOCKS_API_KEY を使用し、.env が .gitignore に含まれていることを確認してください。

トラブルシューティング

問題解決方法
インストール時の認証エラー.env に有効なキーで SHADCNBLOCKS_API_KEY が設定されていることを確認してください
レジストリが見つからないcomponents.json に registries キーが存在するか確認してください
components.json が見つからないnpx shadcn@latest init を実行してください
1Password へのアクセスop signin を実行し、op vault list でボルトを確認してください
ブロックが見つからないhttps://shadcnblocks.com でブロック名を確認してください

参照ファイル

  • references/block-index.md — インテリジェントなブロック推薦のための選択プロンプト付きタグ付きピック(主要ソース)
  • references/block-catalog.md — 71 カテゴリ、1,338 ブロックの完全なカタログ。バリアント番号とインストールコマンド付き
  • references/component-catalog.md — 60 以上のグループ、1,189 コンポーネントの完全なカタログ。インストール構文付き
  • references/setup-guide.md — トラブルシューティングを含む詳細なステップバイステップのセットアップ

スクリプト

  • scripts/setup-shadcnblocks.sh — 自動プロジェクトセットアップ(キーの取得、レジストリの設定)
  • scripts/get-api-key.sh — API キーの取得(環境変数または 1Password)

コメント