RORK LABEN
MAX — Rork MaxはClaude CodeとClaude Opus 4.6を基盤に、React NativeではなくネイティブSwiftアプリを直接生成しますAPPLE — Rork MaxはiPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageまでAppleエコシステム全体を対象にしますWORKFLOW — 実運用ではAIに足場を作らせ、状態管理とデータ層は自分で書き直す分担に落ち着いてきたという声が目立ちますSEED — 4月にLeft Lane Capital主導で$15Mのシードを調達しました(Peak XV・True Ventures・a16z Speedrunが参加)PAPERLINE — アプリビルダーPaperlineを買収。エンジニア人材の獲得へ今後も買収を続ける方針ですREVIEW — 3ヶ月使ったユーザーの再訪レビューが増え、得意・不得意と向く用途の見極めが進んでいますMAX — Rork MaxはClaude CodeとClaude Opus 4.6を基盤に、React NativeではなくネイティブSwiftアプリを直接生成しますAPPLE — Rork MaxはiPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageまでAppleエコシステム全体を対象にしますWORKFLOW — 実運用ではAIに足場を作らせ、状態管理とデータ層は自分で書き直す分担に落ち着いてきたという声が目立ちますSEED — 4月にLeft Lane Capital主導で$15Mのシードを調達しました(Peak XV・True Ventures・a16z Speedrunが参加)PAPERLINE — アプリビルダーPaperlineを買収。エンジニア人材の獲得へ今後も買収を続ける方針ですREVIEW — 3ヶ月使ったユーザーの再訪レビューが増え、得意・不得意と向く用途の見極めが進んでいます
記事一覧/開発ツール
開発ツール/2026-06-15中級

再生成のたびに色と余白が崩れる問題を、デザイントークンの単一情報源で止める

Rork に画面を再生成させるたびに、ボタンの色や余白が少しずつ変わってしまう。その揺れを止めるために、デザイントークンを1か所に固定し、生成物が必ずそこを参照するように仕向ける設計をまとめます。

Rork502デザイントークンExpo139デザインシステム5保守性2

プレミアム記事

ある日、リリース済みのアプリのスクリーンショットを並べて見ていて、妙な違和感を覚えました。同じアプリの中なのに、設定画面のボタンだけ角丸が一回り大きいのです。原因をたどると、その画面だけ前の週に Rork で一度作り直していました。生成のたびに、角丸の半径が 12 から 16 へ、主要色の青がほんの少し明るいほうへ、と静かにずれていたのです。

一画面なら手で直せます。けれど個人開発で複数のアプリを抱えていると、この「じわじわ」が積み重なって、いつの間にかブランドの輪郭がぼやけます。生成 AI は指示の外側を埋めるのが得意で、色や余白のような「言わなかった部分」を毎回それらしく補完します。その補完こそが、再生成のたびの揺れの正体でした。

なぜ生成物の見た目は毎回ずれるのか

Rork が生成する Expo アプリのスタイルは、多くの場合コンポーネントの中に直接数値で書き込まれます。borderRadius: 12padding: 16color: "#2563EB" のような形です。これらはどの画面にも散らばっていて、再生成のときに AI が文脈から「だいたいこのくらい」と推定し直します。指示に明示されていない数値は、毎回わずかに違う値で再構成されます。

つまり揺れの根本は、見た目の決定権が無数のコンポーネントに分散していることです。決定権が散らばっている限り、再生成は揺れます。直す方向は1つで、見た目の決定を1か所に集めることです。

トークンを単一情報源にまとめる

最初の一歩は、色・余白・角丸・タイポグラフィといった「デザインの語彙」を、1つのファイルに固定することです。このファイルだけは AI に再生成させず、人間が管理します。

// tokens.ts — このアプリの見た目を決める唯一の場所
// AI に再生成させない。変更は必ずここを手で編集する
export const tokens = {
  color: {
    brand: "#2563EB",
    brandPressed: "#1D4ED8",
    bg: "#FFFFFF",
    text: "#0F172A",
    textMuted: "#64748B",
    danger: "#DC2626",
  },
  radius: { sm: 8, md: 12, lg: 16, pill: 999 },
  space: { xs: 4, sm: 8, md: 12, lg: 16, xl: 24, xxl: 32 },
  font: { body: 16, title: 22, caption: 13 },
} as const;
 
export type Tokens = typeof tokens;

コンポーネント側は、もう生の数値を持ちません。必ずトークンを経由します。

// PrimaryButton.tsx — 生の数値を一切書かない。すべてトークン参照
import { Pressable, Text, StyleSheet } from "react-native";
import { tokens } from "../tokens";
 
export function PrimaryButton({ label, onPress }: {
  label: string; onPress: () => void;
}) {
  return (
    <Pressable onPress={onPress} style={styles.btn}>
      <Text style={styles.label}>{label}</Text>
    </Pressable>
  );
}
 
const styles = StyleSheet.create({
  btn: {
    backgroundColor: tokens.color.brand,
    borderRadius: tokens.radius.md,
    paddingVertical: tokens.space.md,
    paddingHorizontal: tokens.space.lg,
    alignItems: "center",
  },
  label: { color: "#FFFFFF", fontSize: tokens.font.body, fontWeight: "600" },
});

これで「青ボタンの角丸を 12 にする」という決定は、世界に1か所しか存在しなくなります。再生成が borderRadius を勝手に推定する余地が消えます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
再生成で色・余白・角丸がじわじわ変わる原因と、トークン単一情報源で止める設計が手に入ります
生成 AI に毎回トークンを参照させるためのプロンプト規約と、逸脱を検出する CI スクリプトを持ち帰れます
6本のアプリでブランドの一貫性を保ちながら、画面の再生成スピードを落とさない運用基準がわかります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-03-17
Rork × Google Stitch — デザインから React Native アプリまで AI で一貫開発
Google Stitch で生成した UI デザインを Rork Max に取り込み、本番品質の React Native アプリを最短で完成させるワークフローを解説します。
開発ツール2026-07-10
React Compiler を Expo に入れて、手書き memo を 41 箇所消しました
Rork が生成した React Native 画面に React Compiler を導入し、再レンダリング回数を Profiler で実測しました。手書き memo/useCallback の削除判断、効かない箇所の見分け方、CI での回帰検知までをまとめています。
開発ツール2026-07-10
クライアントに置いた鍵は公開情報 — Rork 生成アプリの秘密境界とローテーション手順
生成された Expo アプリの .ipa を展開すると、環境変数がそのまま文字列として現れます。鍵を3層に分類し、置けないものをプロキシへ逃がし、漏れた前提のローテーション手順書を用意するまでの設計をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →