Skip to main content Home About the Design SystemRoadmap OverviewDesignersDevelopers OverviewColorGridIconographyInteractionsSpacingTypography Overview Global colorBox shadowTypographyBorderOpacitySpaceLengthIconBreakpointsMedia queries All elements Accordion Alert Announcement Audio player Avatar Back to top Badge Blockquote Breadcrumb Button Card Chip Code block Call to action Dialog Disclosure Footer Health index Icon Jump links Menu dropdown Navigation link Navigation (primary) Navigation (secondary) Navigation (vertical) Pagination PopoverPlanned Progress stepper Scheme toggle Site status Skeleton Skip link Spinner Statistic Subnavigation Surface Switch Table Tabs Tag Tile Timestamp Tooltip Video embed OverviewColor PalettesCustomizingDevelopers All PatternsAccordionAlertCall to ActionCardFilterFormLink with iconLogo wallSearch barSticky bannerSticky cardTabsTagTile All Personalization PatternsAnnouncement FundamentalsAccessibility toolsAssistive technologiesCI/CDContentContributorsDesignDevelopmentManual testingResourcesScreen readers Design/code status Release notes Get support

Badge

OverviewStyleGuidelinesCodeAccessibilityDemos
OverviewStatusWhen to useStatus checklistOverviewStatusWhen to useStatus checklist

Overview

A badge provides a small numeric count on a pill for labels, filters, or lists. Set state when the count carries severity:

  • neutral - Indicates generic information or a message with no severity.
  • danger - Indicates a danger state, like an error that is blocking a user from completing a task.
  • warning - Indicates a warning state, like a non-blocking error that might need to be fixed.
  • caution - Indicates an action or notice which should immediately draw the attention
  • info - Indicates helpful information or a message with very little to no severity.
  • success - Indicates a success state, like if a process was completed without errors.

It must not take focus or act as a control; it has no implicit ARIA role. Provide context in surrounding text. Avoid color-only meaning (WCAG 1.4.1). Use threshold with number for values like 999+.

import '@rhds/elements/rh-badge/rh-badge.js';
<rh-badge number="7">7</rh-badge>
import { Badge } from "@rhds/elements/react/rh-badge/rh-badge.js";

// NOTE: React 19+ does not require these wrapper imports.
// You can use the custom elements directly as-is.

export const Demo = () => (
  <Badge number="7">7</Badge>
);

Background severity: danger, warning, caution, neutral, success, or info. Defaults to neutral.

Legacy values are normalized: moderatewarning, importantcaution, criticaldanger, noteinfo.

Numeric count rendered in the badge. With threshold, values above the threshold display as threshold+. For text-only labels without a count, use rh-tag instead.

Upper bound for number; when number is greater, the badge shows threshold+.

View source on GitHub

Status

When to use

  • When you need to reflect counts like number of objects, events, or unread items
Two badges; from left to right, one badge has a dark gray background with a white counter number and the other badge has a purple background with a white counter number.

Status checklist

© 2026 Red Hat Deploys by Netlify