2026年9月11日 金曜日
AI時短ラボ
活用· 約11

「AIっぽい見た目」を卒業する──デザイントークンをAIに渡す方法

AIにWebやアプリを作らせると量産的な見た目になりがち。配色・フォント・角丸などをCSS変数(デザイントークン)として渡すと、再現性が大きく上がる。

「AIっぽい見た目」を卒業する──デザイントークンをAIに渡す方法
執筆・編集:
目次

3行まとめ

  1. AIに曖昧に頼むと暗い紺×シアンのテック調に収束しがち
  2. デザイントークン(CSS変数)で具体値を渡すと再現性が上がる
  3. 世界観の一文+変数セットで量産的な見た目から脱却しやすい

AIに「いい感じのサイトを作って」と頼むと、似たような暗い紺×シアンのテック調に収束しがちだ。原因は指示の曖昧さにある。

解決策:トークンで渡す

曖昧な言葉ではなく、デザイントークン(CSS変数) で具体値を渡すと再現性が上がる。

:root {
  --bg: #faf6ef;      /* 背景 */
  --surface: #fffdf8; /* カード面 */
  --text: #2b2722;    /* 文字 */
  --accent: #c75f3e;  /* アクセント */
  --radius: 14px;     /* 角丸 */
}

「クリーム×テラコッタの雑誌風で、明朝見出し、余白広め」のような世界観の一文と、この変数セットをAIに渡すだけで、量産的な見た目から脱却しやすくなる。

試せます

当サイトのツール一覧で、配色×フォントの組み合わせを選んでトークンを書き出せる「Design Vault」を公開しています。

デザイントークンとは、正確には何を指すのか

「デザイントークン」という言葉には統一された唯一の定義があるわけではないが、業界標準を定めようとしている団体がW3Cの「Design Tokens Community Group」だ。2026年8月14日時点でW3Cの公式サイト(designtokens.org)を確認すると、このグループが策定中の仕様は「Design Tokens Format Module」(2026年7月30日付のDraft Community Group Report)で、ページ自身に「これは進行中の変更のプレビュードラフトであり、直接参照・実装しないでほしい」と明記されている。つまり2026年8月時点では、まだ確定版のW3C標準ではなく、業界が合意形成を進めている途中の仕様だ。

この仕様が定めているのは、ツール間でデザイントークンをやり取りするためのJSON形式のファイルフォーマットで、推奨拡張子は.tokensまたは.tokens.json。トークン1つは最低限、値を表す$valueと種類を表す$typeという2つのプロパティを持つ。任意で$description(説明文)や$deprecated(廃止予定フラグ)も付けられる。

定義済みのトークン種類(W3C仕様より)は以下の通り。

トークン種類 何を表すか
color
dimension 距離(px、remなど)
fontFamily フォント名(または候補の配列)
fontWeight フォントの太さ(1〜1000、またはboldなどの文字列)
duration アニメーションの時間(ms、s)
cubicBezier アニメーションの進行カーブ
number 単位のない数値
shadow(複合型) 色・オフセット・ぼかし・広がりの組み合わせ
border(複合型) 色・幅・スタイルの組み合わせ
gradient(複合型) グラデーション定義
typography(複合型) フォント・サイズ・行間の組み合わせ

記事冒頭のサンプルコードにある--bg--radiusはCSS変数としての書き方であり、上記のJSON形式そのものではない。両者は別物だが、目的は同じで「色や余白を、コード側から差し替え可能な変数として管理する」という考え方の実装が違うだけだ。個人開発でAIに渡す分には、CSS変数のままで十分機能する。JSON形式のトークンファイルが要るのは、同じトークンをWeb・iOS・Android・Figmaなど複数のプラットフォームで使い回したい場合だ。

AIコーディングツールごとの渡し方

AIコーディングツールによって、トークンの受け取り方に癖がある。2026年8月14日時点で各公式ドキュメントを確認した範囲では、次のような違いがある。

