Ballmac UI home

Usage Meter

A plan-limit meter as a bar or ring, with normal, near-limit and over-limit states shown by icon and words, optional stacked segments and a meter role.

Storage

66.3/ 100 GB

66% used· Resets Oct 1
  • Images31.4 GB
  • Documents18.2 GB
  • Video12.6 GB
  • Other4.1 GB

Installation

$ pnpm dlx shadcn@latest add @ballmac/usage-meter

Usage

import { UsageMeter } from "@/components/ballmac/usage-meter"

The full example is in the Code tab above.

Examples

Warning, over and ring

API requests

86/ 100 k

86% used, nearing the limit· Nearing the limit

Team seats

12/ 10

Over limit· Add seats to invite more

Automations

38/ 100 runs

38% used· Plenty left

API reference

PropTypeDefault
label*

What is being measured, for example "Storage".

string—
used

Amount used. Ignored when `segments` is given (then it is their sum).

number—
limit*

The plan limit.

number—
unit

Unit shown after numbers, for example "GB" or "requests".

string—
segments

Break the total into parts, shown as a stacked bar and a legend.

UsageSegment[]—
warnAt

Percent of the limit at which the meter turns to a warning.

number80
variant

Shape of the meter.

"bar" | "ring""bar"
note

Text under the numbers, for example "Resets on Oct 1".

React.ReactNode—
action

Content on the right of the header, such as an Upgrade button.

React.ReactNode—
locale

Locale for number formatting. Fixed by default so server and browser match.

string—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
Screen readersrole=meter with aria-valuetext such as '86 of 100 k. 86% used, nearing the limit.'
ColorState is conveyed by icon and text as well as color
Reduced motionFills appear at their final size

Use with AI

label, used (or segments), limit, unit. warnAt sets the warning percent. variant bar | ring. Exposes role=meter with a readable value. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Usage Meter (@ballmac/usage-meter) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Storage, seats, API calls and other quotas
  • Plan pages that nudge upgrades

Not for

  • Task progress; use progress
  • Multiple steps; use progress-steps

Registry JSON: https://ui.ballmac.com/r/usage-meter.json

Credits

Free to use in personal and commercial projects.