usage-meter-02
dashboardblocks/usage-meter-02FreeComponent
dashboardblocks publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by dashboardblocks on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://dashboardblocks.com/r/usage-meter-02.jsonSource
1'use client'23import { AnimatedNumber } from '@/registry/components/dashboardblocks/animated-number'4import { Ring } from '@/registry/components/dashboardblocks/ring'5import {6 UsageMeterLimit,7 UsageMeterValue,8} from '@/registry/components/dashboardblocks/usage-meter'910import { Card, CardContent, CardTitle } from '@/components/ui/card'1112interface UsageMeter2Props {13 limit: number14 title: string15 unit: string16 used: number17}1819const exampleProps: UsageMeter2Props = {20 limit: 120,21 title: 'Storage',22 unit: 'GB',23 used: 78,24}2526const UsageMeter2 = (props: UsageMeter2Props) => {27 const { limit, title, unit, used } = props28 const percentage = (used / limit) * 10029 const isCritical = percentage >= 9530 const isWarning = percentage >= 803132 const ringColor = isCritical33 ? 'hsl(var(--destructive))'34 : isWarning35 ? 'hsl(38 92% 50%)'36 : 'var(--color-primary)'3738 return (39 <Card>40 <CardContent>41 <div className='flex items-center gap-6'>42 <Ring43 className='h-24 w-24'44 percentage={percentage}45 ringColor={ringColor}46 strokeWidth={10}47 >48 <AnimatedNumber49 className='text-lg font-bold'50 value={percentage}51 formatter={(value) => `${value.toLocaleString()}%`}52 />53 </Ring>54 <div className='space-y-1'>55 <CardTitle className='text-base font-medium'>{title}</CardTitle>56 <div className='flex items-baseline gap-1'>57 <UsageMeterValue>58 <AnimatedNumber59 value={used}60 formatter={(value) => value.toLocaleString()}61 />62 </UsageMeterValue>63 <UsageMeterLimit className='block'>64 of {limit.toLocaleString()} {unit} used65 </UsageMeterLimit>66 </div>67 <p className='text-sm text-muted-foreground'>68 <AnimatedNumber69 value={limit - used}70 formatter={(value) => value.toLocaleString()}71 />{' '}72 {unit} available73 </p>74 </div>75 </div>76 </CardContent>77 </Card>78 )79}8081export { UsageMeter2, exampleProps as usageMeter2ExampleProps, type UsageMeter2Props }
What it pulls in
Other registry items
Files it writes
More from dashboardblocks
All 36 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Activity Feedactivity-feed | dashboardblocks | Components | Free | 1 dep | |
| activity-feed-01activity-feed-01 | dashboardblocks | Components | Free | 1 dep | |
| activity-feed-02activity-feed-02 | dashboardblocks | Components | Free | 1 dep | |
| activity-feed-03activity-feed-03 | dashboardblocks | Components | Free | 1 dep | |
| activity-feed-04activity-feed-04 | dashboardblocks | Components | Free | 1 dep | |
| activity-feed-05activity-feed-05 | dashboardblocks | Components | Free | 1 dep | |
| Animated Numberanimated-number | dashboardblocks | Components | Free | no deps | |
| Animated Waveanimated-wave | dashboardblocks | Components | Free | no deps |
