Bullet chart

Stephen Few bullet — qualitative bands + value bar + target marker. Self-contained SVG, does not need ChartRoot.

Primitive: ChartBullet· Standalone (no ChartRoot needed)

Interactive demo

Usage

import { ChartBullet } from '@ramtt/charts'

<ChartBullet
  label="Revenue"
  value={72}
  target={80}
  ranges={[
    { to: 50, color: 'var(--n300)' },
    { to: 75, color: 'var(--n400)' },
    { to: 100, color: 'var(--n500)' },
  ]}
  unit="%"
/>

Props

PropTypeDefaultDescription
value*numberCurrent value (the main bar)
ranges*BulletRange[]Qualitative bands (poor → excellent)
targetnumberTarget marker position
comparenumberComparative marker (e.g. previous period) — diamond
labelstringLeft label
unitstringUnit suffix for value display
widthnumber300Total width in px
heightnumber40Total height in px