选择列表
内容区 inset 选择列表:图标 + 双行文本,持久选中
用途
模态选择场景——从若干候选中单选其一,行由图标 + 主文本 + 次行说明组成,底部配「取消 / 确定」按钮行。用例参考:抓取前选择目标游戏窗口。预览可点击换选。
设计规范 · macOS 26 / 27
- inset 列表直接坐在窗底上,是内容层的数据列表——与「侧边栏」的区别:侧栏是浮于内容之上的玻璃导航层,本组件不是玻璃。
- 行高 44px(h-11)命中桌面端点击目标,行圆角
rounded-[10px];行距not-first:mt-2(8px)。 - 选中为持久高亮
bg-black/8/ 暗white/12,与侧栏行同款;无 hover / 按压瞬时效果。 - 图标与主文本用 label 主色,次行用 secondaryLabel——双行层级一眼可分。
状态与交互
- 单击选中(持久);双击即确认;键盘 ↑↓ 移动选中并 scrollIntoView,Enter 确认、Esc 取消。
- 未选中任何行时「确定」按钮 disabled——选择先于确认。
参考实现
Web 参考:picker/App.vue;生产用语义工具类 text-label / text-secondary,本例以等值字面量代替。原生对应 inset 样式的 NSTableView。演示状态机提供 value / setValue。