Docs resource

依存関係

GunjoUI の peer dependency、対応済みの組み合わせ、採用先で注意する依存関係の契約です。

GunjoUI の peer dependency 範囲、テスト済み組み合わせ、内部依存の方針。

peer dependencies(採用先が用意するもの)

package.jsonpeerDependencies

{
  "react": "^19.0.0",
  "react-dom": "^19.0.0",
  "tailwindcss": "^3.0.0 || ^4.0.0"
}

採用先は 同じ React と React DOM のバージョンを持つこと(mismatch は React 内部で警告)。

React 18 サポートについて:当初は ^18 || ^19 で peer 宣言していたが、内部で React 19 専用 API を採用したため ^19 のみに縮小済。npm 未公開期間中の調整として、初回 publish 0.0.1-alpha.0 の Removed 欄で正式記載(CHANGELOG.md)。

テスト済み組み合わせ

GunjoUI verReactReact DOMTailwindNext.js状態
1.0.019.x19.x4.x16.x✅ 本リポジトリ docs サイトで稼働確認
1.0.019.x19.x3.x15.x⚠️ 未検証
1.0.019.x19.x4.x15.x⚠️ 未検証

Phase D(採用ドライラン)まで未検証マスは確認待ち。 採用先で動かない組み合わせを発見したら issue を立てる。React 18 系の検証行は peer 縮小に伴い削除済。

内部 dependencies(採用先には届かない)

GunjoUI 自身が依存するライブラリ。採用先側で重複インストールされないよう、可能なものは peer に上げているが、以下は内部依存として bundling 対象:

  • @radix-ui/*(モーダル、ドロップダウン等のヘッドレスプリミティブ)
  • class-variance-authority(variant 管理)
  • clsxtailwind-merge(class 結合)
  • lucide-react(アイコン)

これらは採用先の dependency ツリーから見ると @gunjo/ui の transitive deps として現れる。採用先が npm dedupe を流せば共通バージョンに揃う想定。

Radix UI のバージョン

GunjoUI 内部で Radix UI を多用している。ヘッドレス UI を別プロバイダーに差し替える設計はしていない。Radix 側の major bump があった場合、GunjoUI も追随して MAJOR バンプする可能性が高い(採用先には透過)。

Tailwind CSS のバージョン分岐

  • v3:tailwind-preset.jstailwind.config.tspresets に追加
  • v4:tailwind-theme-extend.cjs を CSS の @theme ベース取り込み

GunjoUI の export @gunjo/ui/tailwind-presetv3 形式 を返す。v4 利用時は別途 tailwind-theme-extend.cjs を読む必要がある。詳細は adoption.md 参照。

CSS の前提

GunjoUI は以下の CSS variables を @gunjo/ui/styles で定義する:

  • 色系:--background, --foreground, --primary, --secondary, --muted, --accent, --destructive, --border, --input, --ring, --card, --popover, など
  • spacing / radius:--radius
  • chart palette:--chart-1--chart-5

採用先で同名の variable を独自定義していると衝突するため、GunjoUI を入れた後は採用先側の token 定義を整理する(migration-playbook.md 参照)。

TypeScript の前提

  • TypeScript 5.0 以上推奨
  • tsconfig.jsonmoduleResolutionbundler または nodeNext であること
  • 厳密モード(strict: true)でも動く

GunjoUI 自身は tsc --noEmit --incremental false で型チェック緑。採用先側で型エラーが出る場合、tsconfig.json の compatibility(jsx, target, lib)を確認する。

Node.js の前提

開発時:Node.js 20 以上(Pencil / Puppeteer 関連スクリプトの要件)。 採用先:採用先が使う Node が npm install 可能な範囲(特に縛りなし)。

Browser support

採用先プロジェクトの判断に任せる。GunjoUI 自身は modern evergreen(Chrome / Edge / Firefox / Safari の latest 2 versions)想定。IE 対応は しない

関連