インストール
パッケージの導入と CSS の読み込み
パッケージのインストール
npm install @ishibashi0112/spreadsheet-gridreact と react-dom の >= 19 が peer dependencies です(アプリ側にインストールされている必要があります)。ランタイム依存の @tanstack/virtual-core(TanStack Virtual のフレームワーク非依存コア)と、グリッド本体のフレームワーク非依存コア @ishibashi0112/spreadsheet-grid-core(v0.39.0 から分離)は自動で入ります。アプリ側で直接 import する必要はありません。
スタイルの読み込み
グリッドの CSS は別ファイルとして同梱されています。アプリのエントリなどで一度だけ import してください。
import '@ishibashi0112/spreadsheet-grid/style.css'ベーススタイルは .ssg-* クラスにスコープされた通常(未レイヤー)の CSS で、デザイントークンは特異度ゼロ(:where(.ssg-root))で定義されています。そのため import 順序に関係なく、利用側の上書きが常に勝ちます。
Tailwind CSS / HeroUI / Mantine / StyleX との共存
-
Tailwind CSS v3(+ HeroUI) — そのまま動きます。Preflight のリセットはクラスセレクタに特異度で負けるため、グリッドを壊せません。
-
Tailwind CSS v4(+ HeroUI) — そのまま動きます。
!修飾子なしで Tailwind ユーティリティにグリッドの既定値を上書きさせたい場合は、グリッド CSS をutilitiesより下のレイヤーに入れます:@import 'tailwindcss'; @import '@ishibashi0112/spreadsheet-grid/style.css' layer(components);あるいはレイヤー済みバリアント
style.layer.css(全体が@layer ssg-base)を使い、レイヤー順を自分で宣言する方法もあります:@layer theme, base, ssg-base, components, utilities; @import 'tailwindcss'; @import '@ishibashi0112/spreadsheet-grid/style.layer.css'; -
Mantine — そのまま動きます(クラス名・リセットの衝突なし。グリッドのポップオーバーは
z-index: 1000で Mantine の既定モーダルより上)。 -
StyleX — そのまま動きます(reset を持たず、生成クラスは接頭辞
xで衝突しません)。classNames/cellClassName/getRowClassNameなどのスロットへstylex.props(...)の戻り値({ className, style })をそのまま渡せます。StyleX の atomic クラスとグリッドの基底クラスは同特異度のため、グリッド CSS を先に・StyleX の出力を後に読み込むか、style.layer.cssを使ってください(StyleX 側でuseLayersを使う場合はstyle.layer.cssが必須)。詳細はテーマとスタイリング。
プレーン CSS でグリッドの既定値を確実に上書きしたい場合は、グリッドのベースクラスに自分のクラスをチェーンして特異度で勝たせます:
.ssg-body-cell.my-warn-cell {
background-color: #fff7ed;
}