Skip to content
Back to skills

Design Assemble

ASecurity

[デザイン] 4. variants → 型付きProps/属性にマッピングして結合(再利用UI)

  • 9 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 8, 2026
developmentswiftreactvuefrontend

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add mae616/ai-template --skill design-assemble --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Design Assemble?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Design Assemble
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mae616-design-assemble/badge)](https://www.skillsdirectory.com/skills/mae616-design-assemble)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
user-invocable: true
description: "[デザイン] 4. variants → 型付きProps/属性にマッピングして結合(再利用UI)"
---

# [デザイン] 4. variants → 型付きProps/属性にマッピングして結合(再利用UI)

## コマンド: /design-assemble [$TARGET]
`doc/input/design/components.json` の variants を **型付きProps/属性** にマッピングし、選択スタックへ**結合(再利用可能UI)**するアダプタ層。
既定は doc/input/rdd.md の技術スタック。引数で変更する際は **ADR-lite承認必須**。

## いつ使う?(位置づけ)
- `/design-ui` → `/design-components` が終わって、見た目の部品が分離できたあと
- `components.json` の variants を「実装の分岐(props/attrs/enum)」に落とし、再利用可能なUIとして仕上げたいとき

## 次に何をする?
- 実装タスクへ合流(状態/データ取得/ルーティング等は別工程で入れる)

## 共通前提(参照)
- 口調・出力規約・差分出力の方針は `CLAUDE.md` に従う。
- `doc/input/rdd.md` を読み、該当する `.claude/skills/*` を適用して判断軸を揃える。
  - 例(ロール): `frontend-implementation` / `accessibility-engineer`
  - 例(tech): `react` / `astro` / `svelte` / `tailwind`(※テンプレートでは固定せず、RDDのスタックに合わせて選ぶ)
- 詳細運用(ADR-lite/差分/サンプル運用等)は `doc/guide/ai_guidelines.md` を参照。
- SSOT JSON のスキーマ(variants命名/props/slots)は `doc/input/design/ssot_schema.md` を参照。

### 入力
- $TARGET(任意): react | vue | svelte | swiftui | flutter | web-components | plain-html …

### 出力(差分のみ)
- スタック別の再利用UI
  - React: `src/components/{Name}.tsx`(Props型: size/tone/state…), `src/stories/*`, `__tests__/*`
  - Vue: `src/components/{Name}.vue`(props + Story)
  - Svelte: `src/lib/{Name}.svelte`(props + Story)
  - SwiftUI: `Sources/UI/{Name}.swift`(case/enumでvariants)
  - Flutter: `lib/widgets/{name}.dart`(enum/Theme拡張)
  - Web Components: `src/components/{name}.ts`(attrs/reflect + CSS Custom Props)
- すべて **差分リファクタ**(skeleton → 再利用化)。仕様追加禁止。

### マッピング規約(例)
- variants.size → props.size("sm"|"md"|"lg")/ enum 等
- variants.tone → tokensのsemantic colorキーにバインド
- state(hover/disabled) → スタック標準のstate表現
- Docコメント(JSDoc/Docstring/Swift Doc/ Dartdoc)必須

### ルール
- **RDD準拠/SOLID**。逸脱は ADR-lite で理由と影響を明記
- **a11y必須**(セマンティックHTML/JSX + 必要最小限のWAI-ARIA)。詳細は `.claude/skills/accessibility-engineer/SKILL.md` に従う。
- Lint/Type/Test/Story すべて緑
- ここで停止

### ゲート
- Storybook/Preview で全variants表示OK
- Lint/Type/Test green(対応スタックのみ)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…