Checkbox

多选框,可独立使用或置于 CheckboxGroup 中管理一组选项,支持半选态。

设计文档

如何引入

import { Checkbox } from '@chenzy-design/svelte';

基础用法

单个复选框,支持受控与非受控,及禁用状态。

复选框组

CheckboxGroup 以数据驱动方式渲染多选项,onChange 回调返回选中值数组。

已选:a

卡片形态

设置 type="card" 以整卡点击区渲染,extra 显示辅助说明,适合套餐选择场景。

已选:pro

辅助文本

extra 传入副文本,经 aria-describedby 关联,点击区域含辅助文本,过长自动换行。

禁用

disabled 禁用复选框,选中/未选中均可禁用,禁用时不可聚焦与切换。

全选与半选

indeterminate 表达部分选中态,配合 checkAll 实现全选/清空联动。

受控

外部持有 checked/disabled,按钮编程式联动切换选中与禁用。

排列方向

direction 控制 CheckboxGroup 内布局,vertical(默认)或 horizontal。

vertical(默认)
horizontal

纯卡片形态

type="pureCard" 带背景但无 checkbox 框的纯卡片样式。

API 参考

Checkbox

Props

属性说明类型默认值
checked受控选中;提供则为受控booleanundefined
defaultChecked非受控初始选中booleanfalse
indeterminate半选态(视觉横线)booleanfalse
valueGroup 内的标识值string | numberundefined
disabledbooleanfalse
size'small'|'default'|'large'default
status'default'|'warning'|'error'default
type展示形态;card 带边框背景且整卡为命中区,pureCard 无边框。Group 透传,单项可覆盖'default'|'card'|'pureCard'default
namestringundefined
extra辅助说明,aria-describedby 关联stringundefined
idstringuseId()
addonId标签内容容器 id,经 aria-labelledby 关联为可访问名stringundefined
extraId辅助说明 id,未提供则由内部生成stringundefined
preventScrollautoFocus 聚焦时是否阻止滚动(对齐 Semi)booleanundefined
onChange(checked: boolean) => voidundefined
children标签内容Snippetundefined

Methods

属性类型说明
focus()命令式聚焦复选框(尊重 preventScroll),经组件实例调用(对齐 Semi)
blur()命令式移除焦点(对齐 Semi)

Accessibility

ARIA rolecheckbox
键盘交互Space
  • 隐藏原生 input
  • indeterminate 用 DOM 属性
  • extra 经 aria-describedby 关联

设计变量

变量默认值用法
--cd-transition-delay-checkbox-bg var(--cd-motion-delay-none)复选框-背景色-延迟时间
--cd-transition-delay-checkbox-border var(--cd-motion-delay-none)复选框-边框-延迟时间
--cd-transition-duration-checkbox-bg var(--cd-motion-duration-none)复选框-背景色-动画持续时间
--cd-transition-duration-checkbox-border var(--cd-motion-duration-none)复选框-边框-动画持续时间
--cd-transition-function-checkbox-bg var(--cd-motion-ease-in)复选框-背景色-过渡曲线
--cd-transition-function-checkbox-border var(--cd-motion-ease-in)复选框-边框-过渡曲线