Design Token
tokens.json v1.18.0 · 128 顆每個色塊與尺寸都是 build 時把 tokens.json 的 value 直接餵進 style 得到的,看到的就是現值。分組與說明來自 tokens.json 的 group/description。
說明欄只顯示第一句,完整註解看 tooltip 或 tokens.css ↗
色票:中性
14 顆色票:主色
5 顆ink,擔任 OMS navy 的角色
色票:CTA 橘
6 顆稀有色:僅 CTA 與導覽選中系,不當控件選中色
色票:狀態
10 顆填色上的前景
4 顆2026-08-13 v1.8.0 新增
深底中性色階梯
6 顆2026-08-13 v1.9.0 新增,使用者拍板 6 顆
白色當「材質」而非前景
3 顆2026-08-13 v1.8.0 新增
圓角階層
10 顆大→小;同類元件一律取同級
--r-drawer抽屜/大型浮動面板24px--r-menu下拉選單容器、確認 modal20px--r-card表格卡片/內容卡18px--r-input輸入框、popover14px--r-fieldcard欄位卡片(⚠️ 與 --r-input 同值,見上方待觀察)14px--r-btn按鈕、tabs 容器、搜尋框、分頁鈕、select trigger、menu option12px--r-chippill 多選 chip、虛線加號鈕10px--r-tag小標籤 tag、tab、fx/mono badge8px--r-checkcheckbox4px--r-fullswitch 軌、頭像、full pill999px
間距階梯
12 顆2026-08-10 新增
--sp-2極貼合:tab 之間、icon 與計數2px--sp-4標籤與控件、badge 內縮4px--sp-6按鈕內 icon 與字、pill 內距6px--sp-8控件之間的預設間距(最常用)8px--sp-10卡內小區塊10px--sp-12表格儲存格左右、卡片內距小號(最常用)12px--sp-14按鈕左右內距14px--sp-16卡片內距16px--sp-20卡片內距大號、區塊之間20px--sp-24抽屜/面板內距24px--sp-32頁面區段之間32px--sp-48空狀態內距、大留白區塊48px
控件高度階層
11 顆--h-input文字輸入48px48px--h-btn按鈕、搜尋框、分頁鈕、表格勾選命中盒42px42px--h-selectselect/combobox trigger、卡內小輸入、虛線加號鈕38px38px--h-tabtab(坐在 --ds-tabs-pad 的軌道裡)34px34px--h-iconicon 鈕(2026-08-11 v1.3.0 從 --h-tab 分家,見下方 coarse 段)34px34px--h-segsegmented chip33px33px--h-chippill 多選 chip28px28px--h-row表格列/表頭58px58px--h-bar抽屜 header/footer66px66px--ds-tabs-padtabs 軌道內距。4px4px--ds-badge-h狀態標籤膠囊高(.ds-badge。22px22px
命中盒
1 顆不是視覺尺寸階
--hit-min觸控最小命中高度(WCAG 2.5.5/2.5.8)44px44px
應用外殼版面常數
5 顆2026-08-13 v1.9.0 新增
--side-w側欄寬(桌機)216px216px--side-w-framed深色外框版面下的側欄寬248px248px--side-w-drawer≤820 抽屜寬(實測值,比桌機略寬:抽屜是唯一導覽,不必為內容讓位)240px240px--aux-w兩欄詳情版面的右側輔助欄292px292px--ds-sticky-top黏頂偏移(2026-08-14 v1.13.0)=黏頂元素要讓開的高度=它上方所有已 sticky 的東西。0px0px
字級階層
17 顆--fs-page2026-08-10 新增:頁標題自成一階。永和 Aa 202627px--fw-page頁標題(內容區的 h1)永和 Aa 2026700--ls-page大字收緊(warm 起收得比之前鬆)HHG 2026 / 1,480-.008em--fs-title永和 Aa 202619px--fw-titlemodal/抽屜標題永和 Aa 2026700--fs-panel永和 Aa 202617.5px--fw-panel抽屜/面板標題永和 Aa 2026700--fs-app2026-08-12 v1.5.2 新增:app shell 這一階。永和 Aa 202616px--fw-appapp shell:側欄品牌名、導覽圖示永和 Aa 2026700--fs-body內文、輸入值永和 Aa 202614px--fs-section永和 Aa 202613.5px--fw-sectionsection 標題永和 Aa 2026600--fs-label永和 Aa 202613px--fw-label欄位 label、tab、按鈕永和 Aa 2026600--fs-sub小 label、pill chip永和 Aa 202612px--fs-hinthint、badge、副說明永和 Aa 202611.5px--fs-microfx chip、nav 副標永和 Aa 202611px
數字展示階
4 顆2026-08-14 v1.13.0 新增,使用者拍板
--fs-num-lgKPI 主數字永和 Aa 202628px--fs-num-md合計列金額、單據頭金額永和 Aa 202618px--fs-num-sm卡內 inset 統計值永和 Aa 202615px--ls-num大號數字收緊(比 --ls-page 的 -.008em 再緊:數字字面比中文窄,同樣字距看起來會鬆; v1.14.0 warm 併入後 --ls-page 變鬆,兩者差距比之前更…HHG 2026 / 1,480-.02em
陰影
4 顆--sh-card內容卡0 6px 26px rgba(27,29,34,.10)--sh-poppopover0 10px 28px rgba(27,29,34,.15),0 2px 8px rgba(27,29,34,.09)--sh-menu下拉選單(白底靠陰影跳出)0 14px 36px rgba(27,29,34,.17),0 3px 10px rgba(27,29,34,.10)--backdropmodal/drawer 遮罩rgba(27,29,34,.48)rgba(27,29,34,.48)
字體
2 顆--sans永和 Aa 2026 — The quick brown fox-apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif--mono永和 Aa 2026 — The quick brown foxui-monospace,"SF Mono",Menlo,Consolas,monospace
動效
2 顆--t-fast.12s ease.12s ease--t-med.18s ease.18s ease
疊層階梯
8 顆2026-08-11 新增
--z-base一般內容0--z-sticky黏頂工具列、表頭、批次操作列100--z-nav側欄、頂欄、行動版抽屜遮罩200--z-popoverpopover、tooltip、通知面板1000--z-selectselect 展開選單(必須蓋過 popover:它常開在 popover 內)1500--z-drawer抽屜與其遮罩(遮罩 1800/本體 1900)1800--z-modalmodal/dialog2000--z-toast第八階(2026-08-11 v1.3.0 新增):toast 必須蓋過對話框。2100
斷點
4 顆2026-08-11 新增;2026-08-24 v1.15.0 由 3 階改 4 階
--bp-sm640px640px--bp-md820px820px--bp-lg992px992px--bp-xl1200px1200px
觸控覆寫 pointerCoarse
7 顆觸控目標由輸入裝置決定,不由螢幕寬度決定——@media (pointer: coarse) 下這幾顆高度 token 換值。🔴 轉 theme 時這個區塊不要漏。
| token | 桌機(pointer: fine) | 觸控(pointer: coarse) | 實際高度對照 |
|---|---|---|---|
--h-btn | 42px | 44px | |
--h-select | 38px | 44px | |
--h-icon | 34px | 44px | |
--h-tab | 34px | 40px | |
--ds-tabs-pad | 4px | 2px | |
--h-seg | 33px | 40px | |
--h-chip | 28px | 32px |
var(--h-btn),用觸控裝置開會自己變高。h-btn 實高斷點 breakpoints
4 階🔴 @media 不吃 var():斷點在任何轉換層(含 Tailwind v4 的 @theme inline)都必須寫字面值,否則 media query 永不成立、 build 零錯誤、responsive variant 靜靜失效。⇒ 改斷點必須重跑轉換 script。
| token | 值 | Tailwind variant | 說明 |
|---|---|---|---|
--bp-sm | 640px | sm: | — |
--bp-md | 820px | md: | — |
--bp-lg | 992px | lg: | — |
--bp-xl | 1200px | xl: | — |
控件尺寸階 controlScale
tokens.json · controlScale情境 → 該吃哪一階的 height/radius/font token,以及哪些 class 屬於這一階。 整張表由 tokens.json 的 controlScale 動態產生, token 後面括號裡的實際值是查 tokens 區塊即時解出來的。
| 情境 | height | radius | font | members | note |
|---|---|---|---|---|---|
| form | --h-input(48px) | --r-input(14px) | --fs-body(14px) | .ds-input.ds-field > .ds-select .ds-select-trigger | 表單欄位:一欄一列、不與按鈕並排。這是本庫的預設階,不是 lg 變體。 |
| toolbar | --h-btn(42px) | --r-btn(12px) | --fs-label(13px) | .ds-btn.ds-search.ds-tabs.ds-input-md.ds-select-md | 工具列/篩選列:tabs、搜尋、篩選輸入、篩選下拉、動作按鈕並排的那一列。 |
| dense | --h-select(38px) | --r-btn(12px) | --fs-label(13px) | .ds-input-sm.ds-select-trigger.ds-dashed-btn.ds-btn-sm.ds-ecell | 卡內密集區/可編輯表格。coarse 下與 toolbar 階同高(見上方警語)。 |
sm→densemd→toolbarlg→form--h-tab(34px)Tailwind v4 命名空間覆蓋率
128 顆 token 有 109 顆落到 Tailwind 命名空間,其餘 19 顆寫 arbitrary value。
--h-input--h-btn--h-select--h-tab--h-icon--h-seg--h-chip--h-row--h-bar--ds-tabs-pad--ds-badge-h--hit-min--side-w--side-w-framed--side-w-drawer--aux-w--ds-sticky-top--t-fast--t-medh-[var(--h-btn)] w-[var(--side-w)] duration-[var(--t-fast)]