使用高级 Chakra UI 组件,更快地构建 💎

了解更多
跳到内容
文档演练场指南博客
赞助商

复选框卡片

用于选择或取消选择卡片中显示的项目。

源码Storybook配方Ark

用法

import { CheckboxCard } from "@chakra-ui/react"
<CheckboxCard.Root>
  <CheckboxCard.HiddenInput />
  <CheckboxCard.Control>
    <CheckboxCard.Content>
      <CheckboxCard.Label />
      <CheckboxCard.Description />
    </CheckboxCard.Content>
    <CheckboxCard.Indicator />
  </CheckboxCard.Control>
</CheckboxCard.Root>
信息
如果您更喜欢封闭式组件组合,请查看下方代码片段

示例

描述

使用 CheckboxCard.Description 组件为复选框卡片添加描述。

分组

使用 CheckboxCardGroup 组件对多个复选框卡片进行分组。

选择框架

尺寸

size 属性传递给 CheckboxCard.Root 组件以更改复选框卡片的尺寸。

样式变体

variant 属性传递给 CheckboxCard.Root 组件以更改复选框卡片的样式变体。

禁用

disabled 属性传递给 CheckboxCard.Root 组件以禁用复选框卡片。

附加内容

CheckboxCard.Addon 组件中渲染附加内容,为复选框卡片添加更多上下文信息。

无指示器

这是一个如何在不使用指示器的情况下使用复选框卡片的示例。

图标

这是一个如何在复选框卡片中渲染自定义图标的示例。

封闭组件

以下是如何为封闭组件组合设置复选框卡片。

import { CheckboxCard as ChakraCheckboxCard } from "@chakra-ui/react"
import * as React from "react"

export interface CheckboxCardProps extends ChakraCheckboxCard.RootProps {
  icon?: React.ReactElement
  label?: React.ReactNode
  description?: React.ReactNode
  addon?: React.ReactNode
  indicator?: React.ReactNode | null
  indicatorPlacement?: "start" | "end" | "inside"
  inputProps?: React.InputHTMLAttributes<HTMLInputElement>
}

export const CheckboxCard = React.forwardRef<
  HTMLInputElement,
  CheckboxCardProps
>(function CheckboxCard(props, ref) {
  const {
    inputProps,
    label,
    description,
    icon,
    addon,
    indicator = <ChakraCheckboxCard.Indicator />,
    indicatorPlacement = "end",
    ...rest
  } = props

  const hasContent = label || description || icon
  const ContentWrapper = indicator ? ChakraCheckboxCard.Content : React.Fragment

  return (
    <ChakraCheckboxCard.Root {...rest}>
      <ChakraCheckboxCard.HiddenInput ref={ref} {...inputProps} />
      <ChakraCheckboxCard.Control>
        {indicatorPlacement === "start" && indicator}
        {hasContent && (
          <ContentWrapper>
            {icon}
            {label && (
              <ChakraCheckboxCard.Label>{label}</ChakraCheckboxCard.Label>
            )}
            {description && (
              <ChakraCheckboxCard.Description>
                {description}
              </ChakraCheckboxCard.Description>
            )}
            {indicatorPlacement === "inside" && indicator}
          </ContentWrapper>
        )}
        {indicatorPlacement === "end" && indicator}
      </ChakraCheckboxCard.Control>
      {addon && <ChakraCheckboxCard.Addon>{addon}</ChakraCheckboxCard.Addon>}
    </ChakraCheckboxCard.Root>
  )
})

export const CheckboxCardIndicator = ChakraCheckboxCard.Indicator

如果您想自动将封闭组件添加到您的项目,请运行以下命令

npx @chakra-ui/cli snippet add checkbox-card

以下是如何使用它

<CheckboxCard label="Checkbox Card" />

属性

属性默认值类型
colorPalette 'gray'
'gray' | 'red' | 'orange' | 'yellow' | 'green' | 'teal' | 'blue' | 'cyan' | 'purple' | 'pink'

组件的颜色调色板

size 'md'
'sm' | 'md' | 'lg'

组件的尺寸

variant 'outline'
'surface' | 'subtle' | 'outline' | 'solid'

组件的样式变体

align 'start'
'start' | 'end' | 'center'

组件的对齐方式

orientation 'horizontal'
'vertical' | 'horizontal'

组件的方向

justify
'start' | 'end' | 'center'

组件的对齐方式

as
React.ElementType

要渲染的底层元素。

asChild
布尔值

使用所提供的子元素作为默认渲染元素,并结合其属性和行为。

更多详情,请阅读我们的 组合 指南。
unstyled
布尔值

是否移除组件样式。

上一页

卡片

下一页

复选框