bq-status implements the dot-and-label pattern. If you need a status with an icon, build that as a separate composition instead of expecting it from this component.When to use
Use statuses when
- You need to communicate the state of an item, task, or process
- A short label and visual marker help users scan dense interfaces faster
- Status meaning should stay visible in lists, tables, cards, or detail views
- The state helps users decide what to do next
Do not use statuses when
- The state is already obvious without an extra indicator
- The component would repeat nearby text without adding meaning
- Screen space is too limited for a readable label
- The UI would become noisy from too many competing statuses
Patterns
There are two common status patterns, even though the shipped component focuses on one of them.Dot status
A dot status pairs a colored circular indicator with a short text label. This is the pattern implemented by
bq-status.Icon status
An icon status uses a symbol instead of a plain dot when the message needs stronger visual emphasis or a more specific cue.
Anatomy
| Part | Element | Description |
|---|---|---|
| 1 | Icon | The visual status marker that signals the selected status type |
| 2 | Label | The text that describes the status meaning in more detail |
Design guidelines
Use statuses consistently so people can recognize state changes without pausing to decode the UI.Write the label first
Start with the text. The label should still make sense on its own, because the indicator is only a supporting cue.
Keep the indicator supportive
Treat the indicator as a quick visual signal, not the whole message. If you need a more specific symbol, build an icon status as a separate composition.
Status labels work best when they are short and stable. Reuse the same wording and color meaning across the product so states remain predictable.
Usage
Use the default neutral status when the message should stay present without strong emphasis.Options
Use thetype prop to communicate the nature of the status message. Each value maps to a distinct color so states are recognizable at a glance.
Alert
Usetype="alert" when the message needs immediate attention.
Danger
Usetype="danger" when the state signals risk, failure, or a blocked condition.
Info
Usetype="info" when the status provides neutral or supporting context.
Success
Usetype="success" when the state confirms a positive outcome.
Best practices
DoUse clear labels so the meaning stays understandable even without color.
Don’tDo not rely on the colored dot alone to communicate the state.
DoKeep status wording and color meaning consistent across the product.
Don’tDo not assign different meanings to the same status type in different screens.
DoUse one status per item when possible so the message stays easy to scan.
Don’tDo not stack multiple competing statuses around the same piece of content.
DoPlace the status close to the item it describes so the relationship is obvious.
Don’tDo not separate the status so far from the content that users have to infer what it belongs to.
Accessibility
bq-statusunconditionally renders withrole="status"on its wrapper element, so assistive technologies always treat it as a live status message regardless of thetypeprop.- The text label is required for meaning. The colored dot is supportive, not sufficient on its own.
- Keep labels short and specific so status changes remain easy to understand when announced.
- This component is informational, not interactive. If users need to act on the message, pair it with a separate button or link.
- Check contrast and surrounding layout so the label remains readable in tables, cards, and dense data views.
API reference
Properties
| Property | Attribute | Description | Type | Default |
|---|---|---|---|---|
type | type | Defines the type of status to display | 'alert' | 'danger' | 'info' | 'neutral' | 'success' | 'neutral' |
Slots
| Slot | Description |
|---|---|
| (default) | The text label content of the status component |
Shadow parts
| Part | Description |
|---|---|
base | The internal wrapper of the status component |
circle | The colored circle that marks the status type |
text | The container that holds the text label |
CSS custom properties
| Variable | Description | Default |
|---|---|---|
--bq-status-circle--size | Status circle size | 12px |
Resources
Interactive playground
Explore all status variants in Storybook
Source code
View the component source on GitHub