上篇已經建立好theme.js
,本篇開始把基本的 design token 寫進來。
首先把設計稿上顏色寫進 theme 裡。(這裡如果想更自動化,可以去嘗試 Figma 上 Figma Token 的插建,可以直接匯出成 JSON。)
在 theme 資料夾下創建 colors.js
檔案,把顏色的數值寫進去
const colors = {
//可以這樣寫純色的 value
black: '#000',
white: '#fff',
//系列色可以再用物件傳入色號對應數值
gray: {
900: '#262626',
800: '#262626',
},
};
export default colors;
完成後大概如下(如果是用 VScode 編輯器,可以安裝 Color highlight plugin ,賞心悅目)
然後記得把 color.js
import 到 theme.js
import { extendTheme } from '@chakra-ui/react';
import colors from 'theme/colors';
const customTheme = {
colors,
};
const theme = extendTheme(customTheme);
export default theme;
這時候我們可以去編輯一個 Chakra UI 的元件,以 Style Props
方式傳入我們剛剛完成的顏色系統
<Box w="100px" h="100px" bgColor="blue.500"></Box>
<Box w="100px" h="100px" bgColor="blue.400"></Box>
在預設的 Chakra UI 元件裡,都有寫好 colorScheme 。比方說 Button
正常狀態是 gray.500hover: gray.600
, active: gray.700
我們可以直接把寫好的顏色方案傳入元件
<Button colorScheme="blue">鐵人賽</Button>
<Button colorScheme="blue" isLoading>
鐵人賽
</Button>
如此一來這個元件的狀態就會採用 blue 的顏色方案
下一篇將會說明使用 Theme Extensions 可以如何設定好每一個元件預設要使用的 colorScheme