跳至主要内容
💬 回報這一頁

Chips 多選標籤片

多選,而且已選與未選同時看得見

在 Storybook 開啟

為什麼不用多選下拉

多選下拉最大的問題是「選完就看不見選了什麼」。而在後台系統裡, 使用者按下送出前,幾乎一定會想再確認一次自己勾了哪些。

✅ 這樣做

選項固定且不多(≤ 12)、使用者需要對照著選。

🚫 不要這樣

選項上百個(例如全部項目)→ 那需要的是帶搜尋的多選面板, 不是把 100 個標籤片攤在畫面上。

多選

四種狀態要一次看完

Chips 有四種狀態,而它們的差別只有並排時才看得出來。 分開展示時,每一種看起來都「就是個標籤片」。

四態並列

預設

已改動未送出(琥珀)

鎖定(可聚焦,hover 有原因)

沒有選項可選

尚未建立任何管道選項

這是文件本身的規格,不是排版偏好。 四態分開展示時, 沒有人會發現「鎖定」和「已改動」在深色模式下的邊框亮度只差一階——並排就會立刻看到。 SegGroup 已經這樣做了,Chips 應該一致。

沒有選項時要說話,不是消失

options 為空陣列時,元件顯示 emptyHint 文字,而不是整塊不見。

✅ 這樣做

emptyHint 寫出為什麼沒有選項,能引導就引導: 「尚未建立任何管道選項」。

🚫 不要這樣

不要讓整個欄位消失。使用者會以為表單壞了,或以為自己沒有權限—— 兩種猜測都會變成一通求助電話。

這和 EmptyState 是同一條原則的小尺寸版本: 空的東西也要說明自己為什麼空。

無障礙

  • role="group" 裡放一組 role="checkbox"不是 radiogroup——可複選)
  • Roving tabindex + 方向鍵移動、Space/Enter 切換、Esc 收合
  • 選中同時打勾與填色

取用

npx shadcn@latest add https://kielchang.github.io/dooping-design-book/r/chips.json