Meter

A value inside a known range, such as storage used, battery left or a score, colored by which part of the range it is in.
Beta
Web
iOS
Android
@advui/core
Source
JSX
<Meter
  label="Battery"
  low={20}
  high={50}
  optimum={100}
/>
size

Installation

pnpm
pnpm add @advui/core
npm
npm install @advui/core

Usage

import { Meter } from '@advui/core'

<Meter value={7.2} max={10} high={8} optimum={0} label="Storage" valueText="7.2 of 10 GB used" />

Examples

Basic

Storage7.2 of 10 GB

Colored by range

Headphones82%
Keyboard41%
Mouse12%

API reference

Meter

PropTypeDefaultDescription
valuenumber—The measured value, clamped between `min` and `max`.
minnumber0Lowest value.
maxnumber100Highest value.
lownumber—Values below it are in the low range.
highnumber—Values above it are in the high range.
optimumnumber—The best value. Its range is `success`, the middle next to it `warning` and the far end `error`. Defaults to the middle of the range when `low` or `high` is given.
tone'primary' | 'success' | 'warning' | 'error'—Fill color, in place of the one the ranges give. `primary` without ranges.
labelstring—Accessible name.
valueTextstring—What screen readers read for the value, such as “7.2 of 10 GB used”. Without it, web reads the number and iOS and Android the percentage.
size'sm' | 'md' | 'lg''md'4, 8 or 12px tall.

Accessibility

  • role="meter" with aria-valuemin, aria-valuemax and aria-valuenow; valueText becomes aria-valuetext.
  • Use Meter for a measurement and Progress for work that finishes: a meter is not read as busy or loading.
  • Color is not the only sign of a bad value: give it in valueText or in visible text too.

Platform notes

iOS
Sends the percentage as its value when valueText is not given.
Android
TalkBack reads a value only as text, so the meter always sends aria-valuetext: valueText, or the percentage.
Since v0.14.0Last updated Nov 2, 2026Edit this page on GitHub