mcpField
D
design-to-react-algorithms

design-to-react-algorithms

github.com/pproencaデザイン・UI218131 回インストール11 週間前に更新
リポジトリ

design-to-react-algorithms について

SketchのデザインをReactとCSSに変換するツールの構築・改善に使うスキルです。回帰を防ぐ反復を優先し、レイヤーツリーの再構成、レイアウト推定、幾何計算、見た目の比較、スタイル、タイポグラフィ、パスを扱います。

主な機能

  1. 01回帰を防ぐ変換ワークフロー
  2. 02レイヤーツリーとシンボルの再構成
  3. 03Flex、Grid、自由配置の推定
  4. 04座標と幾何の処理
  5. 05ビジュアル回帰と差分比較の手法
  6. 06スタイル、タイポグラフィ、パスの変換

活用シーン

  1. 01SketchからReactへの変換ツールの構築
  2. 02回帰を抑えながら変換ツールを改善
  3. 03デザインとの見た目の差異を調査
  4. 04自由形状に適したCSSレイアウトの選択

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pproenca/dot-skills --skill design-to-react-algorithms

インストール後、Claude Code で/design-to-react-algorithmsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
diff-antialias-aware-pixelmatch-threshold.md
diff-baseline-per-component-not-per-page.md
diff-perceptual-hash-for-wrong-component-detection.md
diff-region-budgeted-tolerances.md
diff-subtree-bisection-to-localize-regression.md
diff-use-ssim-for-aa-content.md
geom-clipping-bounds-intersect-not-union.md
geom-compose-parent-transforms-before-emit.md
geom-rotation-is-css-transform.md
geom-round-only-at-leaves.md
geom-shape-group-bounds-via-union.md
iter-baseline-snapshot-gate.md
iter-bisect-from-root.md
iter-convert-symbols-before-instances.md
iter-freeze-design-tokens-first.md
iter-keep-known-good-branch.md
iter-one-family-per-pr.md
layout-detect-grid-via-2d-coordinate-clustering.md
layout-flex-group-enum-mapping.md
layout-ignore-layout-is-absolute-escape.md
layout-infer-flex-from-axis-projection-overlap.md
layout-preserve-wrapping-enabled.md
layout-promote-freeform-when-equal-gaps.md
layout-reverse-engineer-padding-not-margin.md
path-apple-smooth-corners-via-superellipse.md
path-curve-point-to-svg-cubic-bezier.md

詳細

dot-skills デザインから React への変換に関するベストプラクティス

Sketch ファイルをピクセル単位で忠実な React + CSS に変換するリバースエンジニアリングのパイプラインです。回帰を安全に防ぎながら反復できることを、最も重要な制約としています。このスキルは、デザインからコードへの変換におけるカスケード効果を軸に構成されています。つまり、ステージ N での誤った判断は、ステージ N+1 以降のすべての出力を損なうため、各カテゴリは下流に及ぼす影響の大きさに応じて並べられています。

ユーザーの主な要件である 「改善のたびにリグレッションが起きないこと」 を確実にするには、スタイルの仕上げに着手する前に、反復ループ、レイヤーツリー、レイアウトソルバーが正しく機能している必要があります。優先順位の高い順にルールを確認してください。

適用する場面

  • .sketch ファイル(または同等のデザインソース)を読み込み、React + CSS を出力するコンバーターを構築するとき
  • 改善のたびに他のコンポーネントが壊れるリスクがある既存のコンバーターを反復改善するとき
  • 変換後のコンポーネントがデザインに「ほぼ一致」しているのに、ビジュアルリグレッションテストに失敗する理由を診断するとき
  • デザインからコードへのパイプラインで、スナップショットゲートやベースラインの戦略を設計するとき
  • 元データが自由形式のジオメトリである場合に、フレックスボックス、グリッド、絶対配置のいずれを選ぶか判断するとき
  • Sketch 固有のプリミティブ(MSImmutableFlexGroupLayout、attributedString、curvePoint、MSImmutableStyleCorners)を慣用的な CSS に変換するとき

優先度別のルールカテゴリ

この順序はカスケードを表しています。まず前段のステージを修正してください。上流のツリーが間違っていれば、後段の修正は無駄になります。

優先度カテゴリ影響度プレフィックス
1リバースエンジニアリングの反復戦略CRITICALiter-
2ツリーの再構築とシンボルの解決CRITICALtree-
3レイアウトアルゴリズム(フレックス/自由形式の推定)CRITICALlayout-
4座標とジオメトリの計算HIGHgeom-
5ビジュアルリグレッションと差分アルゴリズムHIGHdiff-
6スタイルの変換(色、グラデーション、シャドウ、ボーダー)MEDIUM-HIGHstyle-
7タイポグラフィの計算MEDIUMtype-
8パスとシェイプの描画MEDIUMpath-

クイックリファレンス

1. リバースエンジニアリングの反復戦略(CRITICAL)
  • iter-bisect-from-root — 上から下へ変換し、下から上へ二分探索して O(log n) でリグレッションの発生箇所を特定します
  • iter-baseline-snapshot-gate — すべての変更は、マージ前にコミット済みのベースラインに合格する必要があります
  • iter-convert-symbols-before-instances — シンボル → インスタンスの順にトポロジカルソートし、重複をインライン化しないでください
  • iter-freeze-design-tokens-first — コンポーネントに着手する前に、sharedSwatches/layerStyles を CSS 変数に抽出します
  • iter-one-family-per-pr — 1 回の反復につき、変換対象を 1 つのコンポーネントファミリーに限定します
  • iter-keep-known-good-branch — 3 方向のリグレッション切り分けの基準点として、ベースラインブランチを維持します
2. ツリーの再構築とシンボルの解決(CRITICAL)
3. レイアウトアルゴリズム(CRITICAL)
4. 座標とジオメトリの計算(HIGH)
5. ビジュアルリグレッションと差分アルゴリズム(高)
6. スタイルの変換(中〜高)
7. タイポグラフィの計算(中)
8. パスとシェイプの描画(中)

使い方

  1. references/_sections.md を読みます。カテゴリの定義とカスケードの根拠が記載されています。
  2. イテレーション戦略(iter-*)から始めます。回帰ゲートがなければ、ほかのルールはすべて単なるテクニックにすぎません。
  3. 次にツリー(tree-*)とレイアウト(layout-*)に進みます。これらは構造を支える重要な判断です。
  4. 続いてジオメトリ(geom-*)と差分(diff-*)に進みます。これらは精度と検証のレイヤーです。
  5. スタイル、型、パスは仕上げのレイヤーです。忠実度は高いものの、影響は主に局所的です。

新しいコンバーターを作成する場合は、優先順位に従ってルールを適用してください。既存のコンバーターの場合は、発生している回帰をどの段階が受け持つのかを特定します([[diff-subtree-bisection-to-localize-regression]] と [[diff-perceptual-hash-for-wrong-component-detection]] を使って切り分けます)。その段階を受け持つ最も上位の段階で修正してください。

リファレンスファイル

ファイル説明
references/_sections.mdカテゴリの定義、影響度、カスケードの根拠
assets/templates/_template.mdこのスキルに新しいルールを追加するためのテンプレート
metadata.jsonバージョン、分野、リファレンス
AGENTS.md自動生成される目次(scripts/build-agents-md.js で再生成)

コメント