{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "neoglass", "homepage": "https://github.com/pranavkarthik10/neoglass", "items": [ { "name": "theme-tokens", "type": "registry:lib", "title": "Glass Theme Tokens", "description": "Opaque color tokens for NeoGlass controls in light and dark themes.", "files": [ { "path": "src/lib/glass/theme-tokens.ts", "type": "registry:lib" } ] }, { "name": "demo-artwork", "type": "registry:lib", "title": "Demo Artwork", "description": "Public-domain artwork URLs and pointer lens hooks for glass surfaces.", "files": [ { "path": "src/lib/demo-artwork.ts", "type": "registry:lib" }, { "path": "src/lib/glass/useDriftingLens.ts", "type": "registry:lib" } ] }, { "name": "demo-frame", "type": "registry:lib", "title": "Demo Frame", "description": "Artwork backdrop and stage wrappers for block previews.", "registryDependencies": [ "demo-artwork", "use-glass-backdrop" ], "files": [ { "path": "src/components/demo/ArtworkBackdrop.tsx", "type": "registry:ui" }, { "path": "src/components/demo/artworkBackdrop.module.scss", "type": "registry:component" }, { "path": "src/components/demos/DemoContainer.tsx", "type": "registry:component" }, { "path": "src/components/demos/demoContainer.module.scss", "type": "registry:component" }, { "path": "src/components/demos/ComponentStage.tsx", "type": "registry:component" }, { "path": "src/components/demos/componentStage.module.scss", "type": "registry:component" } ] }, { "name": "glass-controls", "type": "registry:lib", "title": "Glass Control Primitives", "description": "Motion values, displacement material, and GlassControlLens for interactive controls.", "files": [ { "path": "src/lib/glass/controls/index.ts", "type": "registry:lib" }, { "path": "src/lib/glass/controls/material.ts", "type": "registry:lib" }, { "path": "src/lib/glass/controls/motion.ts", "type": "registry:lib" }, { "path": "src/components/glass/controls/index.ts", "type": "registry:lib" }, { "path": "src/components/glass/controls/GlassControlLens.tsx", "type": "registry:ui" }, { "path": "src/components/glass/controls/GlassDiv.tsx", "type": "registry:ui" }, { "path": "src/components/glass/controls/NeoGlassSwitch.tsx", "type": "registry:ui" }, { "path": "src/components/glass/controls/NeoGlassSlider.tsx", "type": "registry:ui" }, { "path": "src/components/glass/controls/NeoGlassTabSlider.tsx", "type": "registry:ui" } ] }, { "name": "use-glass-backdrop", "type": "registry:lib", "title": "useGlassBackdrop", "description": "Hook that renders an aligned backdrop copy so a glass surface refracts what is behind it.", "registryDependencies": [], "files": [ { "path": "src/components/ui/useGlassBackdrop.tsx", "type": "registry:lib" }, { "path": "src/lib/glass/backdrop-motion.ts", "type": "registry:lib" } ] }, { "name": "neoglass", "type": "registry:ui", "title": "NeoGlass", "description": "SVG displacement-map glass lens with animated shape support.", "dependencies": [ "framer-motion@^12" ], "registryDependencies": [ "theme-tokens" ], "files": [ { "path": "src/components/ui/neoglass.tsx", "type": "registry:ui" }, { "path": "src/components/glass/NeoGlass.tsx", "type": "registry:ui" }, { "path": "src/lib/glass/neoglass-layout.scss", "type": "registry:style" }, { "path": "src/lib/glass/index.ts", "type": "registry:lib" }, { "path": "src/lib/glass/types.ts", "type": "registry:lib" }, { "path": "src/lib/glass/displacement-map.ts", "type": "registry:lib" }, { "path": "src/lib/glass/useAnimatedDisplacementMap.ts", "type": "registry:lib" }, { "path": "src/lib/glass/math.ts", "type": "registry:lib" } ] }, { "name": "glass-switch", "type": "registry:ui", "title": "Glass Switch", "description": "macOS-style glass toggle switch with drag bloom and refraction.", "registryDependencies": [ "glass-controls", "theme-tokens", "theme-provider" ], "files": [ { "path": "src/components/ui/glass-switch.tsx", "type": "registry:ui" } ] }, { "name": "glass-slider", "type": "registry:ui", "title": "Glass Slider", "description": "Glass range slider with magnified track refraction through the thumb.", "registryDependencies": [ "glass-controls", "theme-tokens", "theme-provider" ], "files": [ { "path": "src/components/ui/glass-slider.tsx", "type": "registry:ui" } ] }, { "name": "glass-toggle-group", "type": "registry:ui", "title": "Glass Toggle Group", "description": "Glass-first segmented control with a draggable selection lens.", "registryDependencies": [ "glass-controls", "theme-tokens", "theme-provider", "glass-surface" ], "files": [ { "path": "src/components/ui/glass-toggle-group.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-toggle-group.module.scss", "type": "registry:component" }, { "path": "src/components/ui/useGlassTone.ts", "type": "registry:ui" } ] }, { "name": "glass-button", "type": "registry:ui", "title": "Glass Button", "description": "Frosted glass button with SVG displacement refraction.", "registryDependencies": [ "glass-surface", "neoglass", "use-glass-backdrop" ], "files": [ { "path": "src/components/ui/glass-button.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-button.module.scss", "type": "registry:component" } ] }, { "name": "theme-provider", "type": "registry:component", "title": "Theme Provider", "description": "Light/dark theme context with CSS custom properties for glass surfaces.", "files": [ { "path": "src/components/ui/theme-provider.tsx", "type": "registry:ui" }, { "path": "src/components/ThemeProvider.tsx", "type": "registry:component" }, { "path": "src/app/themes.scss", "type": "registry:style" } ] }, { "name": "glass-card", "type": "registry:ui", "title": "Glass Card", "description": "Frosted glass content panel with a pointer-driven refraction lens.", "registryDependencies": [ "glass-surface", "neoglass", "use-glass-backdrop" ], "files": [ { "path": "src/components/ui/glass-card.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-card.module.scss", "type": "registry:component" } ] }, { "name": "glass-dropdown-menu", "type": "registry:ui", "title": "Glass Dropdown Menu", "description": "Menubar whose dropdown panels refract the background as liquid glass.", "registryDependencies": [ "glass-surface", "neoglass", "use-glass-backdrop" ], "files": [ { "path": "src/components/ui/glass-dropdown-menu.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-dropdown-menu.module.scss", "type": "registry:component" } ] }, { "name": "glass-surface", "type": "registry:ui", "title": "Glass Surface", "description": "Shared liquid/frosted surface primitive with SVG and backdrop refraction.", "registryDependencies": [ "neoglass", "use-glass-backdrop" ], "files": [ { "path": "src/components/ui/glass-surface.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-surface.module.scss", "type": "registry:component" }, { "path": "src/components/ui/liquid-glass-backdrop.tsx", "type": "registry:ui" } ] }, { "name": "glass-badge", "type": "registry:ui", "title": "Glass Badge", "description": "Compact frosted status pill with liquid glass surface.", "registryDependencies": [ "glass-surface", "utils" ], "files": [ { "path": "src/components/ui/glass-badge.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-badge.module.scss", "type": "registry:component" } ] }, { "name": "glass-separator", "type": "registry:ui", "title": "Glass Separator", "description": "Thin horizontal or vertical divider for glass layouts.", "files": [ { "path": "src/components/ui/glass-separator.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-separator.module.scss", "type": "registry:component" } ], "registryDependencies": [ "utils" ] }, { "name": "glass-input", "type": "registry:ui", "title": "Glass Input", "description": "Single-line text field with liquid glass shell and optional leading icon.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-input.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-input.module.scss", "type": "registry:component" } ] }, { "name": "glass-textarea", "type": "registry:ui", "title": "Glass Textarea", "description": "Resizable multi-line field whose glass shell tracks the live box.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-textarea.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-textarea.module.scss", "type": "registry:component" } ] }, { "name": "glass-checkbox", "type": "registry:ui", "title": "Glass Checkbox", "description": "Checkbox control with liquid glass box and indeterminate state.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-checkbox.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-checkbox.module.scss", "type": "registry:component" } ] }, { "name": "glass-radio-group", "type": "registry:ui", "title": "Glass Radio Group", "description": "Radio list with frosted selection indicators.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-radio-group.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-radio-group.module.scss", "type": "registry:component" } ] }, { "name": "glass-dialog", "type": "registry:ui", "title": "Glass Dialog", "description": "Modal dialog panel with full-surface liquid glass chrome.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-dialog.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-dialog.module.scss", "type": "registry:component" } ] }, { "name": "glass-sheet", "type": "registry:ui", "title": "Glass Sheet", "description": "Side or bottom drawer with liquid glass panel.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-sheet.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-sheet.module.scss", "type": "registry:component" } ] }, { "name": "glass-popover", "type": "registry:ui", "title": "Glass Popover", "description": "Anchored floating panel with liquid glass surface.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-popover.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-popover.module.scss", "type": "registry:component" } ] }, { "name": "glass-avatar", "type": "registry:ui", "title": "Glass Avatar", "description": "Avatar and profile card with glass rim and optional popover.", "registryDependencies": [ "glass-surface", "glass-popover", "utils" ], "files": [ { "path": "src/components/ui/glass-avatar.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-avatar.module.scss", "type": "registry:component" } ] }, { "name": "glass-progress", "type": "registry:ui", "title": "Glass Progress", "description": "Progress bar with liquid glass track and indicator.", "registryDependencies": [ "glass-surface", "utils" ], "files": [ { "path": "src/components/ui/glass-progress.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-progress.module.scss", "type": "registry:component" } ] }, { "name": "glass-skeleton", "type": "registry:ui", "title": "Glass Skeleton", "description": "Loading placeholder with frosted refraction and shimmer.", "registryDependencies": [ "glass-surface", "utils" ], "files": [ { "path": "src/components/ui/glass-skeleton.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-skeleton.module.scss", "type": "registry:component" } ] }, { "name": "glass-select", "type": "registry:ui", "title": "Glass Select", "description": "Single-select field with a liquid-glass trigger and listbox panel.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-select.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-select.module.scss", "type": "registry:component" } ] }, { "name": "glass-tooltip", "type": "registry:ui", "title": "Glass Tooltip", "description": "Hover/focus tooltip with liquid glass chrome.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-tooltip.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-tooltip.module.scss", "type": "registry:component" } ] }, { "name": "glass-command", "type": "registry:ui", "title": "Glass Command", "description": "Searchable command palette with liquid glass surface and keyboard navigation.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-command.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-command.module.scss", "type": "registry:component" } ] }, { "name": "glass-toast", "type": "registry:ui", "title": "Glass Toast", "description": "Viewport notifications with live liquid-glass refraction and flexible placement.", "registryDependencies": [ "glass-surface" ], "files": [ { "path": "src/components/ui/glass-toast.tsx", "type": "registry:ui" }, { "path": "src/components/ui/glass-toast.module.scss", "type": "registry:component" } ] }, { "name": "glass-qr", "type": "registry:block", "title": "Glass QR Code", "description": "WebGL glass refraction over a dynamic QR matrix.", "dependencies": [ "qrcode@^1.5.4", "framer-motion@^12" ], "registryDependencies": [ "neoglass", "theme-tokens", "demo-frame" ], "files": [ { "path": "src/components/demos/examples/QrDemo.tsx", "type": "registry:component" }, { "path": "src/components/demos/examples/qrDemo.module.scss", "type": "registry:component" }, { "path": "src/lib/glass/qr/index.ts", "type": "registry:lib" }, { "path": "src/lib/glass/qr/qr-matrix.ts", "type": "registry:lib" }, { "path": "src/lib/glass/qr/qr-webgl-renderer.ts", "type": "registry:lib" }, { "path": "src/lib/glass/qr/shaders.ts", "type": "registry:lib" } ] }, { "name": "glass-video-player", "type": "registry:block", "title": "Glass Video Player", "description": "Liquid-glass video player: pass any src/poster and get refracting transport controls over live video.", "dependencies": [ "framer-motion@^12" ], "registryDependencies": [ "neoglass", "theme-tokens", "demo-frame" ], "files": [ { "path": "src/components/demos/examples/VideoPlayer.tsx", "type": "registry:component" }, { "path": "src/components/demos/examples/videoPlayer.module.scss", "type": "registry:component" }, { "path": "src/lib/glass/video/index.ts", "type": "registry:lib" }, { "path": "src/lib/glass/video/video-glass-layout.ts", "type": "registry:lib" }, { "path": "src/lib/glass/video/video-glass-renderer.ts", "type": "registry:lib" }, { "path": "src/lib/glass/video/shaders.ts", "type": "registry:lib" } ] } ] }