Badge 徽章组件 #

基本用法 #

jsx
import { Badge } from '@chakra-ui/react'

function Example() {
  return <Badge>默认徽章</Badge>
}

徽章变体 #

jsx
<Badge>默认</Badge>
<Badge variant="subtle">柔和</Badge>
<Badge variant="solid">实心</Badge>
<Badge variant="outline">轮廓</Badge>

徽章颜色 #

jsx
<Badge colorScheme="green">成功</Badge>
<Badge colorScheme="red">错误</Badge>
<Badge colorScheme="yellow">警告</Badge>
<Badge colorScheme="blue">信息</Badge>
<Badge colorScheme="purple">紫色</Badge>
<Badge colorScheme="gray">灰色</Badge>

徽章尺寸 #

jsx
<Badge fontSize="xs">超小</Badge>
<Badge fontSize="sm">小</Badge>
<Badge fontSize="md">中等</Badge>

实用示例 #

状态徽章 #

jsx
function StatusBadge({ status }) {
  const statusConfig = {
    active: { color: 'green', text: '活跃' },
    inactive: { color: 'gray', text: '未激活' },
    pending: { color: 'yellow', text: '待审核' },
    blocked: { color: 'red', text: '已禁用' },
  }

  const config = statusConfig[status]

  return (
    <Badge colorScheme={config.color} variant="subtle">
      {config.text}
    </Badge>
  )
}

计数徽章 #

jsx
function NotificationBadge({ count }) {
  return (
    <Box position="relative">
      <BellIcon boxSize={6} />
      {count > 0 && (
        <Badge
          position="absolute"
          top="-8px"
          right="-8px"
          colorScheme="red"
          borderRadius="full"
          minW="18px"
          textAlign="center"
        >
          {count > 99 ? '99+' : count}
        </Badge>
      )}
    </Box>
  )
}

标签列表 #

jsx
function TagList({ tags }) {
  return (
    <HStack spacing={2}>
      {tags.map((tag) => (
        <Badge key={tag} colorScheme="blue" variant="outline">
          {tag}
        </Badge>
      ))}
    </HStack>
  )
}

Badge 属性速查表 #

属性 说明
variant 变体 subtle, solid, outline
colorScheme 颜色方案 green, red, blue…
fontSize 字体大小 xs, sm, md

下一步 #

现在你已经掌握了 Badge 组件,接下来学习 Tag 标签,了解如何使用标签组件!

最后更新:2026-03-28