jp-ui-components
jp-uiのコンポーネント作成とStorybook Page作成のルールを守るためのスキル。Base UIラッパーの方針、render/useRenderの維持、レイアウト/余白/幅ルールを適用する。
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
jp-ui Components
方針
- 既存のPageに合わせる:
src/pages/ColorsPage.*,src/pages/IconsPage.*,src/pages/TypesettingPage.*を基準にする。 - Pageは基本「背景・文字色・上下余白」を持つラッパーで、中身は適切なmax-widthのコンテナで中央寄せする。
- 「幅を満たす系(Field, InputBoxなど)」も、コンテナの幅はmax-widthで制限し、要素はコンテナ幅100% にする。
- ルールを守らない実装が出やすいので、幅・中央寄せ・コンテナ構造は明示的にコード化する。
実装ルール(必須)
-
Pageラッパー
-
paddingとbackground/colorを指定する。 - 例:
padding: 32px 16px 80px; background-color: var(--surface); color: var(--on-surface);
-
-
中央寄せコンテナ
-
max-widthは デフォルト 640px とする。 - 特別な指定がある場合のみ、その数値を使う(例: 一覧/グリッドで
max-width: 960px)。 -
margin: 0 auto; width: 100%;を指定する。
-
-
幅を満たす系アイテム(Field, InputBox など)
-
コンテナ内で
width: 100%とし、コンテナのmax-widthで制約する。 - 画面全幅に引き伸ばさない。必ず中央寄せコンテナの中に置く。
-
コンテナ内で
コンポーネント作成ルール(必須)
-
Base UIラッパーが原則
- Base UIコンポーネントは原則ラッパーTSXを作り、利用体験を統一する(className自動付与・variant/slotの共通化など)。
- 例外として、ラッパーが不要なほど単純な場合のみBase UIを直接使用する。
-
render/useRenderの維持
- Base UIの
renderの仕組みは壊さない。classNameが関数のときも必ずマージする。 - 自前コンポーネントは
useRenderを使い、renderを透過できるAPIにする。
- Base UIの
-
テンプレ利用
- Base UIラッパーは
templates/base-ui-wrapper.tsxをベースに作成する。 - 自前コンポーネントは
templates/custom-use-render.tsxをベースに作成する。
- Base UIラッパーは
-
Exampleを正にする
- 各コンポーネントには
Example.tsxを同階層に作り、Exampleを実装例の正とする。 - Storybookの
Defaultはrender: () => <Example />を基本とする。 -
docs/llmは Example を元に自動生成されるため、Exampleが実装例の唯一の情報源になる。 - 同一ディレクトリに複数コンポーネントがある場合は
*Example.tsxで区別して良い。
- 各コンポーネントには
推奨構成(最小形)
// src/pages/FooPage.tsx
import styles from './FooPage.module.css';
export function FooPage() {
return (
<div className={styles.Page}>
<div className={styles.Container}>
{/* contents */}
</div>
</div>
);
}
/* src/pages/FooPage.module.css */
.Page {
padding: 32px 16px 80px;
background-color: var(--surface);
color: var(--on-surface);
}
.Container {
width: 100%;
max-width: 640px; /* default. override when specified */
margin: 0 auto;
}
追加メモ
- 既存Pageの実装に合わせて、
display: gridやgapは必要に応じて追加する。 - ルールがぶれそうな場合は、Containerの責務をコメントで短く明示する。
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-01-26
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!