rsuite について
rsuite は、React Suite v6+ のコンポーネント、スタイル、テーマ、アクセシビリティ、国際化の規約に沿った UI 構築を AI アシスタントに案内するスキルです。コンポーネントやフックの最新情報を取得するスクリプトと MCP サーバーについても説明します。
主な機能
- 01React Suite v6+ の利用ガイド
- 02コンポーネントとフォームの使用例
- 03CSS 変数によるテーマ設定
- 04アクセシビリティと国際化の規約
- 05コンポーネントとフック情報の取得スクリプト
活用シーン
- 01rsuite を使うプロジェクトで UI を構築
- 02バリデーション付きフォームの作成
- 03コンポーネントの props やフックを調査
MCP 対応
README では @rsuite/mcp を、get_component_props、list_components、list_hooks、search_components を提供する MCP サーバーとして紹介しています。これらのツールでコンポーネントとフックの参照情報を取得できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rsuite/ rsuite --skill rsuiteインストール後、Claude Code で/rsuiteを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdscripts/get_component_props.mjslist_components.mjslist_hooks.mjssearch_components.mjs詳細
React Suite スキル
このスキルは、AI アシスタントがReact Suite v6+でユーザーインターフェースを構築するのに役立ちます。有効にすると、アシスタントはコンポーネント、スタイリング、テーマ設定、アクセシビリティ、国際化に関する React Suite の規約に従います。
このスキルを使用するタイミング
プロジェクトが rsuite に依存している場合(package.json を確認してください)、またはユーザーから React Suite を使った UI の構築を依頼された場合は、このスキルを有効にしてください。
インストール
対象プロジェクトに React Suite をインストールします。
npm install rsuite
アプリケーションのエントリーポイントで、スタイルシートを一度だけインポートします。
import 'rsuite/dist/rsuite.min.css';
コンポーネント単位でインポートする場合(バンドルサイズの縮小に推奨):
import Button from 'rsuite/Button';
import 'rsuite/Button/styles/index.css';
基本原則
- カスタムコンポーネントより組み込みコンポーネントを優先してください。 React Suite には80以上のコンポーネントが用意されています。ゼロから構築する前に、利用できるコンポーネントがないか確認してください。
asとrender*プロパティでコンポーネントを組み合わせてください。 ほとんどのコンポーネントは、描画する要素を変更するasと、サブパーツを上書きするrenderXプロパティを受け付けます。- グローバル設定(ロケール、テーマ、RTL、
classPrefix)にはCustomProviderを使用してください。 - テーマ設定には CSS 変数(
--rs-*)を使用し、クラス名は上書きしないでください。 - 独自に用意した SVG ではなく、アイコンには
@rsuite/iconsを使用してください。 - フォームは
rsuiteのForm、Form.Group、Form.Control、Schemaで処理してください。 - アクセシビリティを確保してください。 入力には必ずラベルを設定し、カスタムトリガーには
aria-*属性を、インタラクティブ要素にはキーボードハンドラーを指定してください。
一般的なパターン
グローバルプロバイダー
import { CustomProvider } from 'rsuite';
import zhCN from 'rsuite/locales/zh_CN';
<CustomProvider theme="dark" locale={zhCN}>
<App />
</CustomProvider>;
ボタン
import { Button } from 'rsuite';
<Button appearance="primary" size="md" onClick={handleClick}>
Submit
</Button>;
有効な appearance の値:default | primary | link | subtle | ghost。
有効な size の値:xs | sm | md | lg。
有効な color の値:red | orange | yellow | green | cyan | blue | violet。
バリデーション付きフォーム
import { Form, Schema, Button } from 'rsuite';
const model = Schema.Model({
name: Schema.Types.StringType().isRequired('Name is required.'),
email: Schema.Types.StringType().isEmail('Invalid email.')
});
<Form model={model} onSubmit={handleSubmit}>
<Form.Group controlId="name">
<Form.ControlLabel>Name</Form.ControlLabel>
<Form.Control name="name" />
</Form.Group>
<Form.Group controlId="email">
<Form.ControlLabel>Email</Form.ControlLabel>
<Form.Control name="email" type="email" />
</Form.Group>
<Button type="submit" appearance="primary">Save</Button>
</Form>;
テーブル
import { Table } from 'rsuite';
const { Column, HeaderCell, Cell } = Table;
<Table data={data} autoHeight>
<Column flexGrow={1}>
<HeaderCell>Name</HeaderCell>
<Cell dataKey="name" />
</Column>
<Column width={120}>
<HeaderCell>Age</HeaderCell>
<Cell dataKey="age" />
</Column>
</Table>;
メッセージとトースター
import { useToaster, Message } from 'rsuite';
const toaster = useToaster();
toaster.push(<Message type="success">Saved.</Message>, { placement: 'topCenter' });
テーマ設定
React Suite は --rs- を接頭辞とする CSS 変数を公開しています。ルートセレクターで上書きしてください。
:root {
--rs-primary-500: #3498ff;
--rs-text-primary: #1f2d3d;
}
CustomProvider を使って実行時にテーマを切り替えられます。theme プロパティで指定できる値は "light"、"dark"、"high-contrast" です。
変数の一覧は https://rsuitejs.com/guide/css-variables を参照してください。
アイコン
npm install @rsuite/icons
import SearchIcon from '@rsuite/icons/Search';
<Button startIcon={<SearchIcon />}>Search</Button>;
最新のドキュメントを取得する
コンポーネント、プロパティ、フックの最新情報には、次の優先順位で公式ソースを参照してください。
- MCP サーバー —
@rsuite/mcpはget_component_props、list_components、list_hooks、search_componentsを公開しています。https://rsuitejs.com/guide/mcp-server を参照してください。 - LLMs.txt — https://rsuitejs.com/llms.txt と https://rsuitejs.com/llms-full.txt。
- このスキルに同梱されている(下記参照)、React Suite の公開ドキュメント API にアクセスするヘルパースクリプト。
スクリプト
コンポーネントのデータをプログラムから取得するためのユーティリティスクリプトが含まれています。
scripts/list_components.mjs— React Suite の全コンポーネントを一覧表示scripts/get_component_props.mjs <ComponentName>— 指定したコンポーネントのプロパティを取得scripts/list_hooks.mjs— すべてのカスタムフックを一覧表示scripts/search_components.mjs <query>— コンポーネントを名前で検索
Node 18+ で実行します。
node scripts/list_components.mjs
node scripts/get_component_props.mjs Button
推奨事項と禁止事項
- 推奨:
rsuite/dist/rsuite.min.cssをグローバルに一度だけインポートしてください。 - 推奨:
Form内ではForm.Control(生のInputではなく)を使用し、バリデーションが自動的に連携されるようにしてください。 - 推奨: 状態の表現にはインラインスタイルではなく、意味に合った
appearance/colorの値を選んでください。 - 禁止: コンポーネントのクラス名を直接変更しないでください。代わりに CSS 変数を上書きしてください。
- 禁止: MUI/AntD のコンポーネントを React Suite と併用しないでください。アプリごとにシステムを一つ選んでください。
- 禁止: ドロップダウン、日付ピッカー、ツリーピッカーを独自に実装しないでください。
Dropdown、DatePicker、TreePickerを使用してください。
参考資料
- ドキュメント:https://rsuitejs.com
- コンポーネント:https://rsuitejs.com/components/overview
- GitHub:https://github.com/rsuite/rsuite
- MCP サーバー:https://rsuitejs.com/guide/mcp-server
- LLMs.txt:https://rsuitejs.com/guide/llms