導覽與資訊架構
同樣會展開清單,Select 是選資料,Menu 是執行指令。
「做一個下拉選單,放編輯、刪除和狀態」是很常見的需求句,但裡面混了兩種責任。狀態是資料值,應該由 Select 或其他選擇元件處理;編輯、刪除是指令,才適合進 Menu。命令很多而且常用時,才需要 Command Palette。
選型流程
先問「使用者是在選值,還是在叫系統做事?」
- 結果要成為欄位值、篩選條件或設定嗎?是:使用 Select;選取後顯示目前資料值。
- 是一組少量、相關的立即指令嗎?是:使用 Menu Button 或 Dropdown Menu;按鈕先說明共同目的。
- 指令只對目前選到的資料列有意義嗎?是:使用 Context Menu;同時保留可見與鍵盤替代入口。
- 是每列較少用的次級操作,或全域高頻命令嗎?前者用 Overflow Menu;後者才考慮可搜尋的 Command Palette。
比較表
六種清單背後的資料與互動責任完全不同。
點選元件名稱可查看各自的 LumenDesk Demo、AI Prompt 與驗收清單。
| 比較面向 | Select|選擇欄 | Menu Button|選單按鈕 | Dropdown Menu|下拉選單 | Context Menu|情境選單 | Overflow Menu|溢位選單 | Command Palette|命令面板 |
|---|---|---|---|---|---|---|
| 主要回答的問題 | 要把哪個資料值寫回欄位或篩選條件? | 要從一組相關指令執行哪一項? | 觸發元件下方要出現哪一組指令? | 目前這筆資料可以做什麼? | 這筆資料的次級操作有哪些? | 工作區裡想快速執行什麼命令? |
| 選項的本質 | 資料值,例如狀態、角色、部門 | 立即執行的指令,例如匯出 CSV | 立即執行的指令,例如從範本建立 | 依目前物件而變的指令 | 收納的次級指令 | 可搜尋的全域或跨區域命令 |
| 觸發方式 | 欄位聚焦後選取一個值 | 明確的按鈕 | 工具列按鈕 | 右鍵、Context Menu 鍵或可見替代入口 | 有名稱的三點更多操作按鈕 | Ctrl/Cmd + K 與可見開啟按鈕 |
| 適合放在哪裡 | 表單、篩選列、設定區 | 匯出、分享等明確操作旁 | 新增、建立等工具列操作旁 | 資料列、畫布物件、清單項目 | 表格或清單的每一列 | 整個工作區都可抵達的位置 |
| 不要拿來取代 | Menu、Command Palette | Select、主要操作按鈕 | Select、全站導覽 | 唯一主要操作或觸控入口 | 高頻主要操作或無確認的刪除 | 小型表單欄位或唯一主要流程 |
| 必要回饋 | 目前值、選取結果與欄位錯誤 | 開啟狀態、鍵盤焦點、執行結果 | 展開位置、鍵盤焦點、執行結果 | 目前操作對象與替代入口 | Danger 與刪除確認 | 搜尋結果、目前項目、零結果與關閉焦點 |
這組結論
「下拉選單」不是元件規格,至少還要補上它選的是資料還是指令。
在 LumenDesk 情境裡,任務狀態篩選用 Select;匯出與新增使用 Menu Button 或 Dropdown Menu;針對一筆任務的次級操作可用 Context Menu 或 Overflow Menu;建立、切換檢視、邀請成員等跨區域高頻命令,才交給 Command Palette。
操作 Command Palette Demo →