This component no longer exists. It was in ondo-ui’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-09 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
meter-ring
ondo-ui/meter-ringRemovedComponent
A radial reading of a bounded value, such as a score, a utilization, or a fill level.
Install it
npx shadcn@latest add https://ui.ondo.dou.so/r/meter-ring.jsonSource
1"use client"23import * as React from "react"4import { Meter as MeterPrimitive } from "@base-ui/react/meter"5import { cva, type VariantProps } from "class-variance-authority"67import { cn } from "@/lib/utils"89const meterRingVariants = cva(10 "group/meter-ring flex w-fit flex-col items-center gap-1.5 text-center transition-[--meter-ring-fraction] duration-500 ease-out",11 {12 variants: {13 size: {14 sm: "text-xs [--meter-ring-size:--spacing(14)] [--meter-ring-thickness:--spacing(1.5)]",15 default:16 "text-sm [--meter-ring-size:--spacing(20)] [--meter-ring-thickness:--spacing(2)]",17 lg: "text-base [--meter-ring-size:--spacing(28)] [--meter-ring-thickness:--spacing(2.5)]",18 },19 variant: {20 default: "text-primary",21 info: "text-info",22 success: "text-success",23 warning: "text-warning",24 destructive: "text-destructive",25 },26 },27 defaultVariants: {28 size: "default",29 variant: "default",30 },31 }32)3334function MeterRingProperty() {35 return (36 <style href="ondo-ui-meter-ring-fraction" precedence="default">37 {38 "@property --meter-ring-fraction{syntax:'<number>';inherits:true;initial-value:0}"39 }40 </style>41 )42}4344function MeterRing({45 className,46 size = "default",47 variant = "default",48 value,49 min = 0,50 max = 100,51 formatValue,52 children,53 ...props54}: MeterPrimitive.Root.Props &55 VariantProps<typeof meterRingVariants> & {56 formatValue?: (formattedValue: string, value: number) => React.ReactNode57 }) {58 const span = max - min || 159 const fraction = Math.min(1, Math.max(0, (value - min) / span))6061 return (62 <MeterPrimitive.Root63 value={value}64 min={min}65 max={max}66 data-slot="meter-ring"67 data-size={size}68 data-variant={variant}69 className={cn(meterRingVariants({ size, variant, className }))}70 style={{ "--meter-ring-fraction": fraction } as React.CSSProperties}71 {...props}72 >73 <MeterRingProperty />74 <MeterRingDial>75 <MeterRingValue>{formatValue}</MeterRingValue>76 </MeterRingDial>77 {children}78 </MeterPrimitive.Root>79 )80}8182function MeterRingDial({83 className,84 children,85 ...props86}: React.ComponentProps<"div">) {87 return (88 <div89 data-slot="meter-ring-dial"90 className={cn(91 "grid size-(--meter-ring-size) shrink-0 place-items-center *:col-start-1 *:row-start-1",92 className93 )}94 {...props}95 >96// … truncated
What it pulls in
npm packages
Other registry items
