Components
A HeroUI meter for visualizing a value within a range — storage, usage, progress toward a goal. Built on react-aria with an accessible label and formatted output. Supports accent/success/warning/danger colors, sm/md/lg sizes, an optional label, custom min/max, currency and percent formatting, and threshold-driven colors.
Loading preview...
"use client"
import { Meter } from "@/components/ui/heroui-meter"
import { Label } from "@heroui/react"
// Pick the fill color from the current level: calm under 60%, warn up to 85%,
// danger above. A common "health bar" pattern for resource usage.
function levelColor(value: number): "success" | "warning" | "danger" {
if (value >= 85) return "danger"
if (value >= 60) return "warning"
return "success"
}
function UsageMeter({ label, value }: { label: string; value: number }) {
return (
<Meter color={levelColor(value)} value={value}>
<Label>{label}</Label>
<Meter.Output />
<Meter.Track>
<Meter.Fill />
</Meter.Track>
</Meter>
)
}
export default function ThresholdColors() {
return (
<div className="flex w-full items-center justify-center p-10">
<div className="flex w-64 flex-col gap-6">
<UsageMeter label="CPU" value={35} />
<UsageMeter label="Memory" value={72} />
<UsageMeter label="Disk" value={94} />
</div>
</div>
)
}
Loading preview...
Loading preview...
Loading preview...
Loading preview...
Loading preview...
Loading preview...