Skip to content

v0.11.0(tokens 配對版 0.6.0)

Choose a tag to compare

@github-actions github-actions released this 06 Aug 15:03
· 5 commits to main since this release
daec10b

三個工作項的合併發佈(B 段終驗+兩個 P0+缺件六件)。
tokens 維持 0.6.0——全部用既有 token,不發 npm、不推 tokens tag。

交接包 B 段終驗:節級比對全數在頁,補上唯一的選用項(純文件)

改了什麼:逐份補充稿做節級比對(8 份、21 個插入節)——全部已在
先前批次落地,B 段實質完成。唯一缺的是 overview 補充稿標為「選用」的
共同約定第 6 條,這次補上:「分類色與狀態語意脫鉤(雙向)」一句+連到
配色策略判斷樹(正本在 charts 頁,不寫第二份)。
我需要做什麼:不用。
為什麼改:草案當時把這條列為取捨(總覽收齊 vs 保持精簡);
配色策略判斷樹落地後,這條有了可連結的正本,一句話收齊的成本趨近於零。
至此交接包 22 份草案全部收束,含所有選用項與合併注意事項。

兩個 P0 設計缺口:載入態與欄位錯誤態(規範 v0.11.0,tokens 不變)

改了什麼

覆蓋度清查(交接包 D 段)點名的兩個 P0——「全庫沒有 loading 態」
「全庫沒有 error 態」——它們是設計缺口不是測試缺口,先補 story 只會
補出五種不同的 loading。這批先定規範再落元件:

  • 載入態規範〈載入中〉色彩語意新節):
    三種手段各有位置——首載=Skeleton(版面已知不跳動)、
    重查=就地變暗保留舊內容(已有資料再蓋骨架會閃)、
    提交=disabled+圖示+文案(按鈕沒有 loading 變體的既有立場,銜接不推翻)。
    載入不是狀態語意,一律中性(--muted),不進提醒色彩色家族
  • 新增 SkeletonSkeletonTextDataTableloading
    首載渲染骨架列(列數=每頁筆數、上限 15),已有資料就地變暗+aria-busy
    讀屏出口由容器宣告一次(role="status"),骨架塊 aria-hidden
  • 新增 FormFieldFieldError:「Label+aria-describedbyaria-invalid
    錯誤小字」的固定寫法元件化,id 連動自動接好;錯誤三重編碼(色+圖示+文字);
    與區塊層 Callout 彙總是分工不是取代
  • 修掉一個真實的深色違規:先前錯誤欄整格染 --danger-subtle
    深色下 danger 邊框對那個底只有 2.42:1(低於 1.4.11 的 3:1)。
    修法不是放寬門檻也不是動全域淡底(會破壞染色量等量),而是不整格染紅——
    錯誤主訊號是邊框+文字+圖示,整格紅底還會吃掉高飽和面積預算
    (十個錯誤欄=十塊紅底)。欄位狀態三層表同步修正
  • verify:color 新門檻:danger 邊框對兩種欄位底(background--field-editable
    兩模式都 ≥3:1——這條第一次跑就抓到上述違規,反向驗證過
  • 第一支 play function:FormField 的 aria 連動(aria-invaliddescribedby
    指向存在的錯誤節點/無錯誤欄不得帶 invalid)——樣式看起來都對、
    讀屏卻接不到訊息,正是改版時最容易安靜壞掉的部分
  • 缺件表劃掉 Skeleton 與 Form 兩列(missing-piece.yml 同步,表下補「畢業」紀錄);
    文件八處同步(05-input 錯誤態節+活範例、13-data-table 載入節、16-empty-state
    「載入中不是空」、01-button 連結、提醒色辭典同框表加錯誤行、表單頁改用 FormField)

我需要做什麼

想用的專案:npx shadcn add …/r/skeleton.json…/r/form-field.json
已在用 aria-invalid 樣式鉤子的:錯誤欄不再整格染紅(深色違規修正)——
重抄 Input/Select 兩支,或自行拿掉 aria-[invalid=true]:bg-danger-subtle
其餘零影響;DataTable 的 loading 是新增 prop,不傳=現況。

為什麼改

載入與錯誤是後台系統每一頁都會遇到的兩種狀態,卻是全庫唯二沒有規範的——
每個畫面自己發明的結果就是五種 loading、三種錯誤標法。規範先行
(決策表+反例),元件只是把規範變成預設值;深色違規的修正順帶證明了
「新增守衛必須反向驗證」之外的另一半:新守衛第一次跑就該對著現況跑
它抓到的每一條都是已經存在的問題。

缺件表六件收錄:Toast、Switch、Textarea、RadioGroup、Skeleton、DateRange(規範 v0.11.0,tokens 不變)

改了什麼

  • 頁面章缺件表的前六列全數收錄,替代方案功成身退;表與認領模板同步刪除六個選項
  • Toast 操作回饋27-toast):「操作回饋的去向全站固定一種」
    自此有載體,規則成文——右下、堆疊上限 3、success/info/warning 5 秒自動消失
    (hover/聚焦暫停)、danger 一律手動關閉、讀屏 status/alert 分級、z-[70];
    表單驗證錯誤不進 Toast(貼欄位)。淡底表面與 Callout 共用同一份
    STATUS_SUBTLE_SURFACE(同一份事實只寫一次)
  • Switch:切了立即生效;與 Checkbox 的分工成文(送出才生效用 Checkbox),
    因此刻意無「已改動未送出」琥珀態
  • Textarea:逐項鏡射 Input(邊框/聚焦環/aria-invalid/停用);只准直向調整大小
  • RadioGroup:垂直、每項可帶說明;選中填實心點不只靠顏色;
    文件附單選四載體分工表(SegGroup/RadioGroup/Select/EditableField)
  • Skeleton:保留真實版面形狀、只用於首載、aria-hidden+容器 aria-busy、
    尊重 prefers-reduced-motion
  • DateRange 期間選擇 v1:檔位一等公民(今日/近 7 日/近 30 日/本月)+自訂起訖;
    反序自動修正;刻意不做日曆格(檔位+原生 date 輸入涵蓋主要場景,
    視覺化日曆等三次法則證據)
  • 順帶兩個既有小修:Stepper 步驟按鈕補標準聚焦環四件組(先前走瀏覽器預設);
    Storybook 步驟指示 story 的 completed 死 key 修正

我需要做什麼

要用就抄:npx shadcn add <站台>/r/{toast,switch,textarea,radio-group,skeleton,date-range}.json
Switch/RadioGroup 會自動帶入兩個新的 radix 相依。tokens 維持 0.6.0——
六件全部使用既有 token,npm 端零動作。已在用替代方案的畫面不必立刻改,
但新畫面請直接用正式件;操作回饋請照 Toast 頁的全站規則收斂。

為什麼改

頁面章成文時盤出九個缺件,其中六件已有多頁場景反覆出現(表單頁/設定頁/
清單頁/儀表板都指向同幾件)——三次法則的證據在成表當下就湊齊了。
一次收錄讓「先用替代方案」的過渡期最短,也讓認領表單聚焦在真正未定案的三件。


判斷要不要跟進:跟上新版