ChakraUIとデザイントークン

1.8K Views

June 22, 25

スライド概要

Chakra UIのテーマシステムを理解するために、デザイントークンについて知ってもらうための資料です。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Chakra UIと デザイントークン ashphy @[email protected]

2.

今日の目標 • Chakra UIのデザインシステムについて理解し、テーマを自由 に当てることができるようになる • デザイントークンについて説明できるようになる

3.

このボタンの色はどう指定しますか?

4.

このボタンの色はどう指定しますか? #FFFFFF #2463EB

5.

Switchも色指定しましょう #FFFFFF #2463EB

6.

色が変わっちゃいました • Switchの色を変えてみよう #FFFFFF #EA580C

7.

あれ、ボタンの色を変えるの忘れてた • すべて更新するのは大変! #FFFFFF #2463EB

8.

これらを解消するのがデザイントークン

9.

デザイントークンとは • デザインに関する決定を名前付きで記録・保存するための 唯一の情報源 (Single Source of Truth) • 名前と値のペア colors.blue.600 #2563EB Name Value

11.

グレーって200色あんねん Colors - Core concepts - Tailwind CSS

12.

色をデザイントークンで定義する • Core Token (Primitive Token) • デザインの最小単位となる基本的な値 • 具体的な値(例:RGB値)に紐づく

13.

色をデザイントークンで定義する Colors | Chakra UI

14.

デザイントークンでスタイリングする white blue.600

15.

画面にはボタンがいっぱい white white white blue.600 blue.600 blue.600

16.

blue.600を調整すればすべて変わる white white white blue.600 blue.600 blue.600 一貫性

17.

これでメデタシ?

18.

あれ、一貫性がなくなってしまった blue.600 blue.700

19.

セマンティックトークン • UIの「意味」や「文脈」に基づいて名付けられた抽象的な トークン bg colors.blue.600 #2563EB

20.

セマンティックトークンで色を定義 Colors | Chakra UI

21.

コンポーネントを再定義 bg bg

22.

これで安心?

23.

ダークモードに対応しよう どうすれば?

24.

ダークモードに対応しよう .darkを追加してみる text text.dark bg bg.dark

25.

ダークモードに対応しよう 値が増えたので指定を忘れるかもしれない text text.dark bg bg.dark

26.

Conditional Styles • 特定の状態に応じて使われる値が変わるスタイル設定

27.

Conditional Styles • 特定の状態に応じて使われる値が変わるスタイル設定 ライトモードで 使われる値

28.

Conditional Styles • 特定の状態に応じて使われる値が変わるスタイル設定 ダークモードで 使われる値

29.

一貫性のあるダークモード対応 • コンポーネントに指定するべき色は1つ → ダークモードだけ指定が抜けることがない

30.

ダークモードだけなんでしょ? • モバイル対応 → ディスプレイが小さい、ネイティブアプリ • TV対応 → ディスプレイがデカいが遠い • 高コントラスト対応 → 公共案件にありがち • 印刷対応 → 背景いらない

31.

ボタンをアクセントカラーにしたい • Primaryに加えて別の色のバリエーションも追加したい

32.

Virtual Color • 色の「役割」や「意味」に名前をつけて、状況に応じて自動的 に適切な色に変化する仕組み

33.

本当のボタンのスタイル定義 colorPalette.contrast colorPalette = orange colorPalette.solid

34.

デザイントークンは色だけ?

35.

サイズもデザイントークン 4-Point Grid System

36.

サイズもデザイントークン

37.

Figma Variables • FigmaでデザイントークンはVaribalesで実装される

38.

実際にデザイントークンを使う • Chakra UI Figma Kit を見てみよう

39.

デザイントークンを使う • Chakra UI Figma Kit を見てみよう Figma

40.

デザイントークンを使う • Chakra UI Figma Kit を見てみよう <Button size="md” variant="solid” colorPalette="blue”> Button </Button> Figma Chakra UI

41.

Size & Space <Box w="24" h="8" borderRadius="4" bg="orange.200" /> Figma Chakra UI

42.

Figmaで定義したデザイントークンを Chakra UIで利用する • Export Filtered Variables Plugin Chakra UIは互換性のあるフォーマット を採用しているが、規格がまだ定まって いないので全部は動かない

43.

W3C Design Tokens Community Group • デザイナー/開発者/ツール間で“共通語”になること • (将来的には) Figmaで定義したデザイントークンをそのまま実 装に使うことができるようになる

44.

まとめ • デザイントークンはデザインに関する決定を名前付きで記録・保存 するための唯一の情報源 • デザイナ/エンジニア/ツール間での共通言語になる • セマンティックトークンはUIの「意味」や「文脈」に基づいて名付 けられた抽象的なトークン • デザイントークンを使うことでデザインの一貫性を保ちやすくなり、 保守性が向上する 全部実践する必要はない

45.

参考文献 • W3C Design Tokens Community Group • https://www.w3.org/community/design-tokens/ • Design tokens ‒ Material Design 3 • https://m3.material.io/foundations/design-tokens/overview • Building Consistent UIs with Design Tokens | Chakra UI • https://chakra-ui.com/blog/03-building-consistent-uis-withdesign-tokens

46.

参考文献 • The Ultimate Spacing Guide for UI Designers • https://www.thedesignership.com/blog/the-ultimatespacing-guide-for-ui-designers • Figma tutorial: Intro to variables • https://www.youtube.com/watch?v=1ONxxlJnvdM • デジタル庁デザインシステムβ版 v2.4.0 • https://design.digital.go.jp/