125k

Changelog

RSS

Latest updates and announcements.

2026 年 9 月 - cn

すべての shadcn コンポーネントは、cn パッケージから cn をインポートするようになりました。

何年もの間、すべての shadcn プロジェクトは lib/utils.ts の同じ 5 行から始まっていました。clsx をインポートし、twMerge をインポートし、一方をもう一方でラップして cn としてエクスポートする、というものです。それでも動作はしましたが、2 つの依存関係とヘルパー関数を、すべてのプロジェクトとレジストリにコピーする必要があるということでもありました。

そこでこれをパッケージに切り出しました。cn は twMerge(clsx(...)) のドロップイン代替品です。より小さく、より高速で、同じ API のまま提供されるため、呼び出し側のコードは何も変更する必要がありません。

import { cn } from "cn"
 
;<div className={cn("flex items-center", className)} />

何が変わったのか

  • レジストリ コンポーネント、ブロック、例では、@/lib/utils の代わりに cn パッケージから cn をインポートするようになりました。
  • npx shadcn init は、cn をインストールし、一行の lib/utils.ts を生成します。
  • cn を使用するすべてのレジストリ アイテムは、これを依存関係として宣言しています。この変更より前に作成されたプロジェクトでも、npx shadcn add を実行すればインストールされます。

lib/utils.ts

utils レジストリ アイテムは今も存在します。これからは cn を再エクスポートするだけになるので、独自のコードはそのまま動作し続け、プロジェクト固有のヘルパーを置く場所も 1 か所にまとまります。

lib/utils.ts
export { cn } from "cn"

既存のプロジェクト

何も壊れません。lib/utils.ts はそのまま動作し続け、新しくインストールするコンポーネントはその隣に cn をインストールします。プロジェクトの残りの部分も移行したい場合は、clsx と tailwind-merge を削除して、マイグレーションを実行してください。

pnpm dlx shadcn@latest migrate cn

インポートを書き換え、twMerge(clsx(...)) の呼び出しを置き換え、古いパッケージを参照するコードがなくなれば、それらのパッケージも削除します。詳細については、CLI ドキュメント を参照してください。

2026 年 8 月 - プライベート GitHub レジストリ

GitHub レジストリがプライベート リポジトリで動作するようになりました。

6 月に、あらゆるパブリック GitHub リポジトリをレジストリに変換できる機能を提供しました。チームからは、公開すべきではないデザインシステムや機能キット、エージェントのルールや規約といった内部コードについても、同じことができるようにしてほしいという要望がありました。

プライベート リポジトリからインストールできるようになりました。リポジトリを読み取れる場合は、 CLI はそこからインストールできます。

pnpm dlx shadcn@latest add acme/internal-toolkit/auth-kit

ゼロ構成

GitHub CLI にログインしている場合は、何も設定する必要はありません。

gh auth login

リポジトリが公開されていない場合、CLI は gh に保存されている認証情報を使ってリポジトリを読み取ります。トークンは GitHub CLI の内部にとどまり、shadcn のプロセスに渡ることは一切ありません。

✔ Using gh credentials.
✔ Checking registry.
✔ Created 1 file:
  - lib/auth.ts

CI サポート

GitHub CLI がインストールされていない場合は、GH_TOKEN または GITHUB_TOKEN を設定します。

GH_TOKEN=github_pat_xxx npx shadcn@latest add acme/internal-toolkit/auth-kit

コンテンツ: 読み取り専用 アクセス権を持つ、リポジトリにスコープされたきめ細かい個人アクセス トークンの使用をお勧めします。

すべてのコマンドで動作します

プライベート リポジトリは、パブリック GitHub レジストリと同じコマンドで動作します。

pnpm dlx shadcn@latest list acme/internal-toolkit
pnpm dlx shadcn@latest search acme/internal-toolkit --query auth
pnpm dlx shadcn@latest view acme/internal-toolkit/auth-kit
pnpm dlx shadcn@latest registry validate acme/internal-toolkit

仕組み

  • パブリック リポジトリは、以前とまったく同じように匿名で読み取られます。認証情報は一切使用されず、GitHub CLI が呼び出されることもありません。
  • CLI はまず匿名アクセスを試み、リポジトリが公開されていない場合にのみ認証情報を使用します。
  • プライベート ファイルは GitHub のコンテンツ API を通じて読み取られ、解決されたコミット SHA に固定されます。
  • GH_TOKEN からのトークンは、api.github.com にのみ送信されます。保存された GitHub CLI の認証情報は、shadcn の CLI ではなく gh 自身によって読み取られます。

完全なガイドについては、プライベート リポジトリ のドキュメントを参照してください。

2026 年 8 月 - Human-in-the-Loop

@shadcn/helpers は、AI SDK の human-in-the-loop(人間参加型)フローをモックできるようになりました。スクリプト化された会話を、実際のユーザー入力を待って一時停止させたり、承認を待たせたりした上で、ユーザーが決定した内容に応じてそのまま続行させることができます。

すべてが本物の useChat ライフサイクルを流れるため、ツール カード、承認プロンプト、質問フローは、本番環境とまったく同じように動作します。

import { createChat } from "@shadcn/helpers/ai-sdk"
 
