Progress
progressuiLinear progress bar — determinate or indeterminate. Two visual densities (slim, default), four tones, and an optional inline percentage label.
Installation
$pnpm dlx shadcn@latest add https://uipkge.dev/r/react/progress.json$npx shadcn@latest add https://uipkge.dev/r/react/progress.json$yarn dlx shadcn@latest add https://uipkge.dev/r/react/progress.json$bunx shadcn@latest add https://uipkge.dev/r/react/progress.jsonNamed registry:
npx shadcn@latest add @uipkge-react/progressInstalls to:components/ui/progress/Examples
Loading interactive previews…
Loading interactive previews…
npm dependencies
Used by
ad-spend-roi-dashboardagent-memory-inspectorai-agent-orchestratorai-crm-pipeline-dashboardai-saas-command-centerairbnb-host-earningsassignment-submission-dropzonebento-01bento-asymmetric-gridbilling-accountbilling-usage-centercart-drawercash-flow-treasury-dashboardcdc-replication-streamcloud-backup-schedulecold-chain-temp-monitorcolumn-profiling-summarycoming-sooncommute-reimbursement-claimscompensation-band-benchmarkingcompliance-soc2-readinesscourse-curriculum-outlinecustomer-journey-mapcustomer-reviewsdata-explorerdata-mesh-domain-catalogdata-product-carddata-quality-metricsdata-retention-policy-managerdemo-guided-tourdispatch-assignment-boardemployee-pulse-survey-resultsetl-pipeline-dagexit-interview-surveyfeature-flags-managerfeatures-2x2-spotlightfile-managerfine-tuning-job-monitorflashcard-study-deckhabit-streak-trackerhow-it-works-scroll-stepperinfluencer-campaign-cardinsurance-eligibility-checkerkafka-stream-monitorlakehouse-table-optimizerleaflet-neighborhood-walkscore-cardlesson-video-playerllm-eval-benchmark-matrixloyalty-rewards-tier-hubmodel-token-cost-optimizerneighborhood-walkscore-cardonboarding-checklistparquet-metadata-inspectorperformance-review-matrixpersonal-finance-budgetpodcast-audio-playerpomodoro-focus-timerprogress-itemquiz-assessment-runnerrag-pipeline-visualizerrate-limiting-configratings-review-badgesratings-star-summaryrecruitment-candidate-pipelinereferral-program-widgetschema-drift-alert-boardseo-audit-checklistskill-assessment-radarspark-job-stage-visualizersticky-ctasticky-cta-reading-progressstream-processing-flink-topologysubpoena-legal-hold-managersubscription-churn-analyticssynthetic-data-generatortax-summary-reporttime-off-portaltraining-compliance-trackerusage-metering-dashboarduser-profile-pagevector-embeddings-inspectorvideo-playlist-sidebarvirtual-card-managervitals-tracker-chartvulnerability-scanner-reportwaitlist-referral-positionwarehouse-inventory-grid
Files installed (2)
components/ui/progress/Progress.tsx1.4 kB
'use client' import * as React from 'react' import * as ProgressPrimitive from '@radix-ui/react-progress' import { cn } from '@/lib/utils' const Progress = React.forwardRef< React.ElementRef<typeof ProgressPrimitive.Root>, React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> >(({ className, value, ...props }, ref) => { // Clamp so out-of-range value cannot push the indicator past the track. const clamped = Math.min(100, Math.max(0, value ?? 0)) // A progressbar needs an accessible name; fall back to a generic one so the // control is never announced as unlabelled when a caller forgets to name it. const labelled = props['aria-label'] !== undefined || props['aria-labelledby'] !== undefined return ( <ProgressPrimitive.Root ref={ref} data-uipkge="" data-slot="progress" aria-label={labelled ? undefined : 'Progress'} value={clamped} className={cn('bg-primary/20 relative h-2 w-full overflow-hidden rounded-full', className)} {...props} > <ProgressPrimitive.Indicator data-uipkge="" data-slot="progress-indicator" className="bg-primary h-full w-full flex-1 transition-transform duration-500 ease-out motion-reduce:transition-none" style={{ transform: `translateX(-${100 - clamped}%)` }} /> </ProgressPrimitive.Root> ) }) Progress.displayName = 'Progress' export { Progress }components/ui/progress/index.ts0 kB
export { Progress } from './Progress'
Raw manifest:https://uipkge.dev/r/react/progress.json