React 组件

UGRadio 单选框

用于从一组互斥选项中选择一个值;RadioGroup 管理组值、原生表单名、尺寸、禁用和排列方向。

导入方式

按需从包入口导入组件,并在应用入口引入一次样式文件。

tsx
import { UGRadio, UGRadioGroup } from '@ug666/ui-react'

基础单选组

组内原生 radio 自动共享 name,鼠标和方向键行为保持一致。

当前选择:pro

水平排列

少量短选项可横向排列,并在空间不足时自然换行。

卡片型单选

互斥的复杂选项继续使用原生 radio 语义,不用多个 Button 模拟选中状态。

数值选项

value 支持 string 与 number,不在状态层强制转为字符串。

禁用与尺寸

可禁用整组或单项;尺寸从组传递,单项仍可覆盖。

校验错误状态

aria-invalid 由表单字段注入时,默认与卡片型单选项都会显示明确错误边界。

独立使用

不在 RadioGroup 中时,可用 checked/defaultChecked 和 onChange 管理单个原生 radio。

原生表单

组统一传递 name、form 和 required;非受控值在 reset 后恢复 defaultValue。

属性

UGRadioGroup 属性

属性类型默认值说明
value / defaultValuestring | number受控值或非受控初始值。
onValueChange(value) => void选中项变化时触发。
orientation'horizontal' | 'vertical''vertical'子项排列方向。
name / formstring / string自动生成 / —原生 radio 组名,并可关联指定 id 的外部 form。
requiredbooleanfalse要求组内至少选择一项,并同步原生校验与 aria-required。
size / disabledControlSize / boolean全局配置统一控制组内尺寸和禁用状态。
原生属性 / refHTMLAttributes / Ref<HTMLDivElement>透传到 role=radiogroup 的容器。

UGRadio 属性

属性类型默认值说明
valuestring | number必填当前选项值。
variant'default' | 'card''default'短标签使用默认外观;标题、说明等丰富内容使用卡片型单选项。
checked / defaultCheckedboolean— / false独立使用时的受控状态或初始状态。
onChange(value) => void独立选中或组值变化时触发。
label / labelClassNameReactNode / string可点击标签内容及其容器样式。
size / disabled / name / required原生及组件属性继承组组内优先继承组配置,独立使用时保留原生属性。
aria-invalid原生 ARIA 属性表单校验失败时同步无障碍语义和危险色边框;卡片外观同步标记整项。
id / refstring / Ref<HTMLInputElement>自动生成 / —id 和 ref 均指向真实 radio input,可直接聚焦。