ツール/フレームワーク トークンの渡し方 出典
Tailwind CSS(v4系) @themeディレクティブ内に--color-*--font-*--radius-*--spacingなどの名前空間付き変数を書く。定義すると自動的にbg-mint-500のようなユーティリティクラスが生成される Tailwind CSS公式ドキュメント
shadcn/ui primaryprimary-foregroundのように背景色・前景色をペアで命名するセマンティック規則。ダークモードは同じトークン名を.darkセレクタ内で上書きする方式。ビジュアルに配色・角丸・フォントを決めて出力する「shadcn/create」という公式ツールもある shadcn/ui公式ドキュメント
Style Dictionary(Amazon製) JSON(またはW3C仕様のDTCG形式)で書いた1つのトークンソースから、CSS・iOS・Android・JSなど複数プラットフォーム向けに変換出力するビルドツール。公式サイトは「Design Tokens Community Group仕様との前方互換」を掲げている Style Dictionary公式サイト

共通しているのは、どのツールも「変数名の集合」という形でトークンを受け取る点だ。AIに投げるプロンプトに直接この変数定義を貼り付けるだけでも、多くの場合は機能する。Tailwindプロジェクトなら@themeブロックごと、shadcn/uiベースのプロジェクトならglobals.css:root.darkブロックごと渡すのが手っ取り早い。

なお、Vercelが提供するAIコーディングツールv0の公式ドキュメント(v0.app/docs)を2026年8月14日時点で確認したが、デザインシステムの読み込みについては、v0公式に「Design Systems 2.0」という専用ドキュメントがあり、インストール可能なパッケージ・ソースリポジトリ・実際に動いているアプリ・Storybookやドキュメント・Figmaのフレームといった複数の入口からv0にデザインシステムを教えられると説明されている。ツールによって公開ドキュメントの充実度に差があるため、個別に試して確認する必要がある。

つまずきやすいポイント

  • 変数名だけ渡して値の意図を渡さない。--radius: 14px」だけでは、AIは「なぜ14pxなのか」「ボタンとカードで同じ半径を使うべきか」までは判断できない。「カードは大きめの角丸、ボタンは小さめ」のように、どのコンポーネントにどのトークンを当てるかの方針も一言添えると再現性が上がる。
  • コントラスト比を指定し忘れる。 背景色とテキスト色をトークンで渡しても、AIが自動でアクセシビリティ基準を満たす組み合わせを選んでくれるとは限らない。文字色と背景色のペアは自分で確認するか、既存のUIキットの配色をそのまま流用するのが安全。
  • ダークモードを後付けで頼む。 shadcn/uiの設計思想のように、最初から「同じトークン名を.darkで上書きする」前提で変数を作っておかないと、あとからダークモード対応を頼んだときにAIが変数体系を作り直してしまい、既存のライトモードのスタイルまで崩れることがある。
  • フォントのライセンスを確認しない。 「明朝体で」「セリフ体で」と指定してAIが選んだフォントが、商用利用不可のライセンスだったケースがある。Google FontsやAdobe Fontsなど、ライセンスが明示されているフォントを自分で指定する方が確実。

トークンを用意する3つの方法(判断の目安)

方法 向いている人 手間 複数プラットフォーム展開
CSS変数を手書き 個人開発・プロトタイプ段階 低い 不向き(Web限定)
Figmaのスタイルからエクスポート デザイナーがいる/Figmaで先にデザインを作る場合 中程度(プラグインや手動書き出しが必要) プラグイン次第
Style Dictionaryでビルド Web・アプリ両方を1つのソースから管理したいチーム 高い(初期セットアップが必要) 対応

個人や小規模チームがAIコーディングでまず試すなら、CSS変数の手書きで十分なことが多い。複数プラットフォームへの展開や、デザイナーとエンジニアの間でトークンを一元管理したくなった段階で、Style Dictionaryのようなビルドツールの導入を検討すればよい。

AIコーディングツール自体の選び方については、AIコーディングアシスタント比較──Copilot/Cursor/Claude Code【2026年】も参照。

正直に書いておくと

  • 「デザイントークンを渡せば必ず量産的な見た目から脱却できる」とは言えない。AIの出力は依然としてプロンプト全体・学習データの傾向に左右され、トークンは再現性を上げる一つの手段にすぎない
  • 本記事で紹介したツールの対応状況(Tailwind、shadcn/ui、Style Dictionary)は2026年8月14日時点で各公式ドキュメントを確認した内容であり、AIコーディングツール側(Claude Code、Cursor、v0、bolt.newなど)が「デザイントークンJSON」を直接読み込む専用機能を持っているかどうかは、ツールごとに個別の検証が必要で、本記事では全ツールを検証できていない
  • W3Cの仕様自体がまだDraft(草案)段階であり、将来的にプロパティ名や構造が変わる可能性がある。今この仕様に厳密に沿ってファイルを作り込んでも、そのまま将来も使える保証はない
  • コントラスト比などのアクセシビリティ基準は、トークンを渡すだけでは担保されない。別途チェックが必要
