Installation
via Shadcn cli
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/progress.json
Manually
import * as ProgressPrimitive from "@radix-ui/react-progress"
import * as React from "react"
import { cn } from "@/lib/utils"
const Progress = React.forwardRef<
React.ElementRef<typeof ProgressPrimitive.Root>,
React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>
>(({ className, value, ...props }, ref) => (
"relative h-4 w-full overflow-hidden rounded-base border-2 border-border bg-bw",
<ProgressPrimitive.Indicator
className="h-full w-full flex-1 border-r-2 border-border bg-main transition-all"
style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
</ProgressPrimitive.Root>
Progress.displayName = ProgressPrimitive.Root.displayName
Usage
import * as React from 'react'
import { Progress } from '@/components/ui/progress'
const [progress, setProgress] = React.useState(13);
const timer = setTimeout(() => setProgress(66), 500);
return () => clearTimeout(timer);
<Progress value={progress} className="w-[60%]" />
Edit this page