Bullet Chart

A value against a target over qualitative ranges, one compact row per measure on a shared scale — a dashboard-friendly replacement for a row of gauges. Drawn as SVG by the component, rendered on the server and themed by the design tokens.

Part of @tectra-ng/charts (npm install @tectra-ng/charts, also included in tectra-ng).

Features10APIThemingAccessibility

Basic

Each row has the ranges as shaded bands (the first, the darkest, is "poor"), the value as a bar and the target as a mark. ranges and max are shared by every row.

Arrow keys move between values
Quarter goals. Bullet chart, 1 series, 4 values
CategoryValueTarget
Revenue78%90%
New clients64%70%
Retention93%88%
NPS51%75%

Own ranges

ranges on an item override the shared ones, so each measure keeps its own thresholds on the common scale.

Arrow keys move between values
Response times, ms. Bullet chart, 1 series, 3 values
CategoryValueTarget
Search320400
Checkout610500
Profile180250

Colors

color on an item paints its value bar — for example by status.

Arrow keys move between values
Service levels. Bullet chart, 1 series, 3 values
CategoryValueTarget
Uptime9699
Latency7280
Errors3860

Events

barClick reports the clicked row with its value and target.

Arrow keys move between values
Click a part. Bullet chart, 1 series, 2 values
CategoryValueTarget
Sales6470
Leads8275

Click a row.

Loading and empty

loading keeps the size with a skeleton; empty items show "No data".

No data

Live

New items redraw in place — value bars slide to their new length.

Arrow keys move between values
Shuffled data. Bullet chart, 1 series, 3 values
CategoryValueTarget
North2070
South4360
East7180

Accessibility

Tab to the chart: ↑/↓ walk the rows and each one is announced with its value and target; Home / End jump to the ends. Screen readers also get a summary and a hidden table.

Arrow keys move between values
Team goals. Bullet chart, 1 series, 2 values
CategoryValueTarget
Velocity6270
Quality8175

Design tokens

dt sets the row height, the range shades, the bar and target size and colour of one chart.

Arrow keys move between values
Survey scores. Bullet chart, 1 series, 2 values
CategoryValueTarget
Clarity7480
Speed5865

Pass through

pt reaches the parts — range, bar, target, grid, axis, plot, tooltip and more.

Arrow keys move between values
Plan versus fact. Bullet chart, 1 series, 2 values
CategoryValueTarget
Plan A6675
Plan B8880

Unstyled

unstyled removes the tectra styles: no tokens, no rounding, no motion — the geometry, the tooltip and the keyboard stay, ready for your own CSS.

Arrow keys move between values
Unstyled chart. Bullet chart, 1 series, 2 values
CategoryValueTarget
A5565
B8070