ChartsAlea Pro
BulletChart
Actual against a target over poor, fair and good ranges: many KPIs in little space.
import { BulletChart } from '@alea/pro';
Examples
KPIs against targets
The bar is the actual, the line the target, the shades poor, fair and good.
Revenue ($k)270
New customers168
NPS47
Tokens
The design tokens this component reads, with their value in the current theme. Override any of them to restyle it.
Color
--alea-focus…--alea-surface-raised…--alea-text…--alea-text-muted…
Space
--alea-space-3…
Type
--alea-font-size-md…--alea-font-weight-semibold…
Motion
--alea-motion-duration-slower…--alea-motion-spring…
Component
--alea-chart-1…
Props
BulletChart props
Actual against a target, over qualitative ranges (Stephen Few): many KPIs in little space.
| Prop | Type | Default | Description |
|---|---|---|---|
datarequired | { label: string; value: number; target?: number | undefined; ranges?: number[] | undefined; max?: number | undefined; }[] | - | One row per measure: the actual value, a target, and ranges (poor, fair, good) as upper bounds. |
className | string | - | Extra class names for the root element. |
description | ReactNode | - | One sentence on what the data shows; read before the chart. |
isLoading | boolean | - | Shows a shimmering placeholder while data loads. |
showTable | boolean | true | Shows the table toggle. Default true. |
title | ReactNode | - | The title shown above it and read by screen readers. |
valueFormat | ((v: number) => string) | - | Formats values (axis, tooltip, table). |
Specs
Generated from the source: the variants in the types, the states and tokens in the CSS, and the motion patterns that apply. The grids render the real component in both themes; the numbers are measured from the page.
- States
- Keyboard focusPressed (CSS)
- Dark and light
- Every color comes from theme tokens, so it follows data-theme (and presets like Graphite) on the page or any wrapper. Contrast is checked in both themes.
- Styling hooks
.alea-bullets.alea-bullet.alea-bullet-label.alea-bullet-track.alea-bullet-range.alea-bullet-value.alea-bullet-target.alea-bullet-num
Accessibility
- The chart is a figure named by its title and described by its description; the picture has a text summary.
- Tab to the chart, then arrow keys move through the data and each value is announced; Escape leaves.
- The table toggle shows the same data as a real table for everyone who can't use the picture.
Keyboard
| Key | Does |
|---|---|
| Tab | Focuses the chart |
| Left or Right arrow | Previous or next value |
| Home or End | First or last value |
| Escape | Clears the selection |
Do and don't
Do
- Use it for many KPIs in a list or a dashboard.
- Name the ranges in the description so the colors aren't the only clue.
Don't
- Don't use it without a target: a progress bar is simpler.