Open7

デザインシステムについてのインプット

よいよい

デザイントークンとは
ざっくり言ったら「色や余白などのデザインシステムを構成するピース」
くらいに理解した

このトークンがあればデザインを一貫性を持って管理することができる
またこのトークンを使ってデザインと開発を同期させ相互にズレがないようにできる
(Single Source of Truthの元にする)

https://note.com/seyanote/n/n7b327a9cfd72

よいよい

デザイントークンにはGlobal(Primitive)トークン、Aliasトークンがある
Aliasトークンは更にSemanticトークンやComponentトークンに分けられる

  • Globalトークン: Tailwindのblue-500のように基底の命名にする
  • Semanticトークン: text-primaryやborder-secondaryのようにどこ(どうやって)使うかで命名する
  • Componentトークン: button-primaryのようにコンポーネントに特化した命名にする

https://www.youtube.com/watch?v=JyCmacSyDY4&t=443s
https://www.youtube.com/watch?v=1ONxxlJnvdM&t=620s

よいよい

元々Figma本体でのデザイントークン管理はできず、Tokens Studio(Figma Tokens)というサードパーティを使っていたが、2023年にvariablesという機能が追加されFigma本体だけで解決できるようになったらしい
https://zenn.dev/mi_/articles/453f7594120c9a

元々Figma本体にもstyleという機能はあったがstyleはstyleを参照できず、デザインの変更に弱かった
またダークモードなどの対応も面倒だった

https://help.figma.com/hc/ja/articles/15871097384471-バリアブルとスタイルの違い

よいよい

Figmaとコードを同期する
重要なこの設定がなんだかんだで一番大変そう
(一回設定すればあとはgithub actionsで回せるっぽい)

https://help.figma.com/hc/ja/articles/15339657135383-Figmaでのバリアブルに関するガイド#h_01H4S62F4ERWJQ6B4DZ7NBCJWC
https://www.youtube.com/watch?v=7gMOTX4f4rc

Tailwindに変換するならこの辺りも必要

https://zenn.dev/nado1001/articles/style-dictionary-tailwindcss

よいよい

Tailwindは初めからGlobalトークンで全て定義されててそれを使ってスタイルしようっていう設計なのに対して、デザイントークンはSemanticトークンに置き換えてエイリアスで運用しようって考えだからあんまり相性良くないように感じた🤔
(というか最初の設定が一工程面倒)