const chat = createChat<ChatMessage>()
  .user("Help me plan the next prototype.")
  .assistant(({ writer }) => {
    writer.text("A couple of questions before I start.")
    writer.tool("askQuestions", { input: { questions } })
  })
  .assistant(({ writer, toolCall }) => {
    writer.text(
      toolCall?.name === "askQuestions" && toolCall.output
        ? `Starting with ${toolCall.output.answers.direction}.`
        : "Starting now."
    )
  })

ユーザーの判断を待って一時停止させるには needsApproval を渡します。スクリプト化された出力は承認後にストリーミングされ、拒否された場合は自動的にストリーミングされます。

chat
  .assistant(({ writer }) => {
    writer.text("That will archive 3 drafts. I need your approval.")
    writer.tool("archiveDrafts", {
      input: { count: 3 },
      needsApproval: true,
      output: { archived: 3 },
    })
  })
  .assistant(({ writer, toolCall }) => {
    writer.text(
      toolCall?.approved ? "Archived 3 drafts." : "Okay, leaving them in place."
    )
  })

2026 年 8 月 - アンケート

本日、マルチステップの質問フロー用の新しいコンポーネント Questionnaire をリリースしました。エージェントの確認プロンプトやオンボーディング、アンケート、受付フォーム、設定などに使用できます。

アンケートは、Base UI、React Aria、Radix の全 8 スタイルで利用できます。

Question 1 of 3
エージェントが次に取り組むべきことは何ですか?

方向性を選択するか、別のタスクを記述してください。

"use client"

import * as React from "react"

特徴

  • ネイティブなラジオボタンとチェックボックスによる単一選択および複数選択。
  • 固定の選択肢と自由形式の回答。
  • 任意の質問を明示的にスキップする機能。
  • 前へ、次へ、送信、およびカスタム進行状況コントロール。
  • 必須項目とカスタム検証。
  • 制御されたナビゲーション、保存されたデフォルト、および条件付きの質問。
  • オプションの文字または数字のショートカットを使用したキーボード ナビゲーション。
  • ネイティブ フォームのシリアル化とサーバーでレンダリングされたコレクション状態。
  • スタンドアロン、カード、ダイアログの構成。

インストール

pnpm dlx shadcn@latest add questionnaire

@shadcn/react

<Questionnaire /> コンポーネントは、@shadcn/react のスタイルなしのヘッドレス プリミティブとしても使用できます。詳細については、ドキュメントをお読みください。

2026 年 7 月 - 動的検索

レジストリはサーバー側で検索を処理できるようになりました。

shadcn search を実行すると、CLI は検索パラメータをクエリ パラメータとしてレジストリに送信します。

GET /r/registry.json?q=button&limit=50&offset=0

レジストリは、一致するアイテムを pagination オブジェクトとともに返します。CLI はその結果をそのまま表示します。これにより、大規模なレジストリでの検索が高速化され、検索のためにカタログ全体をダウンロードする必要もなくなります。

registry.json?q=button&limit=1
{
  "name": "acme",
  "homepage": "https://acme.com",
  "items": [
    {
      "name": "button",
      "type": "registry:ui",
      "description": "A button component."
    }
  ],
  "pagination": {
    "total": 12,
    "offset": 0,
    "limit": 1,
    "hasMore": true
  }
}

動的検索はオプトインです。静的レジストリはクエリ パラメータを無視し、何も変更しなくてもそのまま動作し続けます。

詳細については、動的検索 ドキュメントを参照してください。

More Updates

2026 年 7 月Toast2026 年 7 月React Aria2026 年 7 月@shadcn/helpers の紹介2026 年 7 月shadcn/typeset の紹介2026 年 7 月デフォルトとしての Base UI2026 年 6 月チャット インターフェイスのコンポーネント2026 年 6 月GitHub レジストリ2026 年 5 月shadcn eject2026 年 5 月Rhea の紹介2026 年 5 月レジストリの組み込みと検証2026 年 5 月パッケージのインポートとターゲット エイリアス2026 年 4 月shadcn プリセット2026 年 4 月ポインター カーソル2026 年 4 月部分的なプリセットの適用2026 年 4 月Sera のご紹介2026 年 4 月shadcn apply2026 年 4 月コンポーネント構成2026 年 3 月Luma の紹介2026 年 3 月shadcn/cli v42026 年 2 月Radix UI と Base UI のブロック2026 年 2 月Unified Radix UI パッケージ2026 年 1 月RTL サポート2026 年 1 月インラインの開始スタイルと終了スタイル2026 年 1 月Base UI ドキュメント2025 年 12 月npx shadcn create2025 年 10 月レジストリ ディレクトリ2025 年 10 月新しいコンポーネント2025 年 9 月レジストリ インデックス2025 年 8 月shadcn CLI 3.0 と MCP サーバー2025年7月ユニバーサルレジストリアイテム2025年7月ローカルファイルのサポート2025 年 6 月radix-ui の移行2025年6月カレンダーコンポーネント2025年5月新しいサイト2025年4月MCP2025年4月shadcn 2.5.02025年4月クロスフレームワークルートのサポート2025年2月Tailwind v42025年2月レジストリスキーマの更新2025年1月ブロックコミュニティ2024年12月モノレポサポート2024年11月アイコン2024年10月React 192024年10月サイドバー2024年8月npx shadcn init2024年4月リフトモード2024年3月ブロックの紹介2024年3月ブレッドクラムと入力 OTP2023年12月新しいコンポーネント2023年7月JavaScript2023 年 6 月新しい CLI、スタイルなど