复选框
复选框允许用户从单个项目的列表中选择多个项目,或将单个项目标记为已选择。
安装
以上命令仅用于单独安装。如果 @nextui-org/react 已全局安装,则可以跳过此步骤。
导入
用法
禁用
尺寸
颜色
圆角
不确定状态
isIndeterminate 属性将Checkbox 设置为不确定状态,覆盖其外观并保持该状态,直到设置为false,无论用户如何交互。
删除线
自定义选中图标
默认情况下,
IconProps将会传递给你的图标组件。请确保isSelected、isIndeterminate和disableAnimation没有传递给 DOM 元素。
受控
注意:NextUI
Checkbox也支持诸如onChange的原生事件,这对于诸如 Formik 和 React Hook Form 等表单库非常有用。
插槽
- base:复选框的包装器,它处理对齐、放置和整体外观。
- wrapper:一个内部容器,包含相对定位、flex 属性、溢出处理以及管理悬停和选中状态的样式。
- hiddenInput:用于处理复选框状态的隐藏输入元素。
- icon:复选框内的图标,控制大小、可见性以及选中时的变化。
- label:与复选框关联的文本。
自定义样式
你可以通过将自定义 Tailwind CSS 类传递给组件插槽来自定义 Checkbox 组件。
自定义实现
如果需要进一步自定义复选框,你可以使用 useCheckbox 钩子来创建自己的实现。
注意:我们使用 Tailwind Variants 来实现上述样式,你可以使用任何其他库,例如 clsx 来达到相同的效果。
数据属性
Checkbox 在 base 元素上具有以下属性
- data-selected:当复选框被选中时。基于
isSelected属性。 - data-pressed:当复选框被按下时。基于 usePress
- data-invalid:当复选框无效时。基于
validationState属性。 - data-readonly:当复选框为只读时。基于
isReadOnly属性。 - data-indeterminate:当复选框为不确定状态时。基于
isIndeterminate属性。 - data-hover:当复选框被悬停时。基于 useHover
- data-focus:当复选框被聚焦时。基于 useFocusRing。
- data-focus-visible:当使用键盘聚焦复选框时。基于 useFocusRing。
- data-disabled:当复选框被禁用时。基于
isDisabled属性。 - data-loading:当复选框正在加载时。基于
isLoading属性。
可访问性
- 使用原生 HTML
<input>元素构建。 - 完全支持浏览器功能,如表单自动填充。
- 键盘焦点管理和跨浏览器标准化。
- 为 Tab 和 Space 键提供键盘事件支持。
- 为辅助技术提供标签支持。
- 支持不确定状态。
API
复选框属性
| 属性 | 类型 | 默认值 |
子元素 | | |
图标 | | |
值 | | |
名称 | | |
尺寸 | | "md" |
颜色 | | "primary" |
圆角 | | |
删除线 | | false |
是否选中 | | |
默认选中 | | |
是否必填 | | false |
是否只读 | | |
是否禁用 | | false |
是否不确定 | | |
是否无效 | | false |
验证状态 | | |
禁用动画 | | false |
类名 | |
复选框事件
| 属性 | 类型 | 默认值 |
onChange | | |
onValueChange | |

