Meter

data-display

Visual meter bar with range-based color coding (low/medium/high/overflow). Token-driven colors, sizing, and thresholds. ARIA meter role.

Import

typescript
import { Meter } from "packages/ui/src";

Props

MeterProps

PropTypeRequired
valuenumberYes
minnumberNo
maxnumberNo
lownumberNo
highnumberNo
labelstringNo
showValuebooleanNo

Examples

Meter

Visual meter bar with range-based color coding for displaying measurable values.

Range Colors

Low (red)15/100
Medium (amber)50/100
High (green)85/100

Storage Usage

Documents2/10
Media7/10
Backups9/10

No Labels

Metadata

Component Metadata
Familydata-display
FrameworksNext.js, Astro/EmDash
DescriptionVisual meter bar with range-based color coding (low/medium/high/overflow). Token-driven colors, sizing, and thresholds. ARIA meter role.
PropsMeterProps (value: number, min?: number, max?: number, low?: number, high?: number, label?: string, showValue?: boolean)
Stateslow-range, medium-range, high-range, overflow, with-label, with-value
A11y
  • Track has role=meter with aria-valuenow, aria-valuemin, aria-valuemax
  • aria-label from label prop
Responsive
  • Full width by default
  • Height from token
Motion
  • Width transition (0.3s ease)
Token Dependencies
  • components.meter.height
  • components.meter.borderRadius
  • components.meter.trackBg
  • components.meter.fillLow
  • components.meter.fillMedium
  • components.meter.fillHigh
  • components.meter.fillOverflow
  • components.meter.labelColor
  • components.meter.labelFontSize
  • components.meter.valueColor
  • components.meter.valueFontSize
  • components.meter.gap
Content Slotslabel (string), value display
CMS Bindings
  • Value from CMS metric
  • Thresholds from CMS config
Test Cases
  • Renders meter track
  • Has role=meter
  • Shows label
  • Shows value text
  • Low range has low class
  • High range has high class
  • Fill width reflects value
  • Passes className through