Badge Badges are used for showing a small amount of color-categorized metadata, ideal for getting a user's attention.
< Badge variant = "positive" > Licensed< / Badge >
< Badge variant = "positive" > Licensed< / Badge >
< Badge variant = "positive" > Licensed < / Badge >
Badges can have a label, an icon, or both. An icon is provided by passing an icon component as a child to the Badge. A visible label can be provided by passing a string or a Text component as a child, depending on whether the Badge has an accompanying icon.
import { Text } from '@adobe/react-spectrum' ; import CheckmarkCircle from '@spectrum-icons/workflow/CheckmarkCircle' ; < Badge variant = "positive" > < CheckmarkCircle aria-label = "Done" / > < Text > Icon + Label< / Text > < / Badge >
import { Text } from '@adobe/react-spectrum' ; import CheckmarkCircle from '@spectrum-icons/workflow/CheckmarkCircle' ; < Badge variant = "positive" > < CheckmarkCircle aria-label = "Done" / > < Text > Icon + Label< / Text > < / Badge >
import { Text } from '@adobe/react-spectrum' ; import CheckmarkCircle from '@spectrum-icons/workflow/CheckmarkCircle' ; < Badge variant = "positive" > < CheckmarkCircle aria-label = "Done" / > < Text > Icon + Label < / Text > < / Badge >
If a visible label isn't specified, an aria-label
must be provided to the icon for accessibility.
To internationalize a Badge, a localized string should be set as the child content of the Badge. For languages that are read right-to-left (e.g. Hebrew and Arabic), the Badge is automatically flipped.
Name Type Description children
ReactNode
The content to display in the badge. variant
'neutral' | 'info' | 'positive' | 'negative' | 'indigo' | 'yellow' | 'magenta' | 'fuchsia' | 'purple' | 'seafoam'
The variant changes the background color of the badge. When badge has a semantic meaning, they should use the variant for semantic colors.
LayoutName Type Description flex
Responsive < string | number | boolean >
When used in a flex layout, specifies how the element will grow or shrink to fit the space available. See MDN . flexGrow
Responsive < number >
When used in a flex layout, specifies how the element will grow to fit the space available. See MDN . flexShrink
Responsive < number >
When used in a flex layout, specifies how the element will shrink to fit the space available. See MDN . flexBasis
Responsive < number | string >
When used in a flex layout, specifies the initial main size of the element. See MDN . alignSelf
Responsive < 'auto' | 'normal' | 'start' | 'end' | 'center' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'stretch' >
Overrides the alignItems
property of a flex or grid container. See MDN . justifySelf
Responsive < 'auto' | 'normal' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'center' | 'left' | 'right' | 'stretch' >
Specifies how the element is justified inside a flex or grid container. See MDN . order
Responsive < number >
The layout order for the element within a flex or grid container. See MDN . gridArea
Responsive < string >
When used in a grid layout, specifies the named grid area that the element should be placed in within the grid. See MDN . gridColumn
Responsive < string >
When used in a grid layout, specifies the column the element should be placed in within the grid. See MDN . gridRow
Responsive < string >
When used in a grid layout, specifies the row the element should be placed in within the grid. See MDN . gridColumnStart
Responsive < string >
When used in a grid layout, specifies the starting column to span within the grid. See MDN . gridColumnEnd
Responsive < string >
When used in a grid layout, specifies the ending column to span within the grid. See MDN . gridRowStart
Responsive < string >
When used in a grid layout, specifies the starting row to span within the grid. See MDN . gridRowEnd
Responsive < string >
When used in a grid layout, specifies the ending row to span within the grid. See MDN .
Spacing Sizing Positioning AccessibilityName Type Description id
string
The element's unique identifier. See MDN . aria-label
string
Defines a string value that labels the current element. aria-labelledby
string
Identifies the element (or elements) that labels the current element. aria-describedby
string
Identifies the element (or elements) that describes the object. aria-details
string
Identifies the element (or elements) that provide a detailed, extended description for the object.
AdvancedName Type Description UNSAFE_className
string
Sets the CSS className for the element. Only use as a last resort . Use style props instead. UNSAFE_style
CSSProperties
Sets inline style for the element. Only use as a last resort . Use style props instead.
View guidelines
When badges have a semantic meaning, they should use semantic colors. Use the appropriate color to indicate status as follows.
import { Flex } from '@adobe/react-spectrum' ; < Flex direction = "column" gap = { 8 } > < Badge variant = "positive" > Green: Approved, Complete, Success, New, Purchased, Licensed < / Badge > < Badge variant = "info" > Blue: Active, In Use, Live, Published< / Badge > < Badge variant = "negative" > Red: Error, Alert, Rejected, Failed< / Badge > < Badge variant = "neutral" > Gray: Archived, Deleted, Paused, Draft, Not Started, Ended < / Badge > < / Flex >
import { Flex } from '@adobe/react-spectrum' ; < Flex direction = "column" gap = { 8 } > < Badge variant = "positive" > Green: Approved, Complete, Success, New, Purchased, Licensed < / Badge > < Badge variant = "info" > Blue: Active, In Use, Live, Published < / Badge > < Badge variant = "negative" > Red: Error, Alert, Rejected, Failed < / Badge > < Badge variant = "neutral" > Gray: Archived, Deleted, Paused, Draft, Not Started, Ended < / Badge > < / Flex >
import { Flex } from '@adobe/react-spectrum' ; < Flex direction = "column" gap = { 8 } > < Badge variant = "positive" > Green: Approved, Complete, Success, New, Purchased, Licensed < / Badge > < Badge variant = "info" > Blue: Active, In Use, Live, Published < / Badge > < Badge variant = "negative" > Red: Error, Alert, Rejected, Failed < / Badge > < Badge variant = "neutral" > Gray: Archived, Deleted, Paused, Draft, Not Started, Ended < / Badge > < / Flex >
When badges are used to color code categories, they use label colors. The ideal usage for these is when there are 8 or fewer categories being color coded.
import { Flex } from '@adobe/react-spectrum' ; < Flex direction = "column" gap = { 8 } > < Badge variant = "seafoam" > Seafoam< / Badge > < Badge variant = "indigo" > Indigo< / Badge > < Badge variant = "purple" > Purple< / Badge > < Badge variant = "fuchsia" > Fuchsia< / Badge > < Badge variant = "magenta" > Magenta< / Badge > < Badge variant = "yellow" > Yellow< / Badge > < / Flex >
import { Flex } from '@adobe/react-spectrum' ; < Flex direction = "column" gap = { 8 } > < Badge variant = "seafoam" > Seafoam< / Badge > < Badge variant = "indigo" > Indigo< / Badge > < Badge variant = "purple" > Purple< / Badge > < Badge variant = "fuchsia" > Fuchsia< / Badge > < Badge variant = "magenta" > Magenta< / Badge > < Badge variant = "yellow" > Yellow< / Badge > < / Flex >
import { Flex } from '@adobe/react-spectrum' ; < Flex direction = "column" gap = { 8 } > < Badge variant = "seafoam" > Seafoam < / Badge > < Badge variant = "indigo" > Indigo < / Badge > < Badge variant = "purple" > Purple < / Badge > < Badge variant = "fuchsia" > Fuchsia < / Badge > < Badge variant = "magenta" > Magenta < / Badge > < Badge variant = "yellow" > Yellow < / Badge > < / Flex >