シェア: ポスト はてブ

出典・参照資料

更新・訂正履歴

  • 「v0公式にはデザインシステムやCSS変数の読み込み方法を明記した記述が見当たらなかった」という否定の断定を訂正した。v0公式には Design Systems 2.0 という専用ドキュメントがあり、インストール可能なパッケージ・ソースリポジトリ・稼働中のアプリ・Storybookやドキュメント・Figmaのフレームといった複数の入口からデザインシステムを読み込ませる仕組みが説明されている。記事執筆時点より前の2026-06-29のWebアーカイブにも同ページが存在することを確認しており、後から追加されたものではない。確認する範囲が足りていなかったことによる誤りにあたる。

AIニュースの解説を動画でも

YouTubeでは注目ニュースの背景を解説し、Xでは新着記事をお知らせしています。

コメント

まだコメントはありません。最初のコメントを書いてみませんか?

AIについて聞きたいことはありますか?

質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。

質問箱を見る →

新しい記事をメールで受け取る

AIの新しい発表を、出典付きで整理して届けます。

関連記事

curlに-Lを付けずに308を叩くと15バイトの「Redirecting...」が返る──sitemapが0件・サイトが壊れたと誤診する罠の記事画像
活用08.14読了21

curlに-Lを付けずに308を叩くと15バイトの「Redirecting...」が返る──sitemapが0件・サイトが壊れたと誤診する罠

出典 ─ 308 Permanent Redirect(HTTP response status codes)
HTTP 200・79,525バイトなのに可視テキストは416文字──「取得できた」を200で数えてはいけないの記事画像
活用08.14読了32

HTTP 200・79,525バイトなのに可視テキストは416文字──「取得できた」を200で数えてはいけない

出典 ─ RFC 9110: HTTP Semanti
IndexNowにGoogleは参加していない──418URL送ってもGoogleには渡らない仕組みと、鍵が無効なときに返る403 UserForbiddedToAccessSiteの記事画像
活用08.14読了42

IndexNowにGoogleは参加していない──418URL送ってもGoogleには渡らない仕組みと、鍵が無効なときに返る403 UserForbiddedToAccessSite

出典 ─ IndexNow - Home(indexn
出典URLの死活チェックで404だけ見てはいけない──1,517件を全数検査したら、HEADに404を返す公式ドキュメントと403の一次資料が出てきたの記事画像
活用08.14読了27

出典URLの死活チェックで404だけ見てはいけない──1,517件を全数検査したら、HEADに404を返す公式ドキュメントと403の一次資料が出てきた

出典 ─ RFC 9110: HTTP Semanti
Vercel CLIはgitではなく作業ツリーを直接デプロイする──git statusが本番の中身を表していない状態の見分け方の記事画像
活用08.14読了29

Vercel CLIはgitではなく作業ツリーを直接デプロイする──git statusが本番の中身を表していない状態の見分け方

出典 ─ Exclude Files from Dep
Vercelの自動生成ドメインがGSCの参照元に117本入っていた──*.vercel.appと「Duplicate, Google chose different canonical than user」を全351記事で実測の記事画像
活用08.14読了36

Vercelの自動生成ドメインがGSCの参照元に117本入っていた──*.vercel.appと「Duplicate, Google chose different canonical than user」を全351記事で実測

出典 ─ Accessing Deployments
Wayback CDX APIは「該当なし」を200・0バイトで返す──既定が完全一致なのを知らずに『誰も保存していない』と結論した話の記事画像
活用08.14読了32

Wayback CDX APIは「該当なし」を200・0バイトで返す──既定が完全一致なのを知らずに『誰も保存していない』と結論した話

出典 ─ Wayback CDX Server API
Vercelデプロイのエラーを減らす個人開発チェックリスト──ローカルビルドから本番200確認までの記事画像
活用08.22読了7

Vercelデプロイのエラーを減らす個人開発チェックリスト──ローカルビルドから本番200確認まで

出典 ─ Vercel Docs: Troublesh