AuraGlass vs shadcn/ui
AuraGlass is package-first Liquid Glass UI. shadcn/ui is source-owned neutral primitives. Choose based on product surface and ownership needs.
#Choose AuraGlass When
Choose AuraGlass when the product needs a finished visual system, not just primitives. It ships package components, glass material tokens, motion defaults, app recipes, docs routes, component previews, and AI-agent guidance under one install path.
The strongest fit is a product where the interface itself needs to feel premium: executive dashboards, AI workbenches, media tooling, ecommerce panels, collaboration spaces, and SaaS app chrome. In those cases, adopting a visual system can be faster and more consistent than restyling neutral primitives one component at a time.
#Choose shadcn/ui When
Choose shadcn/ui when source ownership is the main requirement. Its model is excellent for teams that want neutral Radix-based primitives copied into their app, direct control over every line, Tailwind-first styling, and conventional CRUD/admin patterns.
That ownership comes with responsibility: the team owns the visual system, material language, theme rules, cross-component polish, accessibility review, and long-term drift. If the product does not need a distinctive glass identity, that tradeoff is often correct.
#Migration and Mixing
AuraGlass and shadcn/ui can coexist when ownership is clear. Use shadcn/ui for neutral form primitives or internal admin surfaces, and use AuraGlass where the product needs a premium material layer. Do not wrap both systems around the same control just to chase a visual effect.
When replacing a shadcn card with AuraGlass, move layout and business data unchanged, replace the surface component, import `aura-glass/styles` once, and retest focus, disabled, loading, and dark-mode states. The goal is a cleaner product surface, not a second component system fighting the first.
import { GlassCard, GlassButton } from 'aura-glass';
import 'aura-glass/styles';
export function UpgradePanel() {
return (
<GlassCard depth="medium" tint="neutral">
<h2>Team plan</h2>
<p>Keep the app layout; replace the premium surface.</p>
<GlassButton>Upgrade</GlassButton>
</GlassCard>
);
}