Command:HextaUI と shadcn/ui
HextaUI の Command は shadcn/ui の名前とテーマトークンをそのまま使い、同じ CLI でインストールできます。このページでは、両方のソースから読み取った違いをまとめています。shadcn/ui 側は 2026-10-16 時点の base-vega レジストリです。
早見表
| 項目 | HextaUI | shadcn/ui |
|---|---|---|
| エクスポートされるパーツ | 12 | 9 |
| ラッパーが処理する props | 33 | 3 |
| ソースの行数 | 1179 | 210 |
| npm の依存関係 | @base-ui/react@^1.8.0@tabler/icons-reactcmdk@^1.1.1cn | cmdkcn |
| 構成要素 | buttonhotkeymotionspinnertheme | dialoginput-group |
ソースが多いこと自体が良いわけではありません。HextaUI の追加の行の多くは、本来なら自分で書くことになる状態、モーション、エッジケースを扱っています。
パーツ
HextaUI だけCommandPageCommandLoadingCommandFooter
両方にあるCommandCommandInputCommandListCommandEmptyCommandGroupCommandSeparatorCommandItemCommandShortcutCommandDialog
HextaUI が追加する props
HextaUI のラッパーが自分で処理し、shadcn/ui のラッパーは処理しない props です。Base UI や下位ライブラリにそのまま渡される props は、どちらのバージョンでも使えるため除いています。
| プロパティ | 内容 |
|---|---|
formatResultsCommand | 入力後にスクリーンリーダーへ通知されるテキスト。 |
highlightCommand | 各項目の一致した文字をハイライトし、残りを暗くします。 |
rootTitleCommand | 最後のページを離れてルートに戻ったときに通知されます。 |
clearLabelCommandInput | クリアボタンのアクセシブルな名前。 |
backLabelCommandInput | ページチップのアクセシブルな名前。 |
minDurationCommandLoading | 一度表示されたスピナーが最低限とどまる時間(ミリ秒)。 |
shortcutCommandItem | "mod+shift+c" のようなホットキー。項目に表示され、フォーカスがメニュー内にある間、その項目を実行します。 |
pageCommandItem | 実行する代わりに、この id を持つ CommandPage を開きます。 |
pageTitleCommandItem | ページチップに表示されるタイトル。デフォルトは value です。 |
confirmCommandItem | 選択が伝わるよう、実行する前に項目を短く点滅させます。 |
hotkeyCommandShortcut | "mod+k" のようなホットキーを、現在のプラットフォーム向けに整形します。children で上書きできます。 |
preserveSearchCommandDialog | ダイアログをマウントしたままにするため、閉じてもクエリ、ページ、選択が維持されます。再び開くと、クエリが選択された状態になります。 |
HextaUI 版
すべての状態、キーボード操作、API リファレンスはコンポーネントのページにあります。
このうち 7 個の例には専用のページもあります。
コンポーネントを 1 つ切り替える
add コマンドを --overwrite 付きで実行して @/components/ui の shadcn/ui のファイルを置き換え、残す前に git で差分を確認してください。import はそのままで、置き換えないコンポーネントもそのまま動きます。
pnpm dlx shadcn@latest add https://hextaui.com/r/command.json --overwrite- 上の表の props はすべて追加分なので、shadcn/ui 向けに書いた呼び出しではまだ渡されていません。
- 切り替える前に、shadcn/ui にだけあるパーツやバリアントを確認し、最も近い HextaUI のものに置き換えてください。