Design SystemFoundationsData Viz

Data Viz

圖表裡有一類東西不屬於 UI 表面,也不屬於極性色:中性、只表達資料本身的填色與線條。Live DS 為這一類定義了一組 Tier 2 role,全部指向 neutral 色階;唯一帶色的是 data-fill-focus。

角色一覽

色票隨目前的 dark / light 模式即時解析。dark / light 兩欄是 style.css 裡指向的色階。

Token角色誰會用DarkLight
data-fill中性資料填色 · 預設分佈柱、volume profile 柱的底板、區間帶、圖例色塊neutral-800neutral-200
data-fill-strong中性資料填色 · 強調value area、選中區段neutral-700neutral-300
data-fill-accent整張圖只有一個的中性標記單點標記(目前沒有組件引用)neutral-200neutral-600
data-fill-focus最重要的那一個記號modal 區間、POC 列brand-600brand-600
data-grid結構線格線、軸線、railneutral-700neutral-200
data-reference標註線 · 一個位置spot、today、VWAP 參考虛線neutral-500neutral-500
data-band-edge標註線 · 一塊區域的邊區間帶的虛線外框與其圖例neutral-600neutral-600
data-point序列節點資料點、timeline 事件圓點neutral-400neutral-600
data-ink半色調網點 · 預設柱身網點neutral-400neutral-600
data-ink-strong半色調網點 · 強調value area 的網點neutral-200neutral-800
所有 token 的完整清單見 Foundations · Color

一張圖裡的位置

下圖是示意,不是組件:用來看每個 role 在一張圖裡擔任什麼。顏色全部直接吃 token,切換 dark / light 會一起換。

12345678
  1. 1格線data-grid
  2. 2預設柱data-fill
  3. 3強調區段data-fill-strong
  4. 4最重要的那一根data-fill-focus
  5. 5網點data-ink
  6. 6參考線(一個位置)data-reference
  7. 7區間帶的邊data-band-edge
  8. 8序列節點data-point

顏色契約

  • 這一組永遠是中性的。漲跌走 trend-up / trend-down,YES / NO 走 outcome-*,陣營走 team-*;資料填色不得表達極性,否則同一根柱子會有兩套互相矛盾的顏色語言。
  • 整張圖「最重要的那一個記號」可以上 brand,走 data-fill-focus——不是 bg-brand-solid,那是按鈕與表面的 role。DistributionChart 給機率最高的區間,VolumeProfileChart 給 POC 那一列。
  • brand 在這裡的意思是「這就是答案」,是強調,不是好消息。機率分佈與成交量都沒有方向,所以這兩張圖全面禁止 outcome 與 trend 顏色。
  • 時間序列上的事件節點用 data-point,不用 brand:brand 圓點在 production 的 VerticalTimeline 代表「這一步已完成」,事件流沒有進度可言。

成對的角色為什麼差一階

  • data-reference 與 data-band-edge 都是虛線:前者標「某個位置」(spot、VWAP,一條線),後者標「某塊區域的邊」(區間帶外框)。同一張圖會同時出現,差一階讓讀者分得出線與區域。
  • data-fill 系是「一塊底板」,對網點這種細碎筆畫太暗,所以網點另有 data-ink / data-ink-strong。

圖表形態

  • 長度 / 高度不要放掉。讀者先看形狀,而濃淡(網點密度)撐不起形狀。
  • 本專案柱狀圖的預設是「雙編碼」:柱長講一次數值,半色調網點再講一次。網點是用來取代「圓角柱頂 + 全部同一階灰」那種 generic 感,不是用來取代長度。
  • 只有密度、沒有長度的版本只留給真的沒有長度可用的場合,例如等高的標籤底紋。

已採用:DistributionChart(柱高 + 網點)、VolumeProfileChart(柱長 + 網點)。

圖表上的數字

  • 圖表上的數字用 Manrope + tabular-nums(並標 data-kind="numeric"),依 T4 規則是 tier-2 PASS。它們讀起來是卡片行文的一部分,不是需要等寬對齊的數字欄。
  • 例外:MetricReadout 的數值與 dashboard headline 的跳動大數字用 Space Mono(font-number)——前者一欄由上往下比對,後者用比例字體會左右抖動。
  • order book、trade panel、market header、market card 等交易 UI 仍然用 font-number,不在這條規則的範圍內。
完整規則見 Guidelines · Numbers

用到這組 token 的組件

下列組件在原始碼裡實際引用了 --color-data-*。每頁有自己的 Interactive Demo 與 State Matrix。