109k

单选组

一组可勾选的按钮——即单选按钮——同一时间只能选中其中一个。

Radix UIBase UI
Radix UI - shadcn/ui 组件库
import { Label } from "@/components/ui/label"
import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"

安装

pnpm dlx shadcn@latest add radio-group

用法

import { Label } from "@/components/ui/label"
import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"
<RadioGroup defaultValue="option-one">
  <div className="flex items-center gap-3">
    <RadioGroupItem value="option-one" id="option-one" />
    <Label htmlFor="option-one">Option One</Label>
  </div>
  <div className="flex items-center gap-3">
    <RadioGroupItem value="option-two" id="option-two" />
    <Label htmlFor="option-two">Option Two</Label>
  </div>
</RadioGroup>

示例

描述

带有描述的单选组项,使用了 Field 组件。

大多数使用场景的标准间距。

元素之间有更大的间距。

适用于紧凑布局的最小间距。

import {
  Field,
  FieldContent,

选择卡片

使用 FieldLabel 包裹整个 Field,以实现卡片式的可点击选择效果。

import {
  Field,
  FieldContent,

字段集 (Fieldset)

使用 FieldSetFieldLegend 将单选按钮项与标签和描述进行分组。

订阅方案

年度和终身计划可显著节省费用。

import {
  Field,
  FieldDescription,

禁用

RadioGroupItem 上使用 disabled 属性可禁用单个选项。

import { Field, FieldLabel } from "@/components/ui/field"
import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"

无效状态

RadioGroupItem 上使用 aria-invalid,并在 Field 上使用 data-invalid 来显示验证错误。

通知偏好

选择您希望接收通知的方式。

import {
  Field,
  FieldDescription,

RTL (从右至左)

要在 shadcn/ui 中启用 RTL 支持,请参阅 RTL 配置指南

大多数使用场景的标准间距。

元素之间有更大的间距。

适用于紧凑布局的最小间距。

"use client"

import * as React from "react"

API 参考

查看 Radix UI Radio Group 文档。