alpha
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 '@react-spectrum/text' ;
import CheckmarkCircle from '@spectrum-icons/workflow/CheckmarkCircle' ;
< Badge variant = "positive" >
< CheckmarkCircle / >
< Text > Icon + Label< / Text >
< / Badge >
import { Text } from '@react-spectrum/text' ;
import CheckmarkCircle from '@spectrum-icons/workflow/CheckmarkCircle' ;
< Badge variant = "positive" >
< CheckmarkCircle / >
< Text > Icon + Label< / Text >
< / Badge >
import { Text } from '@react-spectrum/text' ;
import CheckmarkCircle from '@spectrum-icons/workflow/CheckmarkCircle' ;
< Badge variant = "positive" >
< CheckmarkCircle / >
< Text >
Icon + Label
< / Text >
< / Badge >
If a visible label isn't specified, an aria-label
must be provided 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 Default 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 Default 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 Default 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 Default 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 '@react-spectrum/layout' ;
< 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 '@react-spectrum/layout' ;
< 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 '@react-spectrum/layout' ;
< 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 '@react-spectrum/layout' ;
< 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 '@react-spectrum/layout' ;
< 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 '@react-spectrum/layout' ;
< 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 >