Figma Tokens が生成するデザイントークンをフロントエンドの実装に利用する
Figma Tokensを使ってデザインシステムを構築する際の手順メモです。
Figma Tokensが吐き出したデザイントークンのファイルを、scss
ファイルなどのスタイリングファイル(スタイリング用の一次ソースファイル)に変換するところまでを説明します。
参考までにどうぞ。
0. 【下準備】ターミナルで開発ディレクトリに移動する(プロジェクトのルートディレクトリに移動)
cd workspace/Frontend/
※workspace
ディレクトリやFrontend
ディレクトリはご自身の開発ディレクトリの名前に読み替えてください。
1. Token Transformer をインストール
npm install -D token-transformer
もしくは、Yarnを使ってインストールするのであれば以下のコマンドを実行する。
yarn add -D token-transformer
Token Transformer:Figma Tokens が生成したデザイントークンのファイルtokens.json
を後述するStyle Dictionary
が読み取り可能な形式に変換してくれるNode.jsのパッケージ。
Doc: lukasoppermann/design-token-transformer: Base repo to transform json design tokens from the figma design token plugin via amazon style dictionary. - GitHub
-D
オプション:--save-dev
と同じ意味。省略形。パッケージを開発環境のローカルにインストールするためのオプション。このオプションを付けてインストールを実行すると、インストール結果がpackage.json
のdevDependencies
に追記される。
このオプションについてのソースはこちら。
Doc: npm-install | npm Docs
2. Style Dictionary をインストール
npm install -D style-dictionary
もしくは、Yarnを使ってインストールするのであれば以下のコマンドを実行する。
yarn add -D style-dictionary
Style Dictionary:「デザイントークンのファイル(tokens.json
)」を「フロントエンドの実装に利用可能なスタイリングファイル(tokens.scss
、tokens.js
、tokens.d.ts
)」へと変換してくれるNode.jsのパッケージ。
Doc: amzn/style-dictionary: A build system for creating cross-platform styles. - GitHub
design-tokens
ディレクトリを新規作成する
3. プロジェクトのルートディレクトリ直下にmkdir design-tokens
※このdesign-tokens
ディレクトリでデザイントークンのファイル(オリジナルと、 Token Transformer で変換したもののみ)を管理する。
design-tokens
ディレクトリ内に、さらに以下のディレクトリを作成する
4. mkdir {design-tokens/01-src, design-tokens/02-dest}
-
01-src
ディレクトリ:tokens.json
のオリジナル(『Figma Tokens』でExportしたファイル)をここに格納します。 -
02-dest
ディレクトリ: Token Transformer が変換&出力するtokens.json
をここに格納します。
design-tokens/01-src
ディレクトリ内にtokens.json
を格納する
5. 作成したtokens.json:Figmaのプラグイン『Figma Tokens』でExportしたデザイントークンのJSONファイルのこと。
tokens.json
を変換する
6. Token Transformer でデザイントークンのファイルToken Transformer を使い、 Style Dictionary が扱うことのできるtokens.json
を作成します。
node node_modules/token-transformer design-tokens/01-src/tokens.json design-tokens/02-dest/tokens.json
もしくは
./node_modules/.bin/token-transformer design-tokens/01-src/tokens.json design-tokens/02-dest/tokens.json
7. スタイリングファイルのビルド先となるディレクトリを作成する
Style Dictionary でビルドしたファイルを格納するためのディレクトリを先に用意しておきます。
mkdir src/design-tokens
package.json
ファイルがある階層(プロジェクトのルートディレクトリ直下)にstyle-dictionary.config.json
を作成する
8. まずはstyle-dictionary.config.json
を作成。
touch style-dictionary.config.json
続いて、作成したstyle-dictionary.config.json
に以下のコードを記述する。
{
"source": ["design-tokens/02-dest/tokens.json"],
"platforms": {
"scss": {
"transformGroup": "scss",
"buildPath": "src/design-tokens/",
"files": [
{
"destination": "tokens.scss",
"format": "scss/map-deep",
"mapName":"css-tokens",
"options": {
"outputReferences": true
}
}
]
},
"ts": {
"transformGroup": "js",
"buildPath": "src/design-tokens/",
"files": [
{
"destination": "tokens.js",
"format": "javascript/module"
},
{
"destination": "tokens.d.ts",
"format": "typescript/module-declarations"
}
]
}
}
}
style-dictionary.config.json:design-tokens/02-dest/tokens.json
を元に、Style Dictionary でどのようなスタイリングファイルをビルドするか? style-dictionary.config.json
は、そのビルドの設定が書かれたファイルです。
source
:デザイントークンの元ファイルの参照。
buildPath
:スタイリングファイルの書き出し先。
destination
:スタイリングファイルのファイル名。
※この記事ではデザイントークンの参照元をdesign-tokens/02-dest/tokens.json
、スタイリングファイルの書き出し先をsrc/design-tokens
ディレクトリとしていますが、こちらはお好みの場所・ディレクトリに変更していただいてOKです。
9. Style Dictionary でスタイリングファイルをビルドする
npx style-dictionary build --config style-dictionary.config.json
※ビルドしたファイルはsrc/design-tokens
ディレクトリの中に保存されている。
10. Style Dictionary によって生成されたファイルをimportして使用する
あとはビルドされた
- tokens.scss
- tokens.js
- tokens.d.ts
以上3つのファイルを任意のファイルで読み込んで使用するだけ!
import tokens from "design-tokens/tokens";
参考にした記事
Discussion