Table:HextaUI と shadcn/ui
HextaUI の Table は shadcn/ui の名前とテーマトークンをそのまま使い、同じ CLI でインストールできます。このページでは、両方のソースから読み取った違いをまとめています。shadcn/ui 側は 2026-10-16 時点の base-vega レジストリです。
早見表
| 項目 | HextaUI | shadcn/ui |
|---|---|---|
| エクスポートされるパーツ | 8 | 8 |
| ラッパーが処理する props | 13 | 0 |
| ソースの行数 | 298 | 115 |
| npm の依存関係 | class-variance-authoritycn | cn |
| 構成要素 | theme | – |
ソースが多いこと自体が良いわけではありません。HextaUI の追加の行の多くは、本来なら自分で書くことになる状態、モーション、エッジケースを扱っています。
HextaUI が追加する props
HextaUI のラッパーが自分で処理し、shadcn/ui のラッパーは処理しない props です。Base UI や下位ライブラリにそのまま渡される props は、どちらのバージョンでも使えるため除いています。
| プロパティ | 内容 |
|---|---|
wrapTable | セルのテキストを折り返し、行を上揃えにします。 |
scrollFadeTable | スクロール先にさらにコンテンツがある端をフェードします。列を固定している場合はスキップされます。 |
stickyHeaderTable | ヘッダーを表示したままにします。containerClassName でコンテナーに最大の高さを指定してください。 |
containerClassNameTable | スクロールコンテナー用のクラス。 |
containerRefTable | スクロールコンテナーへの ref。 |
alignTableHead | end は等幅数字にも切り替わり、桁が揃います。 |
pinnedTableHead | テーブルが横にスクロールしても、その列を表示したままにします。ヘッダーとすべてのセルに同じ値を設定してください。 |
pinnedEdgeTableHead | 固定された最後の列の裏にコンテンツが隠れている間、その内側の端に柔らかい影を描画します。 |
alignTableCell | end は等幅数字にも切り替わり、桁が揃います。 |
pinnedTableCell | テーブルが横にスクロールしても、その列を表示したままにします。ヘッダーとすべてのセルに同じ値を設定してください。 |
pinnedEdgeTableCell | 固定された最後の列の裏にコンテンツが隠れている間、その内側の端に柔らかい影を描画します。 |
バリアント
| プロパティ | 両方にある | HextaUI のみ | shadcn/ui のみ |
|---|---|---|---|
variantTable | – | defaultsurface | – |
sizeTable | – | smdefault | – |
HextaUI 版
| Invoice | Client | Status | Amount |
|---|---|---|---|
| INV-0418 | Northwind | $2,400.00 | |
| INV-0419 | Globex | $860.00 | |
| INV-0420 | Initech | $1,320.50 | |
| INV-0421 | Umbrella | $415.00 | |
| Total | $4,995.50 | ||
すべての状態、キーボード操作、API リファレンスはコンポーネントのページにあります。
このうち 7 個の例には専用のページもあります。
コンポーネントを 1 つ切り替える
add コマンドを --overwrite 付きで実行して @/components/ui の shadcn/ui のファイルを置き換え、残す前に git で差分を確認してください。import はそのままで、置き換えないコンポーネントもそのまま動きます。
pnpm dlx shadcn@latest add https://hextaui.com/r/table.json --overwrite- 上の表の props はすべて追加分なので、shadcn/ui 向けに書いた呼び出しではまだ渡されていません。
- 切り替える前に、shadcn/ui にだけあるパーツやバリアントを確認し、最も近い HextaUI のものに置き換えてください。