Artefact UI

Search

博客

文档

关于

演练场

编辑

菜单Chevron Down

博客

文档

关于

演练场

编辑

Select 选择器 - Docs - Artefact

Select 选择器

Forms
自动交互

Introduction

一个自定义下拉选择控件,允许用户从预定义列表中选择一个或多个选项。该组件作为浏览器原生 <select> 元素的完全无障碍、可样式化且响应式的替代方案。

Select 组件已作为 select 区块完全集成到 Page Builder 中,使内容作者和开发人员能够直接在 CMS 中轻松配置可视选项、占位符、尺寸、多选和颜色主题。


Usage

以下示例展示了内容编辑人员如何绑定和构建交互式下拉选择。

1. 标准单项选择

一个标准的单项下拉列表,允许用户选择其偏好的框架。它具有自定义标签和占位符文本。

{
  "type": "select",
  "label": "Framework",
  "placeholder": "Select a framework",
  "interactive": true,
  "items": [
    { "label": "React", "value": "react" },
    { "label": "Solid", "value": "solid" },
    { "label": "Svelte", "value": "svelte", "disabled": true },
    { "label": "Vue", "value": "vue" },
    { "label": "Hono", "value": "hono" }
  ]
}
React
Solid
Svelte
Vue
Hono

2. 带自定义样式(surface 变体)的多项选择

演示如何启用多个活动选择,触发器标签以逗号分隔显示。同时展示了独特的视觉 surface 变体。

{
  "type": "select",
  "label": "CSS Frameworks",
  "placeholder": "Choose frameworks",
  "multiple": true,
  "variant": "surface",
  "size": "lg",
  "defaultValue": ["panda"],
  "interactive": true,
  "items": [
    { "label": "Tailwind CSS", "value": "tailwind" },
    { "label": "Panda CSS", "value": "panda" },
    { "label": "Vanilla Extract", "value": "vanilla" }
  ]
}
Tailwind CSS
Panda CSS
Vanilla Extract

3. 禁用态下拉选择器

展示一个临时不可用或只读的 select 元素。该视觉状态禁用所有交互,阻止下拉列表被打开或聚焦。

{
  "type": "select",
  "label": "Language Settings",
  "placeholder": "Select Language",
  "disabled": true,
  "interactive": true,
  "items": [
    { "label": "English", "value": "en" },
    { "label": "Deutsch", "value": "de" }
  ]
}
English
Deutsch

Props

属性CMS 字段类型默认值描述 / 支持的选项
标签文本 (label)string-渲染在下拉触发器上方的描述性文本。
占位符 (placeholder)string-未选择任何选项时,触发器按钮内显示的幽灵文本。
选项列表 (items)list-选项列表,每项包含 labelvalue 以及可选的 disabled 状态。
多选 (multiple)booleanfalse启用后,用户可选择多个选项;选择期间下拉保持打开。
默认值 (defaultValue)list-初始选中的选项值数组,在加载时预勾选。
可取消选择 (deselectable)booleanfalse允许通过再次单击当前选项来清除单项选择。
表单名称 (name)string-用于在表单提交期间捆绑原生值的标准 HTML name 属性。
禁用 (disabled)booleanfalse禁用用户交互,并对下拉应用变暗的覆盖层。
无效状态 (invalid)booleanfalse触发错误边框并显示无效的视觉状态。
视觉变体 (variant)select"outline"触发器的边框与填充主题。
• 选项:"outline""surface"
尺寸比例 (size)select"md"控制整体间距、内边距和字体大小。
• 选项:"xs""sm""md""lg""xl"
强制交互 (interactive)booleantrue将下拉触发器和菜单浮层作为交互式客户端孤岛注水。

Developer Notes & Accessibility

  • 注水孤岛: 由于 Select 需要客户端 JavaScript 来切换菜单、筛选选项并绑定自定义按键监听器,默认作为交互式 Preact 孤岛注水("interactive": true)。
  • WAI-ARIA 合规性: 该组件充当高保真语义自定义组合框。焦点安全地保留在触发按钮上(role="combobox"),选项通过标准 aria-activedescendantaria-expandedaria-controls 绑定动态管理。键盘方向键、Home/EndEscape 开箱即用,运行流畅。
  • 表单集成: 它输出一个视觉隐藏的原生 <select> 元素,填充与选择匹配的隐藏 <option> 元素。标准的 HTTP POST 表单提交原生可用,无需任何辅助 JS 状态序列化。