Base Progress Glass
shadcn-glass-ui/base-progress-glassFreeComponent
Base progress bar component used as foundation for:
Install it
npx shadcn@latest add https://raw.githubusercontent.com/artyhoo/shadcn-glass-ui-library/main/public/r/base-progress-glass.jsonSource
1/**2 * BaseProgressGlass Component3 *4 * Base progress bar component used as foundation for:5 * - ProgressGlass (standard progress bar)6 * - RainbowProgressGlass (gradient progress bar)7 *8 * Features:9 * - Theme-aware styling10 * - Percentage calculation11 * - Accessible (ARIA progressbar)12 * - Customizable through children render prop13 */1415import { forwardRef, type ReactNode } from 'react';16import { cn } from '@/lib/utils';17import '@/glass-theme.css';1819// ========================================20// PROPS INTERFACE21// ========================================2223export interface BaseProgressGlassProps24 extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {25 readonly value?: number;26 readonly max?: number;27 readonly children?: ReactNode | ((percentage: number) => ReactNode);28}2930// ========================================31// COMPONENT32// ========================================3334export const BaseProgressGlass = forwardRef<HTMLDivElement, BaseProgressGlassProps>(35 ({ value = 0, max = 100, className, children, ...props }, ref) => {36 const percentage = Math.min(100, Math.max(0, (value / max) * 100));3738 return (39 <div40 ref={ref}41 className={cn(42 'relative h-2 w-full overflow-hidden rounded-full',43 'bg-white/5 backdrop-blur-sm',44 className45 )}46 role="progressbar"47 aria-valuenow={value}48 aria-valuemin={0}49 aria-valuemax={max}50 aria-valuetext={`${Math.round(percentage)}%`}51 {...props}52 >53 {typeof children === 'function'54 ? children(percentage)55 : children || (56 <div57 className="h-full transition-all duration-300 ease-out"58 style={{59 width: `${percentage}%`,60 background: 'var(--progress-bar-bg, linear-gradient(90deg, #a855f7, #ec4899))',61 }}62 />63 )}64 </div>65 );66 }67);6869BaseProgressGlass.displayName = 'BaseProgressGlass';
More from shadcn-glass-ui
All 76 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Alert Glassalert-glass | shadcn-glass-ui | Components | Free | no deps | |
| Animated Background Glassanimated-background-glass | shadcn-glass-ui | Components | Free | no deps | |
| Avatar Glassavatar-glass | shadcn-glass-ui | Components | Free | no deps | |
| Badge Glassbadge-glass | shadcn-glass-ui | Components | Free | no deps | |
| Button Glassbutton-glass | shadcn-glass-ui | Components | Free | no deps | |
| Card Glasscard-glass | shadcn-glass-ui | Components | Free | no deps | |
| Checkbox Glasscheckbox-glass | shadcn-glass-ui | Components | Free | no deps | |
| Circular Progress Glasscircular-progress-glass | shadcn-glass-ui | Components | Free | no deps |
