选择器
一个常见的表单组件,用于在下拉菜单中选择预定义的值。
安装
pnpm dlx shadcn@latest add @lumi-ui/select
基本用法
import {
Select,
SelectContent,
SelectItemContent,
SelectTriggerGroup,
} from "@/components/ui/select";<Select>
<SelectTriggerGroup placeholder="请选择一个水果" />
<SelectContent>
<SelectItemContent value="apple">苹果</SelectItemContent>
<SelectItemContent value="banana">香蕉</SelectItemContent>
</SelectContent>
</Select>组件结构
<Select>
<SelectTriggerGroup />
<SelectContent>
<SelectGroup>
<SelectGroupLabel />
<SelectItemContent />
</SelectGroup>
</SelectContent>
</Select>功能特性
自定义样式
对齐方式
支持滚动
多选
为 <Select> 根组件添加 multiple 属性以启用多选功能。
分组
使用 SelectGroup 和 SelectGroupLabel 将选项组织成不同的区域。
提示
此组件使用了 animate-popup 工具类,以确保与其他浮层组件的动画一致性。你可以在 CSS 文件中自定义过渡效果、缓动函数和持续时间。详见 动画指南。
状态
禁用状态
错误状态
实用示例
自定义渲染
你可以在使用 items 属性保障无障碍的同时,自定义渲染的内容。
受控模式
通过编程方式控制选择器的值。
追踪状态
你可以追踪选择器的状态,并利用它来显示额外信息。
API 参考
基础组件
复合组件
SelectTriggerGroup
一个高阶的触发按钮组件,它将 Trigger、Value 和 Icon 组合成一个带样式的单一元素。它会自动处理尺寸、图标和占位符文本。
SelectContent
一个复合组件,包装了 Portal、Positioner、Popup、List 和滚动按钮。
SelectItemContent
一个便捷的列表项组件。它将 Item、ItemText 和 ItemIndicator(选中图标)组合成单个组件,并管理选中状态的样式和布局。