66 parts · shadcn registry
components.ishannaik.com
NAIK is the registry behind Ishan Naik’s sites — CloakBin, mumbai-rain, Apex, warp, cinematic scroll, Rush Labs. Plus the small APIs Kitze made obvious: dialog on desktop, drawer on a phone, one prop list. Install the source with the shadcn CLI. Change every pixel.
npx shadcn@latest add @naik/tilt-cardGlyph rain in Devanagari + IBM Plex Mono. Sodium, not Hollywood green.
CloakBin MatrixRain, original rewrite
Lamp-mote canvas. The air under a Mumbai street light.
krishanmangal GoldDust, original rewrite
Etched gold flakes for manuscript pages. Quiet, not glitter.
krishanmangal islands, original rewrite
Score ring that fills on a stroke, not a gradient doughnut.
apex AuraRing, original rewrite
Frosted asphalt panel. Tight radius, real blur, no neon edge.
apex GlassCard, original rewrite
Pressable with a physical inset. The CTA from Apex.
apex VoltButton, original rewrite
Ninety day ticks. Status page DNA from Rush Labs.
rushlabs-status-page UptimeBar, original rewrite
Operational banner: operational / degraded / down.
rushlabs-status-page StatusBanner, original rewrite
Rupees (or any currency) accruing per second.
money-meter, original rewrite
Bandra / Dadar / Andheri style place chip with a nowcast pip.
mumbai-rain, original rewrite
0–2h rain intensity as a mercury column. millimetres, not vibes.
mumbai-rain, original rewrite
Ward-level flood risk pip. Low / watch / waterlogged.
mumbai-rain flood zones, original rewrite
Peer-to-peer dropzone. Dashed hatch, file list, no cloud metaphor.
warp, original rewrite
The page fractures as you scroll. Heals when you stop.
doombreaker, original rewrite
Four-bar strength. Entropy-ish, not a lecture.
CloakBin PasswordStrength, original rewrite
Zero-knowledge lockup banner. The CloakBin promise, as a component.
CloakBin EncryptionBanner, original rewrite
Exportable result card. Score, handle, sodium rule.
apex ShareCard, original rewrite
Slow ash field. Canvas, capped, pauses offscreen.
original, not Aceternity sparkles
Diagonal hatch background from SplitUPI. Printable, not decorative noise.
splitUPI background-pattern, original rewrite
Pointer tilt with a specular sheen. Dead on touch and reduced motion.
cinematic-scroll-skill TiltCard (MIT, vanilla port)
Dot that lerps to the pointer and snaps to data-magnetic targets. Fine pointer only.
cinematic-scroll-skill MagneticCursor (MIT, vanilla port)
Split-line rise on enter. One well-timed reveal, not a bounce.
cinematic-scroll-skill KineticHeadline (MIT, vanilla port)
Eyebrow, title, summary stagger as the chapter hits the frame.
cinematic-scroll-skill PinnedReveal (MIT, vanilla port)
Four depth planes. CSS scroll-driven where supported, rAF fallback.
cinematic-scroll-skill HeroParallax (MIT, vanilla port)
Image that drifts inside its frame as you scroll past.
cinematic-scroll-skill DepthFigure (MIT, vanilla port)
Careted type-in. Respects reduced motion (shows the full line).
my-portfolio Typewriter, original rewrite
Seamless ticker. Pauses on hover and on reduced motion.
naikan MarqueeTicker, original rewrite
Count up when in view. Tabular figures, no bounce.
PixaLabs number-ticker idea, original rewrite
A travelling highlight on the border. CSS only, one beam.
original, not Magic UI
Pointer-follow wash on a panel. Fine pointer only.
original, not Aceternity Spotlight
The button you actually ship: loading, icons, link mode, sodium/water/ghost tones.
Kitze Custom Button API, rewritten
Tight status chip. Sodium, water, danger, mute.
Kitze Custom Badge API, rewritten
Keyboard key glyph that looks like a keycap, not a rounded pill.
Kitze Kbd, rewritten
List of chords with labels. For command palettes and help overlays.
Kitze Kbd Shortcuts, rewritten
Arc spinner. No emoji, no bouncing dots.
Kitze Spinner, rewritten
Inline notice with a left rule instead of a pastel card.
Kitze UI Alert, rewritten
Hairline rule, horizontal or vertical.
shadcn separator, restyled
Eyebrow, title, description, actions. The top of every settings page.
Kitze Page Header, rewritten
Underline tabs, not pill tabs. Keyboard-able.
Kitze Tab Panels, rewritten
Tiny info mark that opens a tooltip. For dense forms.
Kitze Help Info Circle, rewritten
Provider button with mark, label, and loading. GitHub / Google / Discord.
Kitze Social Login Button, rewritten
Traffic-light chrome around a demo. For landing shots, not OS cosplay.
Kitze Mac Window, rewritten
Condenses on scroll. Keeps the mark, sheds the extra.
Kitze Scrolling Header, rewritten
Wrap children in an extra node only when a flag is on.
Kitze Conditional Wrap, rewritten
content= string. No TooltipProvider ceremony at the call site.
Kitze Simple Tooltip, rewritten
Trigger + content. One component, not four primitives.
Kitze Simple Popover, rewritten
items=[{title, content}]. For FAQs without the compound-component tax.
Kitze Simple Accordion, rewritten
Vaul sheet from the bottom. Swipe to dismiss.
Kitze Bottom Drawer, rewritten
Dialog on desktop, drawer on a phone. Same props. This is the Kitze trick.
Kitze Responsive Dialog, rewritten
Dropdown on desktop, drawer list on mobile.
Kitze Responsive Dropdown Menu, rewritten
useConfirm() / useConfirmDelete(). Imperative dialogs from anywhere.
Kitze Dialog Manager, rewritten
Single-line field with a hard edge and a sodium focus ring.
Kitze Input, rewritten
Multiline field that grows with content when asked.
Kitze Form Field Textarea, rewritten
Latch, not a candy pill. Square travel, sodium on-state.
Kitze Switch, rewritten
Square check with an ink tick. No bouncing scale.
Kitze Checkbox, rewritten
Exclusive choice with a sodium disc.
Kitze Radio Group, rewritten
Label, description, and switch on one row. Click the copy.
Kitze Labeled Switch, rewritten
Label + hint wired to a checkbox. Whole row is the hit target.
Kitze Labeled Checkbox, rewritten
Label, optional hint, error, and control. The wrapper you rewrite in every app.
Kitze Form Field Wrapper, rewritten
Icon, field, clear, optional kbd. One component instead of four.
Kitze Search Bar, rewritten
Two to five exclusive options in a machined track.
Kitze Segmented Control, rewritten
options=[{value, label}]. Searchable when the list gets long.
Kitze Simple Select, rewritten
Multi, badges, search. The select you keep rewriting for filters.
Kitze Advanced Select, rewritten
Searchable Lucide grid. Returns the icon name, not a React node.
Kitze Icon Picker, rewritten
npx shadcn@latest add https://components.ishannaik.com/r/adaptive-dialog.json