FeedbackNew
Glass Progress
A glass track with a fill that slides to its value, or sweeps when the length is unknown.
pnpm dlx shadcn@4.14.1 add @glassyui/glass-progressnpx shadcn@4.14.1 add @glassyui-native/glass-progressPreview
Demos ready. Update 0.
This preview runs the React version. In an app, iOS 26 and later draw the React Native version with the system’s own Liquid Glass. See it on a phone.
Installation
First add the exact @glassyui mapping to components.json as shown in Getting Started. Then run the pinned item command:
pnpm dlx shadcn@4.14.1 add @glassyui/glass-progressWhat this installs5 files, 1 package
Direct registry declarations
These values belong to @glassyui/glass-progress itself in registry.json.
Package dependencies
clsx
Registry dependencies
@glassyui/glass-provider
File targets
components/glassyui/glass-progress.tsx
Complete installed closure
This follows every namespaced registry dependency recursively and de-duplicates the packages and target files installed with this item.
Package dependencies
clsx
Installed files
components/glassyui/glass-progress.tsxcomponents/glassyui/glass-provider.tsxcomponents/glassyui/liquid-filters.tsxcomponents/glassyui/lib/preferences.tscomponents/glassyui/styles/liquid.css
First add the @glassyui-native mapping to components.json as shown in the Expo guide. Then add the component and match its packages to your Expo SDK:
npx shadcn@4.14.1 add @glassyui-native/glass-progressnpx expo install --fixUsage
import { GlassProgress } from "@/components/glassyui/glass-progress";
export function UploadDemo() {
return <GlassProgress label="Uploading" showValue value={62} />;
}import { View } from 'react-native';
import { GlassProgress } from '@/components/glassyui/glass-progress';
export default function ProgressExample() {
return (
<View style={{ gap: 16 }}>
<GlassProgress label="Uploading" showValue value={35} />
{/* Without a value, the fill sweeps until the length is known. */}
<GlassProgress accessibilityLabel="Syncing" value={null} />
</View>
);
}
Examples
<GlassProgress aria-label="Working" value={null} /><GlassProgress size="sm" value={30} aria-label="Small" />
<GlassProgress size="lg" value={70} aria-label="Large" />API
The React Native version takes the same props under React Native’s names: onPress for onClick and style for className. The Expo guide lists what else differs.
GlassProgressA progressbar with a glass track and fill.
valueHow far along. Leave it out, or pass null, when the length is unknown.
maxThe value that means done. Defaults to 100.
labelText above the bar. It also names the bar.
showValueShows the percentage beside the label.
sizesm, md (default) or lg.
Notes
Motion
The fill slides with a soft ease. A bar of unknown length sweeps at 30 frames a second, which spares the GPU. Reduced motion jumps to the value and holds a short fill in the middle instead of sweeping.
Accessibility
The track is a progressbar with aria-valuenow, or none when the length is unknown. Give it a label or aria-label.
Accessibility
Keep the Radix-backed semantics intact and preserve visible labels, focus states, and keyboard operation when copying the source.
Performance
Use provider quality preferences for dense app screens. Reserve strong refraction for hero or showcase surfaces.