{"$schema":"https://ui.shadcn.com/schema/registry.json","homepage":"https://www.uicapsule.com","items":[{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["pages","pixel-art"],"dependencies":[],"description":"Isometric voxel diorama landing page — scroll pans diagonally through a living world of walkers, marquee signs, and ground-laid typography","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/voxel-landing","name":"voxel-landing","registryDependencies":[],"title":"Voxel Landing","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/voxel-landing/preview.tsx","type":"registry:file"},{"path":"/voxel-landing.tsx","target":"uicapsule/voxel-landing/voxel-landing.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","colorful"],"dependencies":["lucide-react","motion"],"description":"Material You dynamic color — pick a wallpaper and a tonal palette derived from its seed hue re-themes the whole system.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/material-you-theming","name":"material-you-theming","registryDependencies":[],"title":"Material You Theming","type":"registry:block","files":[{"path":"/material-you-theming.tsx","target":"uicapsule/material-you-theming/material-you-theming.tsx","type":"registry:file"},{"path":"/phone-frame.tsx","target":"uicapsule/material-you-theming/phone-frame.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/material-you-theming/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","colorful"],"dependencies":["motion"],"description":"The image-gen loading ritual done honestly — pure noise resolves through coarse color blobs into the sharp frame, the way a denoiser actually converges.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/diffusion-reveal","name":"diffusion-reveal","registryDependencies":[],"title":"Diffusion Reveal","type":"registry:block","files":[{"path":"/diffusion-reveal.tsx","target":"uicapsule/diffusion-reveal/diffusion-reveal.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/diffusion-reveal/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","colorful"],"dependencies":["lucide-react","motion"],"description":"Android's Circle to Search — enter search mode, lasso anything with a glowing stroke, and results slide up for the circled item.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/circle-to-search","name":"circle-to-search","registryDependencies":[],"title":"Circle to Search","type":"registry:block","files":[{"path":"/circle-to-search.tsx","target":"uicapsule/circle-to-search/circle-to-search.tsx","type":"registry:file"},{"path":"/phone-frame.tsx","target":"uicapsule/circle-to-search/phone-frame.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/circle-to-search/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["cards-grids","skeuomorphism","silly"],"dependencies":["lucide-react","motion"],"description":"iOS home-screen edit mode — long-press to wobble, drag to reorder, tap the badge to remove.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/jiggle-mode","name":"jiggle-mode","registryDependencies":[],"title":"Jiggle Mode","type":"registry:block","files":[{"path":"/jiggle-mode.tsx","target":"uicapsule/jiggle-mode/jiggle-mode.tsx","type":"registry:file"},{"path":"/phone-frame.tsx","target":"uicapsule/jiggle-mode/phone-frame.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/jiggle-mode/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["navigation","minimal"],"dependencies":["lucide-react","motion"],"description":"Android's predictive back gesture — drag from the edge and the screen shrinks in your hand, revealing where you'll land before you commit.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/predictive-back","name":"predictive-back","registryDependencies":[],"title":"Predictive Back","type":"registry:block","files":[{"path":"/phone-frame.tsx","target":"uicapsule/predictive-back/phone-frame.tsx","type":"registry:file"},{"path":"/predictive-back.tsx","target":"uicapsule/predictive-back/predictive-back.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/predictive-back/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","skeuomorphism"],"dependencies":["motion"],"description":"The iOS time-picker wheel on the web — 3D cylinder, momentum flicks, detent snapping, edge fog.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/drum-picker","name":"drum-picker","registryDependencies":[],"title":"Drum Picker","type":"registry:block","files":[{"path":"/drum-picker.tsx","target":"uicapsule/drum-picker/drum-picker.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/drum-picker/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","skeuomorphism"],"dependencies":["motion"],"description":"A temperature knob for generation — turn it and the dial itself heats up: the LED ring fills from cool blue to ember, the glow swells, and the readout drifts from precise to unhinged.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/vibe-dial","name":"vibe-dial","registryDependencies":[],"title":"Vibe Dial","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/vibe-dial/preview.tsx","type":"registry:file"},{"path":"/vibe-dial.tsx","target":"uicapsule/vibe-dial/vibe-dial.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","minimal"],"dependencies":["lucide-react","motion"],"description":"The iOS screenshot moment — flash, the screen shrinks into a corner thumbnail, lingers, then swipes away.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/screenshot-capture","name":"screenshot-capture","registryDependencies":[],"title":"Screenshot Capture","type":"registry:block","files":[{"path":"/phone-frame.tsx","target":"uicapsule/screenshot-capture/phone-frame.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/screenshot-capture/preview.tsx","type":"registry:file"},{"path":"/screenshot-capture.tsx","target":"uicapsule/screenshot-capture/screenshot-capture.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","minimal"],"dependencies":["motion"],"description":"The tvOS scrubber — dragging the timeline raises a filmstrip of preview frames above the playhead, rendered live from a synthetic day-cycle video.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/seek-filmstrip","name":"seek-filmstrip","registryDependencies":[],"title":"Seek Filmstrip","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/seek-filmstrip/preview.tsx","type":"registry:file"},{"path":"/seek-filmstrip.tsx","target":"uicapsule/seek-filmstrip/seek-filmstrip.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["navigation","skeuomorphism"],"dependencies":["lucide-react","motion"],"description":"iOS long-press context menu — the bubble lifts, the thread melts into blur, and the menu springs from the press point.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/context-menu-peek","name":"context-menu-peek","registryDependencies":[],"title":"Context Menu Peek","type":"registry:block","files":[{"path":"/context-menu-peek.tsx","target":"uicapsule/context-menu-peek/context-menu-peek.tsx","type":"registry:file"},{"path":"/phone-frame.tsx","target":"uicapsule/context-menu-peek/phone-frame.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/context-menu-peek/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["data","minimal"],"dependencies":["@tanstack/charts"],"description":"A four-card editorial chart set — rung bars, a hairline dot-line, a tick-ring dial, and a dot waffle — drawn ink-on-paper by TanStack Charts, with spring-staggered entrances and quarterly data that morphs on a loop.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/editorial-charts","name":"editorial-charts","registryDependencies":[],"title":"Editorial Charts","type":"registry:block","files":[{"path":"/charts/dot-waffle.tsx","target":"uicapsule/editorial-charts/charts/dot-waffle.tsx","type":"registry:file"},{"path":"/charts/hairline-line.tsx","target":"uicapsule/editorial-charts/charts/hairline-line.tsx","type":"registry:file"},{"path":"/charts/rung-bars.tsx","target":"uicapsule/editorial-charts/charts/rung-bars.tsx","type":"registry:file"},{"path":"/charts/tick-ring.tsx","target":"uicapsule/editorial-charts/charts/tick-ring.tsx","type":"registry:file"},{"path":"/editorial-charts.tsx","target":"uicapsule/editorial-charts/editorial-charts.tsx","type":"registry:file"},{"path":"/lib/data.ts","target":"uicapsule/editorial-charts/lib/data.ts","type":"registry:file"},{"path":"/lib/tokens.ts","target":"uicapsule/editorial-charts/lib/tokens.ts","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/editorial-charts/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","geometric"],"dependencies":[],"description":"Liquid-glass shader orb that morphs through material presets — siri, aurora, plasma, chrome, opal, blue drop, violet ember","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/liquid-orb","name":"liquid-orb","registryDependencies":[],"title":"Liquid Orb","type":"registry:block","files":[{"path":"/liquid-orb.tsx","target":"uicapsule/liquid-orb/liquid-orb.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/liquid-orb/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["cards-grids","minimal"],"dependencies":["lucide-react","motion"],"description":"iOS Smart Stack — widgets roll through a vertical 3D page-flip, auto-advancing until you swipe.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/widget-stack","name":"widget-stack","registryDependencies":[],"title":"Widget Stack","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/widget-stack/preview.tsx","type":"registry:file"},{"path":"/widget-stack.tsx","target":"uicapsule/widget-stack/widget-stack.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","colorful","silly"],"dependencies":["three"],"description":"Cute chibi potted plants raymarched from signed distance fields on a little soft-body rig — pinch, pull, lift and toss them; they watch your cursor, blink, and morph between characters","devDependencies":["@types/three"],"homepage":"https://www.uicapsule.com/ui/chibi-plants","name":"chibi-plants","registryDependencies":[],"title":"Chibi Plants","type":"registry:block","files":[{"path":"/chibi-plants.tsx","target":"uicapsule/chibi-plants/chibi-plants.tsx","type":"registry:file"},{"path":"/chibi-rig.ts","target":"uicapsule/chibi-plants/chibi-rig.ts","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/chibi-plants/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","geometric"],"dependencies":["lucide-react","motion"],"description":"Android's 9-dot pattern lock — glowing trail, dot ripples, red shake on a wrong draw, green on unlock.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/pattern-unlock","name":"pattern-unlock","registryDependencies":[],"title":"Pattern Unlock","type":"registry:block","files":[{"path":"/pattern-unlock.tsx","target":"uicapsule/pattern-unlock/pattern-unlock.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/pattern-unlock/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","minimal"],"dependencies":["lucide-react","motion"],"description":"AirDrop's ripple radar — nearby people surface on expanding rings; tap one and a progress ring wraps their avatar.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/airdrop-radar","name":"airdrop-radar","registryDependencies":[],"title":"AirDrop Radar","type":"registry:block","files":[{"path":"/airdrop-radar.tsx","target":"uicapsule/airdrop-radar/airdrop-radar.tsx","type":"registry:file"},{"path":"/phone-frame.tsx","target":"uicapsule/airdrop-radar/phone-frame.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/airdrop-radar/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","minimal"],"dependencies":["lucide-react","motion"],"description":"iOS picture-in-picture — flick the call window and velocity picks its corner; throw it off an edge to tuck it behind a peek tab.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/pip-window","name":"pip-window","registryDependencies":[],"title":"PiP Window","type":"registry:block","files":[{"path":"/phone-frame.tsx","target":"uicapsule/pip-window/phone-frame.tsx","type":"registry:file"},{"path":"/pip-window.tsx","target":"uicapsule/pip-window/pip-window.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/pip-window/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["cards-grids","skeuomorphism"],"dependencies":["three"],"description":"An endless strip of paper unrolls behind a heavy roll, printing a portfolio in its wake","devDependencies":["@types/three"],"homepage":"https://www.uicapsule.com/ui/paper-roll","name":"paper-roll","registryDependencies":[],"title":"Paper Roll","type":"registry:block","files":[{"path":"/paper-roll.tsx","target":"uicapsule/paper-roll/paper-roll.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/paper-roll/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["pages","skeuomorphism"],"dependencies":["gsap","lucide-react"],"description":"A desktop boots itself — one card riffles through every thumbnail, icons burst out from centre, then the dock magnifies under the cursor and windows drag, stack and pop.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/desktop-os","name":"desktop-os","registryDependencies":[],"title":"Desktop OS","type":"registry:block","files":[{"path":"/app-icons.tsx","target":"uicapsule/desktop-os/app-icons.tsx","type":"registry:file"},{"path":"/desktop-data.ts","target":"uicapsule/desktop-os/desktop-data.ts","type":"registry:file"},{"path":"/desktop-os.tsx","target":"uicapsule/desktop-os/desktop-os.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/desktop-os/preview.tsx","type":"registry:file"},{"path":"/use-reduced-motion.ts","target":"uicapsule/desktop-os/use-reduced-motion.ts","type":"registry:file"},{"path":"/window-bodies.tsx","target":"uicapsule/desktop-os/window-bodies.tsx","type":"registry:file"},{"path":"/window-frame.tsx","target":"uicapsule/desktop-os/window-frame.tsx","type":"registry:file"},{"path":"/window-types.ts","target":"uicapsule/desktop-os/window-types.ts","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["cards-grids","minimal"],"dependencies":["gsap"],"description":"Sixteen photo cards regroup between four spatial formations — a solved ellipse, an arc conveyor, a tilted ring and a swelling orbit — and scrub under drag or wheel with a parallax lean that follows the cursor.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/formation","name":"formation","registryDependencies":[],"title":"Formation","type":"registry:block","files":[{"path":"/formation-poses.ts","target":"uicapsule/formation/formation-poses.ts","type":"registry:file"},{"path":"/formation.tsx","target":"uicapsule/formation/formation.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/formation/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["cards-grids"],"dependencies":["gsap","lucide-react"],"description":"A drifting wall of photos bends away from the cursor like a gravity well, promoting whichever picture sits in the clearing — click and the whole wall pans to bring it to center.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/gravity-wall","name":"gravity-wall","registryDependencies":[],"title":"Gravity Wall","type":"registry:block","files":[{"path":"/build-cells.ts","target":"uicapsule/gravity-wall/build-cells.ts","type":"registry:file"},{"path":"/featured-card.tsx","target":"uicapsule/gravity-wall/featured-card.tsx","type":"registry:file"},{"path":"/gravity-wall.tsx","target":"uicapsule/gravity-wall/gravity-wall.tsx","type":"registry:file"},{"path":"/photos.ts","target":"uicapsule/gravity-wall/photos.ts","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/gravity-wall/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["cards-grids"],"dependencies":["gsap","lucide-react"],"description":"A camera drifts forever across an edgeless field of fashion figures — scroll to zoom at the cursor, drag to fling, click one and it flies in while every other card dims and a glass panel slides out.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/lookbook-camera","name":"lookbook-camera","registryDependencies":[],"title":"Lookbook Camera","type":"registry:block","files":[{"path":"/detail-panel.tsx","target":"uicapsule/lookbook-camera/detail-panel.tsx","type":"registry:file"},{"path":"/look-figure.tsx","target":"uicapsule/lookbook-camera/look-figure.tsx","type":"registry:file"},{"path":"/lookbook-camera.tsx","target":"uicapsule/lookbook-camera/lookbook-camera.tsx","type":"registry:file"},{"path":"/lookbook-data.ts","target":"uicapsule/lookbook-camera/lookbook-data.ts","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/lookbook-camera/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["data","minimal"],"dependencies":["gsap"],"description":"An endless wheel of labels glides past a fixed center line while a giant gradient-filled figure swaps in beside it; scroll to seize the reel and it resumes on its own after four seconds.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/stat-reel","name":"stat-reel","registryDependencies":[],"title":"Stat Reel","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/stat-reel/preview.tsx","type":"registry:file"},{"path":"/stat-reel-data.ts","target":"uicapsule/stat-reel/stat-reel-data.ts","type":"registry:file"},{"path":"/stat-reel.tsx","target":"uicapsule/stat-reel/stat-reel.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","pixel-art"],"dependencies":[],"description":"An ASCII trading terminal drawn from box-drawing glyphs, whose screen burns into drifting embers and reassembles as the next one — scrub backwards and the same debris replays in reverse.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/terminal-disintegrate","name":"terminal-disintegrate","registryDependencies":[],"title":"Terminal Disintegrate","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/terminal-disintegrate/preview.tsx","type":"registry:file"},{"path":"/terminal-data.ts","target":"uicapsule/terminal-disintegrate/terminal-data.ts","type":"registry:file"},{"path":"/terminal-disintegrate.tsx","target":"uicapsule/terminal-disintegrate/terminal-disintegrate.tsx","type":"registry:file"},{"path":"/terminal-frames.ts","target":"uicapsule/terminal-disintegrate/terminal-frames.ts","type":"registry:file"},{"path":"/terminal-grid.ts","target":"uicapsule/terminal-disintegrate/terminal-grid.ts","type":"registry:file"},{"path":"/terminal-particles.ts","target":"uicapsule/terminal-disintegrate/terminal-particles.ts","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","skeuomorphism","silly"],"dependencies":["lucide-react","motion"],"description":"Five volume controls that refuse to just be a slider: tilt, cannon, curling, dot-matrix, and whack-a-mole.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/volume-control","name":"volume-control","registryDependencies":[],"title":"Volume Control","type":"registry:block","files":[{"path":"/cannon-track.tsx","target":"uicapsule/volume-control/cannon-track.tsx","type":"registry:file"},{"path":"/curling-track.tsx","target":"uicapsule/volume-control/curling-track.tsx","type":"registry:file"},{"path":"/dots-track.tsx","target":"uicapsule/volume-control/dots-track.tsx","type":"registry:file"},{"path":"/macos-chrome.tsx","target":"uicapsule/volume-control/macos-chrome.tsx","type":"registry:file"},{"path":"/plus-minus-track.tsx","target":"uicapsule/volume-control/plus-minus-track.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/volume-control/preview.tsx","type":"registry:file"},{"path":"/tilt-track.tsx","target":"uicapsule/volume-control/tilt-track.tsx","type":"registry:file"},{"path":"/volume-control.tsx","target":"uicapsule/volume-control/volume-control.tsx","type":"registry:file"},{"path":"/volume-scale.ts","target":"uicapsule/volume-control/volume-scale.ts","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","minimal","silly"],"dependencies":["@mediapipe/tasks-vision","lucide-react","motion"],"description":"Remake of the Codex effort picker, in ChatGPT's chrome or Claude's.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/effort-picker","name":"effort-picker","registryDependencies":[],"title":"Effort Picker","type":"registry:block","files":[{"path":"/composer-chrome.tsx","target":"uicapsule/effort-picker/composer-chrome.tsx","type":"registry:file"},{"path":"/curl-fanfare.tsx","target":"uicapsule/effort-picker/curl-fanfare.tsx","type":"registry:file"},{"path":"/curl-track.tsx","target":"uicapsule/effort-picker/curl-track.tsx","type":"registry:file"},{"path":"/effort-dial.tsx","target":"uicapsule/effort-picker/effort-dial.tsx","type":"registry:file"},{"path":"/effort-picker.tsx","target":"uicapsule/effort-picker/effort-picker.tsx","type":"registry:file"},{"path":"/effort-scale.ts","target":"uicapsule/effort-picker/effort-scale.ts","type":"registry:file"},{"path":"/effort-theme.ts","target":"uicapsule/effort-picker/effort-theme.ts","type":"registry:file"},{"path":"/karaoke-lyrics.ts","target":"uicapsule/effort-picker/karaoke-lyrics.ts","type":"registry:file"},{"path":"/karaoke-track.tsx","target":"uicapsule/effort-picker/karaoke-track.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/effort-picker/preview.tsx","type":"registry:file"},{"path":"/slingshot-track.tsx","target":"uicapsule/effort-picker/slingshot-track.tsx","type":"registry:file"},{"path":"/use-pose-curls.ts","target":"uicapsule/effort-picker/use-pose-curls.ts","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","skeuomorphism"],"dependencies":["@number-flow/react","lucide-react"],"description":"A replica of Tesla's climate screen — drag the airstream to aim the vents, with live temperature, fan, and seat-heat response.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/tesla-climate","name":"tesla-climate","registryDependencies":[],"title":"Tesla Climate","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/tesla-climate/preview.tsx","type":"registry:file"},{"path":"/tesla-climate.tsx","target":"uicapsule/tesla-climate/tesla-climate.tsx","type":"registry:file"},{"path":"/vent-scene.tsx","target":"uicapsule/tesla-climate/vent-scene.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls"],"dependencies":["lucide-react","motion"],"description":"A shape-shifting AI input capsule that morphs between text, voice, thinking, and streaming states.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/dynamic-ai-composer","name":"dynamic-ai-composer","registryDependencies":[],"title":"Dynamic AI Composer","type":"registry:block","files":[{"path":"/dynamic-ai-composer.tsx","target":"uicapsule/dynamic-ai-composer/dynamic-ai-composer.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/dynamic-ai-composer/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["navigation","skeuomorphism"],"dependencies":["lucide-react","motion"],"description":"A springy Dynamic Island interaction with ring and timer states.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/dynamic-island","name":"dynamic-island","registryDependencies":[],"title":"Dynamic Island","type":"registry:block","files":[{"path":"/dynamic-island.tsx","target":"uicapsule/dynamic-island/dynamic-island.tsx","type":"registry:file"},{"path":"/expanded-widgets.tsx","target":"uicapsule/dynamic-island/expanded-widgets.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/dynamic-island/preview.tsx","type":"registry:file"},{"path":"/ring.tsx","target":"uicapsule/dynamic-island/ring.tsx","type":"registry:file"},{"path":"/timer.tsx","target":"uicapsule/dynamic-island/timer.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","geometric"],"dependencies":["@react-three/drei","@react-three/fiber","three"],"description":"3D animated spherical orb with flowing latitude lines and depth-based opacity","devDependencies":["@types/three"],"homepage":"https://www.uicapsule.com/ui/geometric-orb","name":"geometric-orb","registryDependencies":[],"title":"Geometric Orb","type":"registry:block","files":[{"path":"/geometric-orb.tsx","target":"uicapsule/geometric-orb/geometric-orb.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/geometric-orb/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","geometric"],"dependencies":["@react-three/fiber","three"],"description":"Glowing shader orb with noise-based color mixing, hue rotation, and breathing pulse","devDependencies":["@types/three"],"homepage":"https://www.uicapsule.com/ui/gradient-orb","name":"gradient-orb","registryDependencies":[],"title":"Gradient Orb","type":"registry:block","files":[{"path":"/gradient-orb.tsx","target":"uicapsule/gradient-orb/gradient-orb.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/gradient-orb/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","geometric"],"dependencies":["@react-three/drei","@react-three/fiber","@react-three/postprocessing","postprocessing","three"],"description":"Curl-noise-displaced particle cloud rendered as a continuous line strip with bloom","devDependencies":["@types/three"],"homepage":"https://www.uicapsule.com/ui/wireframe-orb","name":"wireframe-orb","registryDependencies":[],"title":"Wireframe Orb","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/wireframe-orb/preview.tsx","type":"registry:file"},{"path":"/wireframe-orb.tsx","target":"uicapsule/wireframe-orb/wireframe-orb.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","pixel-art"],"dependencies":["cn"],"description":"Dot-matrix pixel loading spinners — 20 grid animations (wave, spiral, radar, rain, snake, heart…) with square or round dots, neon glow and rainbow hue cycling.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/spinner-pixel-grid","name":"spinner-pixel-grid","registryDependencies":[],"title":"Spinner Pixel Grid","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/spinner-pixel-grid/preview.tsx","type":"registry:file"},{"path":"/spinner-pixel-grid.css","target":"uicapsule/spinner-pixel-grid/spinner-pixel-grid.css","type":"registry:file"},{"path":"/spinner-pixel-grid.tsx","target":"uicapsule/spinner-pixel-grid/spinner-pixel-grid.tsx","type":"registry:file"},{"path":"/styles.d.ts","target":"uicapsule/spinner-pixel-grid/styles.d.ts","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["navigation","minimal"],"dependencies":["lucide-react"],"description":"A shadcn-inspired application sidebar with a draggable resize handle.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/sidebar","name":"sidebar","registryDependencies":[],"title":"Resizable Sidebar","type":"registry:block","files":[{"path":"/dashboard.tsx","target":"uicapsule/sidebar/dashboard.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/sidebar/preview.tsx","type":"registry:file"},{"path":"/sidebar.tsx","target":"uicapsule/sidebar/sidebar.tsx","type":"registry:file"},{"path":"/use-resizable-sidebar.ts","target":"uicapsule/sidebar/use-resizable-sidebar.ts","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls"],"dependencies":["motion"],"description":"Voice dictation UI — tap the orb and a dithered WebGL ring swells with simulated speech amplitude while a faux transcript streams in word by word.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/voice-dictator","name":"voice-dictator","registryDependencies":[],"title":"Voice Dictator","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/voice-dictator/preview.tsx","type":"registry:file"},{"path":"/voice-dictator.tsx","target":"uicapsule/voice-dictator/voice-dictator.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["pages","minimal"],"dependencies":["@base-ui/react","@icons-pack/react-simple-icons","@radix-ui/react-use-controllable-state","cn","lucide-react","motion"],"description":"Dark emerald AI landing page template — hero demo types a question, reveals collapsible chain-of-thought steps and a sourced answer; feature cards, integrations marquee.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/emerald-template","name":"emerald-template","registryDependencies":[],"title":"Emerald","type":"registry:block","files":[{"path":"/_components/chain-of-thought.tsx","target":"uicapsule/emerald-template/_components/chain-of-thought.tsx","type":"registry:file"},{"path":"/_components/features-section.tsx","target":"uicapsule/emerald-template/_components/features-section.tsx","type":"registry:file"},{"path":"/_components/footer.tsx","target":"uicapsule/emerald-template/_components/footer.tsx","type":"registry:file"},{"path":"/_components/grid-pattern.tsx","target":"uicapsule/emerald-template/_components/grid-pattern.tsx","type":"registry:file"},{"path":"/_components/header.tsx","target":"uicapsule/emerald-template/_components/header.tsx","type":"registry:file"},{"path":"/_components/hero-example.tsx","target":"uicapsule/emerald-template/_components/hero-example.tsx","type":"registry:file"},{"path":"/_components/hero-section.tsx","target":"uicapsule/emerald-template/_components/hero-section.tsx","type":"registry:file"},{"path":"/_components/highlight-card.tsx","target":"uicapsule/emerald-template/_components/highlight-card.tsx","type":"registry:file"},{"path":"/_components/home-card.tsx","target":"uicapsule/emerald-template/_components/home-card.tsx","type":"registry:file"},{"path":"/_components/infinite-loop.tsx","target":"uicapsule/emerald-template/_components/infinite-loop.tsx","type":"registry:file"},{"path":"/_components/integrations-section.tsx","target":"uicapsule/emerald-template/_components/integrations-section.tsx","type":"registry:file"},{"path":"/_components/logo.tsx","target":"uicapsule/emerald-template/_components/logo.tsx","type":"registry:file"},{"path":"/_components/source-icon.tsx","target":"uicapsule/emerald-template/_components/source-icon.tsx","type":"registry:file"},{"path":"/_components/ui.tsx","target":"uicapsule/emerald-template/_components/ui.tsx","type":"registry:file"},{"path":"/_components/waitlist-form.tsx","target":"uicapsule/emerald-template/_components/waitlist-form.tsx","type":"registry:file"},{"path":"/_components/workflow-section.tsx","target":"uicapsule/emerald-template/_components/workflow-section.tsx","type":"registry:file"},{"path":"/preview.css","target":"uicapsule/emerald-template/preview.css","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/emerald-template/preview.tsx","type":"registry:file"},{"path":"/styles.d.ts","target":"uicapsule/emerald-template/styles.d.ts","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["data","minimal"],"dependencies":["@ai-sdk/react","@base-ui/react","@loremllm/transport","@tanstack/react-table","@tanstack/react-virtual","cn","lucide-react","zod","zustand"],"description":"Spreadsheet data grid with AI enrichment — select cells, hit Enrich and each fills in after a Generating… beat; editable cells, drag/shift selection, arrow keys, resizable columns.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/spreadsheet","name":"spreadsheet","registryDependencies":[],"title":"Spreadsheet","type":"registry:block","files":[{"path":"/components/editable-cell.tsx","target":"uicapsule/spreadsheet/components/editable-cell.tsx","type":"registry:file"},{"path":"/components/resize-handle.tsx","target":"uicapsule/spreadsheet/components/resize-handle.tsx","type":"registry:file"},{"path":"/components/spreadsheet.tsx","target":"uicapsule/spreadsheet/components/spreadsheet.tsx","type":"registry:file"},{"path":"/components/status-bar.tsx","target":"uicapsule/spreadsheet/components/status-bar.tsx","type":"registry:file"},{"path":"/components/table-body.tsx","target":"uicapsule/spreadsheet/components/table-body.tsx","type":"registry:file"},{"path":"/components/toolbar.tsx","target":"uicapsule/spreadsheet/components/toolbar.tsx","type":"registry:file"},{"path":"/components/ui.tsx","target":"uicapsule/spreadsheet/components/ui.tsx","type":"registry:file"},{"path":"/lib/spreadsheet-store.tsx","target":"uicapsule/spreadsheet/lib/spreadsheet-store.tsx","type":"registry:file"},{"path":"/lib/spreadsheet-utils.ts","target":"uicapsule/spreadsheet/lib/spreadsheet-utils.ts","type":"registry:file"},{"path":"/lib/use-ai-enrichment.ts","target":"uicapsule/spreadsheet/lib/use-ai-enrichment.ts","type":"registry:file"},{"path":"/lib/use-spreadsheet-handlers.ts","target":"uicapsule/spreadsheet/lib/use-spreadsheet-handlers.ts","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/spreadsheet/preview.tsx","type":"registry:file"},{"path":"/spreadsheet.css","target":"uicapsule/spreadsheet/spreadsheet.css","type":"registry:file"},{"path":"/styles.d.ts","target":"uicapsule/spreadsheet/styles.d.ts","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","minimal"],"dependencies":["@ai-sdk/react","@base-ui/react","@loremllm/transport","cmdk","cn","date-fns","lucide-react","react-day-picker"],"description":"Data table filter bar — build text, number, date and option filters as editable chips with operators, or type a prompt, hit Ask AI and watch simulated filters stream in.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/filter-bar","name":"filter-bar","registryDependencies":[],"title":"Filter Bar","type":"registry:block","files":[{"path":"/_components/active-filters.tsx","target":"uicapsule/filter-bar/_components/active-filters.tsx","type":"registry:file"},{"path":"/_components/data-table-filter.tsx","target":"uicapsule/filter-bar/_components/data-table-filter.tsx","type":"registry:file"},{"path":"/_components/filter-actions.tsx","target":"uicapsule/filter-bar/_components/filter-actions.tsx","type":"registry:file"},{"path":"/_components/filter-operator.tsx","target":"uicapsule/filter-bar/_components/filter-operator.tsx","type":"registry:file"},{"path":"/_components/filter-selector.tsx","target":"uicapsule/filter-bar/_components/filter-selector.tsx","type":"registry:file"},{"path":"/_components/filter-subject.tsx","target":"uicapsule/filter-bar/_components/filter-subject.tsx","type":"registry:file"},{"path":"/_components/filter-value.tsx","target":"uicapsule/filter-bar/_components/filter-value.tsx","type":"registry:file"},{"path":"/_components/ui.tsx","target":"uicapsule/filter-bar/_components/ui.tsx","type":"registry:file"},{"path":"/_components/use-ai-filter-simulation.ts","target":"uicapsule/filter-bar/_components/use-ai-filter-simulation.ts","type":"registry:file"},{"path":"/_components/use-debounced-callback.ts","target":"uicapsule/filter-bar/_components/use-debounced-callback.ts","type":"registry:file"},{"path":"/filter-bar.css","target":"uicapsule/filter-bar/filter-bar.css","type":"registry:file"},{"path":"/filter-package/core/columns/column-factory.ts","target":"uicapsule/filter-bar/filter-package/core/columns/column-factory.ts","type":"registry:file"},{"path":"/filter-package/core/filters.ts","target":"uicapsule/filter-bar/filter-package/core/filters.ts","type":"registry:file"},{"path":"/filter-package/core/operators.ts","target":"uicapsule/filter-bar/filter-package/core/operators.ts","type":"registry:file"},{"path":"/filter-package/core/types.ts","target":"uicapsule/filter-bar/filter-package/core/types.ts","type":"registry:file"},{"path":"/filter-package/hooks/use-data-table-filters.ts","target":"uicapsule/filter-bar/filter-package/hooks/use-data-table-filters.ts","type":"registry:file"},{"path":"/filter-package/index.ts","target":"uicapsule/filter-bar/filter-package/index.ts","type":"registry:file"},{"path":"/filter-package/lib/helpers.ts","target":"uicapsule/filter-bar/filter-package/lib/helpers.ts","type":"registry:file"},{"path":"/filters.tsx","target":"uicapsule/filter-bar/filters.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/filter-bar/preview.tsx","type":"registry:file"},{"path":"/styles.d.ts","target":"uicapsule/filter-bar/styles.d.ts","type":"registry:file"},{"path":"/types.ts","target":"uicapsule/filter-bar/types.ts","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["navigation","minimal"],"dependencies":["@floating-ui/react","motion"],"description":"Tooltip with a direction aware pixel grid background animation","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/tooltip-grid","name":"tooltip-grid","registryDependencies":[],"title":"Tooltip Grid","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/tooltip-grid/preview.tsx","type":"registry:file"},{"path":"/styles.d.ts","target":"uicapsule/tooltip-grid/styles.d.ts","type":"registry:file"},{"path":"/tooltip.css","target":"uicapsule/tooltip-grid/tooltip.css","type":"registry:file"},{"path":"/tooltip.tsx","target":"uicapsule/tooltip-grid/tooltip.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["cards-grids","colorful"],"dependencies":["@react-three/fiber","three"],"description":"WebGPU 3D image carousel — cards ride a bent ring; scroll or drag to spin it with momentum, then it snaps to the nearest card as side cards fade back.","devDependencies":["@types/three"],"homepage":"https://www.uicapsule.com/ui/carousel-3d","name":"carousel-3d","registryDependencies":[],"title":"3D Carousel","type":"registry:block","files":[{"path":"/carousel-3d.tsx","target":"uicapsule/carousel-3d/carousel-3d.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/carousel-3d/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","silly"],"dependencies":[],"description":"Fastest countdown ever","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/snail-timer","name":"snail-timer","registryDependencies":[],"title":"Snail Timer","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/snail-timer/preview.tsx","type":"registry:file"},{"path":"/snail-timer.css","target":"uicapsule/snail-timer/snail-timer.css","type":"registry:file"},{"path":"/snail-timer.tsx","target":"uicapsule/snail-timer/snail-timer.tsx","type":"registry:file"},{"path":"/styles.d.ts","target":"uicapsule/snail-timer/styles.d.ts","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","pixel-art"],"dependencies":["@react-three/drei","@react-three/fiber","three"],"description":"Take any 3D model and render it as ASCII art","devDependencies":["@types/three"],"homepage":"https://www.uicapsule.com/ui/ascii-renderer","name":"ascii-renderer","registryDependencies":[],"title":"ASCII Renderer","type":"registry:block","files":[{"path":"/ascii-renderer.tsx","target":"uicapsule/ascii-renderer/ascii-renderer.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/ascii-renderer/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","pixel-art"],"dependencies":[],"description":"Retro 16fps pixel starfield background — grid-snapped stars twinkle in stepped fades and slowly reshuffle while pixel shooting stars streak past with fading trails.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/background-pixel-stars","name":"background-pixel-stars","registryDependencies":[],"title":"Background Pixel Stars","type":"registry:block","files":[{"path":"/background-pixel-stars.tsx","target":"uicapsule/background-pixel-stars/background-pixel-stars.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/background-pixel-stars/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","geometric"],"dependencies":[],"description":"Generative glyph grid background — two mirrored SVG panels of dots, crosses, stripes and squares, each cell swapping to a random shape on its own timer.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/background-shapes","name":"background-shapes","registryDependencies":[],"title":"Background Shapes","type":"registry:block","files":[{"path":"/background-shapes.tsx","target":"uicapsule/background-shapes/background-shapes.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/background-shapes/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["cards-grids","minimal"],"dependencies":["@gsap/react","gsap"],"description":"An infinite stack of cards placed with perspective one on top of another.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/card-stack","name":"card-stack","registryDependencies":[],"title":"Scrollable Card Stack","type":"registry:block","files":[{"path":"/card-stack.tsx","target":"uicapsule/card-stack/card-stack.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/card-stack/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["cards-grids","geometric"],"dependencies":["motion"],"description":"Infinite pannable grid — drag or scroll with momentum through endless cells, indexed in a spiral out from the center and rendered only while in view.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/infinite-grid","name":"infinite-grid","registryDependencies":[],"title":"Infinite Grid","type":"registry:block","files":[{"path":"/infinite-grid.tsx","target":"uicapsule/infinite-grid/infinite-grid.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/infinite-grid/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","skeuomorphism"],"dependencies":["@radix-ui/react-slider","motion"],"description":"iOS-style vertical volume slider — drag past the top and the bar stretches, past the bottom it squashes, with sigmoid rubber-band resistance and a spring back.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/ios-volume-slider","name":"ios-volume-slider","registryDependencies":[],"title":"iOS Volume Slider","type":"registry:block","files":[{"path":"/ios-volume-slider.tsx","target":"uicapsule/ios-volume-slider/ios-volume-slider.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/ios-volume-slider/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","minimal"],"dependencies":["motion"],"description":"Sun/moon light-dark theme toggle icon — the moon's crescent mask slides away as it shrinks into a sun, the icon rotates, and six rays pop in one by one.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/light-dark-toggle","name":"light-dark-toggle","registryDependencies":[],"title":"Light/Dark Toggle","type":"registry:block","files":[{"path":"/light-dark-toggle.tsx","target":"uicapsule/light-dark-toggle/light-dark-toggle.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/light-dark-toggle/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","colorful"],"dependencies":["@number-flow/react","motion"],"description":"Twitter style like button","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/like-button","name":"like-button","registryDependencies":[],"title":"Like Button","type":"registry:block","files":[{"path":"/like-button.tsx","target":"uicapsule/like-button/like-button.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/like-button/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["effects","geometric"],"dependencies":["three"],"description":"Noise-displaced particle sphere with additive-blended dots and custom vertex shader","devDependencies":["@types/three"],"homepage":"https://www.uicapsule.com/ui/particle-orb","name":"particle-orb","registryDependencies":[],"title":"Particle Orb","type":"registry:block","files":[{"path":"/particle-orb.tsx","target":"uicapsule/particle-orb/particle-orb.tsx","type":"registry:file"},{"path":"/preview.tsx","target":"uicapsule/particle-orb/preview.tsx","type":"registry:file"}]},{"$schema":"https://ui.shadcn.com/schema/registry.json","author":"Kaiyu Hsu <uicapsule@kyh.io>","categories":["controls","cyberpunk"],"dependencies":["@number-flow/react","motion"],"description":"Rotary dial slider — drag sideways to spin a ring of tick marks under a fixed needle; release and it springs to the nearest tick while the number readout rolls.","devDependencies":[],"homepage":"https://www.uicapsule.com/ui/radial-slider","name":"radial-slider","registryDependencies":[],"title":"Radial Slider","type":"registry:block","files":[{"path":"/preview.tsx","target":"uicapsule/radial-slider/preview.tsx","type":"registry:file"},{"path":"/radial-slider.tsx","target":"uicapsule/radial-slider/radial-slider.tsx","type":"registry:file"}]}],"name":"uicapsule"}