Heroui React
Published by nisshi-dev in nisshi-dev-survey
What this skill does
HeroUI v3 React コンポーネントライブラリ(Tailwind CSS v4 + React Aria)。HeroUI コンポーネントの利用、インストール、テーマカスタマイズ、コンポーネントドキュメント参照時に使用。キーワード: HeroUI, Hero UI, heroui, @heroui/react, @heroui/styles。
Add Heroui React to your agent
Review the source and files first. When you are ready, copy the prompt instruction or use the CLI command supported by your environment.
Install with a prompt
Paste this into a compatible coding agent:
add this skill "heroui-react" from https://github.com/nisshi-dev/nisshi-dev-surveyInstall with the CLI
Run this command in a controlled environment after reviewing the repository:
npx skills add https://github.com/nisshi-dev/nisshi-dev-survey --skill heroui-reactSkill instructions
HeroUI v3 React 開発ガイド
HeroUI v3 は Tailwind CSS v4 と React Aria Components をベースに構築されたコンポーネントライブラリで、アクセシブルかつカスタマイズ可能な React 向け UI コンポーネントを提供する。
重要: v3 専用 - v2 の知識は使用しないこと
このガイドは HeroUI v3 専用。 HeroUI v2 の既存知識は一切使用しないこと。
v3 での変更点
| 機能 | v2(使用禁止) | v3(こちらを使用) |
|---|---|---|
| Provider | <HeroUIProvider> が必須 | Provider 不要 |
| アニメーション | framer-motion パッケージ | CSS ベース、追加依存なし |
| コンポーネント API | フラット props: <Card title="x"> | 複合: <Card><Card.Header> |
| スタイリング | Tailwind v3 + @heroui/theme | Tailwind v4 + @heroui/styles@beta |
| パッケージ | @heroui/system, @heroui/theme | @heroui/react@beta, @heroui/styles@beta |
誤り(v2 パターン)
// これはやらないこと - v2 パターン
import { HeroUIProvider } from "@heroui/react";
import { motion } from "framer-motion";
<HeroUIProvider>
<Card title="Product" description="A great product" />
</HeroUIProvider>;
正解(v3 パターン)
// こちらを使用 - v3 パターン(Provider 不要、複合コンポーネント)
import { Card } from "@heroui/react@beta";
<Card>
<Card.Header>
<Card.Title>Product</Card.Title>
<Card.Description>A great product</Card.Description>
</Card.Header>
</Card>;
実装前に必ず v3 ドキュメントを取得すること。 v2 パターンが動作すると仮定しないこと。
基本原則
- 見た目の記述よりセマンティックバリアント(
primary,secondary,tertiary)を優先 - 設定より合成(複合コンポーネント)
oklch色空間による CSS 変数ベースのテーマシステム- 予測可能なスタイリングのための BEM 命名規則
ドキュメント・コンポーネント情報へのアクセス
コンポーネントの詳細、使用例、props、実装パターンについては、必ずドキュメントを取得すること:
スクリプトの使用
# 利用可能な全コンポーネントの一覧
node scripts/list_components.mjs
# コンポーネントドキュメント(MDX)の取得
node scripts/get_component_docs.mjs Button
node scripts/get_component_docs.mjs Button Card TextField
# コンポーネントのソースコード取得
node scripts/get_source.mjs Button
# コンポーネントの CSS スタイル(BEM クラス)取得
node scripts/get_styles.mjs Button
# テーマ変数の取得
node scripts/get_theme.mjs
# コンポーネント以外のドキュメント(ガイド、リリースノート)取得
node scripts/get_docs.mjs /docs/react/getting-started/theming
MDX の直接 URL
コンポーネントドキュメント: https://v3.heroui.com/docs/react/components/{component-name}.mdx
例:
- Button:
https://v3.heroui.com/docs/react/components/button.mdx - Modal:
https://v3.heroui.com/docs/react/components/modal.mdx - Form:
https://v3.heroui.com/docs/react/components/form.mdx
入門ガイド: https://v3.heroui.com/docs/react/getting-started/{topic}.mdx
重要: 実装前に必ずコンポーネントドキュメントを取得すること。MDX ドキュメントには完全な使用例、props、構造、API リファレンスが含まれている。
インストール要点
重要: HeroUI v3 は現在 BETA 版。パッケージインストール時は必ず @beta タグを使用すること。
クイックインストール
npm i @heroui/styles@beta @heroui/react@beta tailwind-variants
フレームワークセットアップ(Next.js App Router - 推奨)
- 依存パッケージのインストール:
npm i @heroui/styles@beta @heroui/react@beta tailwind-variants tailwindcss @tailwindcss/postcss postcss
app/globals.cssの作成/更新:
/* Tailwind CSS v4 - 最初に記述すること */
@import "tailwindcss";
/* HeroUI v3 スタイル - Tailwind の後に記述すること */
@import "@heroui/styles";
app/layout.tsxでのインポート:
import "./globals.css";
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="ja" suppressHydrationWarning>
<body>
{/* HeroUI v3 では Provider 不要! */}
{children}
</body>
</html>
);
}
- PostCSS の設定(
postcss.config.mjs):
export default {
plugins: {
"@tailwindcss/postcss": {},
},
};
セットアップの重要要件
- Tailwind CSS v4 は必須 - HeroUI v3 は Tailwind CSS v3 では動作しない
- Provider 不要 - HeroUI v2 と異なり、v3 コンポーネントは Provider なしで直接動作する
- 複合コンポーネントを使用 - コンポーネントは複合構造を使用する(例:
Card.Header,Card.Content) - onClick ではなく onPress を使用 - アクセシビリティ向上のため、
onPressイベントハンドラを使用する - インポート順序が重要 - 必ず Tailwind CSS を HeroUI スタイルより先にインポートする
コンポーネントパターン
HeroUI v3 は複合コンポーネントパターンを採用。各コンポーネントはドット記法でアクセスするサブコンポーネントを持つ。
例 - Card:
<Card>
<Card.Header>
<Card.Title>タイトル</Card.Title>
<Card.Description>説明文</Card.Description>
</Card.Header>
<Card.Content>{/* コンテンツ */}</Card.Content>
<Card.Footer>{/* アクション */}</Card.Footer>
</Card>
要点:
- 必ず複合構造を使用する - props にフラット化しないこと
- サブコンポーネントはドット記法でアクセスする(例:
Card.Header) - 各サブコンポーネントは独自の props を持つ場合がある
- 完全な構造と使用例についてはコンポーネントドキュメントを取得すること
セマンティックバリアント
HeroUI は機能的な意図を伝えるためにセマンティックな命名を使用する:
| バリアント | 目的 | 使用頻度 |
|---|---|---|
primary | 前に進むためのメインアクション | 1 コンテキストに 1 つ |
secondary | 代替アクション | 複数可 |
tertiary | 却下アクション(キャンセル、スキップ) | 控えめに |
danger | 破壊的アクション | 必要時のみ |
ghost | 低強調アクション | 最小限の重み |
outline | 補助的アクション | ボーダースタイル |
生のカラー値は使用しないこと - セマンティックバリアントはテーマやアクセシビリティに適応する。
テーマシステム
HeroUI v3 は oklch 色空間の CSS 変数を使用する:
:root {
--accent: oklch(0.6204 0.195 253.83);
--accent-foreground: var(--snow);
--background: oklch(0.9702 0 0);
--foreground: var(--eclipse);
}
現在のテーマ変数を取得:
node scripts/get_theme.mjs
カラー命名規則:
- サフィックスなし = 背景色(例:
--accent) -foreground付き = テキスト色(例:--accent-foreground)
テーマ切り替え:
<html class="dark" data-theme="dark"></html>
テーマの詳細については: https://v3.heroui.com/docs/react/getting-started/theming.mdx を取得すること
Files included
- LICENSE.txt
- scripts/get_component_docs.mjs
- scripts/get_docs.mjs
- scripts/get_source.mjs
- scripts/get_styles.mjs
- scripts/get_theme.mjs
- scripts/list_components.mjs
- SKILL.md

