表单与选择@neumorphism-ui/select

Select

直接使用原生 select、optgroup 和 option,并应用 inset field 与装饰性 chevron。保留移动平台的系统 picker 和表单提交行为。

@neumorphism-ui/select
Registry JSON

预览

安装

安装: selectnpx shadcn@latest add @neumorphism-ui/select

CLI 会依次处理 npm 依赖、base token、utils 和组件源码。

首次使用此 Registry?请先完成 namespace 配置 。

用法

用法: 安装npx shadcn@latest add @neumorphism-ui/select @neumorphism-ui/label

Import

Select import 代码
import {
  Select,
  SelectGroup,
  SelectItem,
} from "@/components/ui/select"
import { Label } from "@/components/ui/label"

Example

Select 用法代码
<div className="grid gap-2">
  <Label htmlFor="role">角色</Label>
  <Select id="role" name="role" defaultValue="designer">
    <SelectItem value="designer">设计师</SelectItem>
    <SelectItem value="developer">开发者</SelectItem>
    <SelectItem value="founder">创始人</SelectItem>
  </Select>
</div>

API 参考

组件属性类型默认值说明
Selectvalue / defaultValuestring | string[]—受控的选中值或非受控初始值。
SelectonChangeReact.ChangeEventHandler<HTMLSelectElement>—原生 select 值变化时调用。
Selectdisabled / required / multiplebooleanfalse设置原生 select 的输入限制及多选模式。
SelectItemvalue必填string | number | readonly string[]—option 在表单中提交的值。
SelectGrouplabel必填string—optgroup 的选项组名称。

无障碍

  • 01

    将 Label 的 htmlFor 与 Select 的 id 关联。

  • 02

    将第一个 option 用作 placeholder 时,应组合空 value 与 disabled,同时保留真实 Label。

  • 03

    由于使用原生 select,会完整保留操作系统的键盘和移动 picker 行为。