heroui-native
HeroUI NativeはReact Native向けのUIコンポーネントライブラリ(Uniwind経由のTailwind v4対応)です。Button・Card・TextField・Dialogなどのモバイルコンポーネントの作成、heroui-nativeのインストールやダーク/ライトテーマの設定、コンポーネントドキュメントの参照が必要な際に使用してください。
description の原文を見る
HeroUI Native component library for React Native (Tailwind v4 via Uniwind). Use when building mobile UIs with HeroUI Native — creating Buttons, Cards, TextFields, Dialogs; installing heroui-native; configuring dark/light themes; or fetching component docs. Keywords: HeroUI Native, heroui-native, React Native UI, Uniwind, mobile components.
SKILL.md 本文
HeroUI Native 開発ガイド
HeroUI Native は Uniwind (React Native 向け Tailwind CSS) と React Native に基づいて構築されたコンポーネントライブラリであり、モバイルアプリケーション向けにアクセシブルでカスタマイズ可能な UI コンポーネントを提供します。
インストール
curl -fsSL https://heroui.com/install | bash -s heroui-native
重要: ネイティブのみ - Web パターンを使用しないでください
このガイドは HeroUI Native のみ対象です。 HeroUI React (Web) のパターンを適用しないでください — パッケージ、スタイリングエンジン、カラーフォーマットはすべて異なります:
| 機能 | React (Web) | Native (Mobile) |
|---|---|---|
| スタイリング | Tailwind CSS v4 | Uniwind (React Native 向け Tailwind) |
| カラー | oklch フォーマット | HSL フォーマット |
| パッケージ | @heroui/react | heroui-native |
| プラットフォーム | Web ブラウザ | iOS & Android |
// 正しい — ネイティブパターン
import { Button } from "heroui-native";
<Button variant="primary" onPress={() => console.log("Pressed!")}>
Click me
</Button>;
実装する前に、必ずネイティブドキュメントを取得してください。
コア原則
- 視覚的説明よりもセマンティックバリアント (
primary,secondary,tertiary) - 設定よりも構成 (複合コンポーネント)
- HSL カラーフォーマットを持つテーマ変数
- Uniwind ユーティリティを使用した React Native StyleSheet パターン
ドキュメントとコンポーネント情報へのアクセス
コンポーネントの詳細、例、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_theme.mjs
# 非コンポーネントドキュメント (ガイド、リリース) を取得
node scripts/get_docs.mjs /docs/native/getting-started/theming
直接 MDX URLs
コンポーネントドキュメント: https://heroui.com/docs/native/components/{component-name}.mdx
例:
- Button:
https://heroui.com/docs/native/components/button.mdx - Dialog:
https://heroui.com/docs/native/components/dialog.mdx - TextField:
https://heroui.com/docs/native/components/text-field.mdx
ゲットスタートガイド: https://heroui.com/docs/native/getting-started/{topic}.mdx
重要: 実装する前に、必ずコンポーネントドキュメントを取得してください。MDX ドキュメントには完全な例、Props、構造、API リファレンスが含まれています。
インストール必須項目
クイックインストール
npm i heroui-native react-native-reanimated react-native-gesture-handler react-native-safe-area-context @gorhom/bottom-sheet react-native-svg react-native-worklets tailwind-merge tailwind-variants
フレームワークセットアップ (Expo - 推奨)
- 依存関係をインストール:
npx create-expo-app MyApp
cd MyApp
npm i heroui-native uniwind tailwindcss
npm i react-native-reanimated react-native-gesture-handler react-native-safe-area-context @gorhom/bottom-sheet react-native-svg react-native-worklets tailwind-merge tailwind-variants
global.cssを作成:
@import "tailwindcss";
@import "uniwind";
@import "heroui-native/styles";
@source "./node_modules/heroui-native/lib";
- プロバイダーでアプリをラップ:
import { GestureHandlerRootView } from "react-native-gesture-handler";
import { HeroUINativeProvider } from "heroui-native";
import "./global.css";
export default function Layout() {
return (
<GestureHandlerRootView style={{ flex: 1 }}>
<HeroUINativeProvider>
<App />
</HeroUINativeProvider>
</GestureHandlerRootView>
);
}
重要なセットアップ要件
- Uniwind は必須 - HeroUI Native は Uniwind (React Native 向け Tailwind CSS) を使用します
- HeroUINativeProvider は必須 -
HeroUINativeProviderでアプリをラップしてください - GestureHandlerRootView は必須 - react-native-gesture-handler からの
GestureHandlerRootViewでラップしてください - 複合コンポーネントを使用 - コンポーネントは複合構造を使用します (例:
Card.Header,Card.Body) - onPress を使用 (onClick ではなく) - React Native は
onPressイベントハンドラーを使用します - プラットフォーム固有コード - iOS/Android の違いには
Platform.OSを使用します
コンポーネントパターン
HeroUI Native は 複合コンポーネントパターン を使用します。各コンポーネントには、ドット記法でアクセスされるサブコンポーネントがあります。
例 - Card:
<Card>
<Card.Header>{/* Icons, badges */}</Card.Header>
<Card.Body>
<Card.Title>Title</Card.Title>
<Card.Description>Description</Card.Description>
</Card.Body>
<Card.Footer>{/* Actions */}</Card.Footer>
</Card>
重要なポイント:
- 常に複合構造を使用してください — Props に平坦化しないでください
- サブコンポーネントはドット記法でアクセスします (例:
Card.Header) - ネイティブ Card は
Card.Bodyを使用します (Card.Contentではなく); Title と Description は Body の内部に配置します - 完全な構造と例については、コンポーネントドキュメントを取得してください
セマンティックバリアント
HeroUI はセマンティック命名を使用して、機能的意図を伝えます:
| バリアント | 目的 | 用途 |
|---|---|---|
primary | 前進するメインアクション | コンテキストごとに 1 つ |
secondary | 代替アクション | 複数 |
tertiary | 却下アクション (キャンセル、スキップ) | まばらに |
danger | 破壊的アクション | 必要に応じて |
danger-soft | ソフト破壊的アクション | 目立たない |
ghost | 低強調アクション | 最小限の重み |
outline | セカンダリアクション | ボーダースタイル |
生のカラーを使用しないでください — セマンティックバリアントはテーマとアクセシビリティに対応します。
テーミング
HeroUI Native は Tailwind/Uniwind 経由の CSS 変数を使用してテーミングを行います。テーマカラーは global.css で定義されます:
@theme {
--color-accent: hsl(260, 100%, 70%);
--color-accent-foreground: hsl(0, 0%, 100%);
}
現在のテーマ変数を取得:
node scripts/get_theme.mjs
テーマカラーをプログラムでアクセス:
import { useThemeColor } from "heroui-native";
const accentColor = useThemeColor("accent");
テーマ切り替え (ライト/ダークモード):
import { Uniwind, useUniwind } from "uniwind";
const { theme } = useUniwind();
Uniwind.setTheme(theme === "light" ? "dark" : "light");
詳細なテーミングについては、以下を取得してください: https://heroui.com/docs/native/getting-started/theming.mdx
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- heroui-inc
- リポジトリ
- heroui-inc/heroui
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/heroui-inc/heroui / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。