{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "n3wth", "homepage": "https://kit.n3wth.com", "items": [ { "name": "n3wth", "type": "registry:style", "description": "Flat, minimal, iOS-inspired design system for n3wth projects.", "cssVars": { "theme": { "font-sans": "Inter, system-ui, -apple-system, sans-serif", "radius": "0.625rem" }, "light": { "background": "0 0% 100%", "foreground": "0 0% 3.9%", "primary": "0 0% 9%", "primary-foreground": "0 0% 98%", "muted": "0 0% 96.1%", "muted-foreground": "0 0% 45.1%", "accent": "0 0% 96.1%", "accent-foreground": "0 0% 9%", "border": "0 0% 89.8%", "ring": "0 0% 3.9%" }, "dark": { "background": "0 0% 0%", "foreground": "0 0% 98%", "primary": "0 0% 98%", "primary-foreground": "0 0% 9%", "muted": "0 0% 14.9%", "muted-foreground": "0 0% 63.9%", "accent": "0 0% 14.9%", "accent-foreground": "0 0% 98%", "border": "0 0% 14.9%", "ring": "0 0% 83.1%" } }, "files": [] }, { "name": "cn", "type": "registry:lib", "description": "Tailwind CSS class merge utility", "dependencies": ["clsx", "tailwind-merge"], "files": [ { "path": "registry/lib/cn/cn.ts", "type": "registry:lib" } ] }, { "name": "button", "type": "registry:ui", "title": "Button", "description": "Multi-variant button with responsive sizes, loading state, and asChild support.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/button/button.tsx", "type": "registry:ui" } ] }, { "name": "badge", "type": "registry:ui", "title": "Badge", "description": "Inline badge with semantic color variants (sage, coral, mint, gold).", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/badge/badge.tsx", "type": "registry:ui" } ] }, { "name": "input", "type": "registry:ui", "title": "Input", "description": "Text input with glass variant, icon slots, and error state.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/input/input.tsx", "type": "registry:ui" } ] }, { "name": "icon", "type": "registry:ui", "title": "Icon", "description": "Icon wrapper around iconoir-react with named icon map and size presets.", "dependencies": ["iconoir-react"], "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/icon/icon.tsx", "type": "registry:ui" } ] }, { "name": "switch", "type": "registry:ui", "title": "Switch", "description": "Toggle switch with controlled/uncontrolled modes and size variants.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/switch/switch.tsx", "type": "registry:ui" } ] }, { "name": "avatar", "type": "registry:ui", "title": "Avatar", "description": "Circular avatar with image, fallback initials, and size presets.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/avatar/avatar.tsx", "type": "registry:ui" } ] }, { "name": "separator", "type": "registry:ui", "title": "Separator", "description": "Horizontal or vertical visual separator.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/separator/separator.tsx", "type": "registry:ui" } ] }, { "name": "progress", "type": "registry:ui", "title": "Progress", "description": "Animated progress bar with value label and semantic color states.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/progress/progress.tsx", "type": "registry:ui" } ] }, { "name": "label", "type": "registry:ui", "title": "Label", "description": "Form label with required indicator and disabled state.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/label/label.tsx", "type": "registry:ui" } ] }, { "name": "textarea", "type": "registry:ui", "title": "Textarea", "description": "Textarea with resize control and error state.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/textarea/textarea.tsx", "type": "registry:ui" } ] }, { "name": "skeleton", "type": "registry:ui", "title": "Skeleton", "description": "Skeleton loading placeholder with text, circular, and rectangular variants.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/skeleton/skeleton.tsx", "type": "registry:ui" } ] }, { "name": "code-block", "type": "registry:ui", "title": "Code Block", "description": "Lightweight syntax-highlighting code block with line numbers.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/code-block/code-block.tsx", "type": "registry:ui" } ] }, { "name": "noise-overlay", "type": "registry:ui", "title": "Noise Overlay", "description": "SVG noise texture overlay for visual grain effect.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/noise-overlay/noise-overlay.tsx", "type": "registry:ui" } ] }, { "name": "scroll-indicator", "type": "registry:ui", "title": "Scroll Indicator", "description": "Animated scroll-down indicator with label and position presets.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/scroll-indicator/scroll-indicator.tsx", "type": "registry:ui" } ] }, { "name": "hamburger-icon", "type": "registry:ui", "title": "Hamburger Icon", "description": "Animated hamburger-to-X SVG icon for mobile menu toggles.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/hamburger-icon/hamburger-icon.tsx", "type": "registry:ui" } ] }, { "name": "animated-text", "type": "registry:ui", "title": "Animated Text", "description": "CSS-animated text with fade-up, fade-in, slide-up, and blur-in effects.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/animated-text/animated-text.tsx", "type": "registry:ui" } ] }, { "name": "shape", "type": "registry:ui", "title": "Shape", "description": "Decorative SVG shape with pattern fills and responsive sizing.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/shape/shape.tsx", "type": "registry:ui" }, { "path": "registry/new-york/shape/patterns.ts", "type": "registry:ui" } ] }, { "name": "character", "type": "registry:ui", "title": "Character", "description": "Expressive SVG character face with expressions and accessories.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/character/character.tsx", "type": "registry:ui" } ] }, { "name": "speech-bubble", "type": "registry:ui", "title": "Speech Bubble", "description": "Speech or thought bubble with directional tail.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/speech-bubble/speech-bubble.tsx", "type": "registry:ui" } ] }, { "name": "tooltip", "type": "registry:ui", "title": "Tooltip", "description": "Portal-based tooltip with auto-positioning and arrow.", "dependencies": ["react-dom"], "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/tooltip/tooltip.tsx", "type": "registry:ui" } ] }, { "name": "card", "type": "registry:ui", "title": "Card", "description": "Card container with default, glass, and interactive variants.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/card/card.tsx", "type": "registry:ui" } ] }, { "name": "nav-link", "type": "registry:ui", "title": "Nav Link", "description": "Navigation link with default, underline, and pill variants.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/nav-link/nav-link.tsx", "type": "registry:ui" } ] }, { "name": "command-box", "type": "registry:ui", "title": "Command Box", "description": "Copyable command display box with clipboard support.", "registryDependencies": ["cn", "icon"], "files": [ { "path": "registry/new-york/command-box/command-box.tsx", "type": "registry:ui" } ] }, { "name": "theme-toggle", "type": "registry:ui", "title": "Theme Toggle", "description": "Dark/light theme toggle button with sun/moon icons.", "registryDependencies": ["cn", "icon"], "files": [ { "path": "registry/new-york/theme-toggle/theme-toggle.tsx", "type": "registry:ui" } ] }, { "name": "mobile-drawer", "type": "registry:ui", "title": "Mobile Drawer", "description": "Slide-in drawer for mobile navigation with focus trap.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/mobile-drawer/mobile-drawer.tsx", "type": "registry:ui" } ] }, { "name": "error-boundary", "type": "registry:ui", "title": "Error Boundary", "description": "React error boundary with fallback UI and retry.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/error-boundary/error-boundary.tsx", "type": "registry:ui" } ] }, { "name": "composite-shape", "type": "registry:ui", "title": "Composite Shape", "description": "Multi-layer shape compositions with preset configurations.", "registryDependencies": ["cn", "shape"], "files": [ { "path": "registry/new-york/composite-shape/composite-shape.tsx", "type": "registry:ui" }, { "path": "registry/new-york/composite-shape/presets.ts", "type": "registry:ui" } ] }, { "name": "modal", "type": "registry:ui", "title": "Modal", "description": "Accessible modal dialog with portal, focus trap, and compound sub-components.", "dependencies": ["react-dom"], "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/modal/modal.tsx", "type": "registry:ui" } ] }, { "name": "tabs", "type": "registry:ui", "title": "Tabs", "description": "Accessible tabs with underline and pill variants and animated indicator.", "registryDependencies": ["cn", "use-reduced-motion"], "files": [ { "path": "registry/new-york/tabs/tabs.tsx", "type": "registry:ui" } ] }, { "name": "toast", "type": "registry:ui", "title": "Toast", "description": "Toast notification with variant styling and auto-dismiss.", "registryDependencies": ["cn", "icon"], "files": [ { "path": "registry/new-york/toast/toast.tsx", "type": "registry:ui" } ] }, { "name": "dropdown", "type": "registry:ui", "title": "Dropdown", "description": "Accessible dropdown select with single/multi-select and search.", "dependencies": ["react-dom"], "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/dropdown/dropdown.tsx", "type": "registry:ui" } ] }, { "name": "accordion", "type": "registry:ui", "title": "Accordion", "description": "Accessible accordion with single/multiple modes and animated content.", "registryDependencies": ["cn", "use-reduced-motion"], "files": [ { "path": "registry/new-york/accordion/accordion.tsx", "type": "registry:ui" } ] }, { "name": "nav", "type": "registry:block", "title": "Nav", "description": "Responsive navigation bar with desktop links, mobile drawer, and theme toggle.", "registryDependencies": ["cn", "nav-link", "theme-toggle", "mobile-drawer"], "files": [ { "path": "registry/new-york/nav/nav.tsx", "type": "registry:block" } ] }, { "name": "footer", "type": "registry:block", "title": "Footer", "description": "Site footer with link columns, social icons, and copyright.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/footer/footer.tsx", "type": "registry:block" } ] }, { "name": "hero", "type": "registry:block", "title": "Hero", "description": "Hero section with badge, title, description, and CTA buttons.", "registryDependencies": ["cn", "badge", "button"], "files": [ { "path": "registry/new-york/hero/hero.tsx", "type": "registry:block" } ] }, { "name": "section", "type": "registry:block", "title": "Section", "description": "Layout section wrapper with size, spacing, and container options.", "registryDependencies": ["cn"], "files": [ { "path": "registry/new-york/section/section.tsx", "type": "registry:block" } ] }, { "name": "use-theme", "type": "registry:hook", "description": "Theme toggle with localStorage persistence and system preference detection.", "files": [ { "path": "registry/hooks/use-theme/use-theme.ts", "type": "registry:hook" } ] }, { "name": "use-media-query", "type": "registry:hook", "description": "SSR-safe media query matching with breakpoint helpers.", "files": [ { "path": "registry/hooks/use-media-query/use-media-query.ts", "type": "registry:hook" } ] }, { "name": "use-reduced-motion", "type": "registry:hook", "description": "Detects prefers-reduced-motion and provides animation config defaults.", "files": [ { "path": "registry/hooks/use-reduced-motion/use-reduced-motion.ts", "type": "registry:hook" } ] }, { "name": "use-keyboard-shortcuts", "type": "registry:hook", "description": "Declarative keyboard shortcut handler with modifier key support.", "files": [ { "path": "registry/hooks/use-keyboard-shortcuts/use-keyboard-shortcuts.ts", "type": "registry:hook" } ] }, { "name": "use-toast", "type": "registry:hook", "description": "Toast notification system with context provider and variant helpers.", "registryDependencies": ["toast"], "files": [ { "path": "registry/hooks/use-toast/use-toast.ts", "type": "registry:hook" } ] }, { "name": "use-count-up", "type": "registry:hook", "description": "Animated number counter with scroll-trigger support.", "dependencies": ["gsap"], "files": [ { "path": "registry/hooks/use-count-up/use-count-up.ts", "type": "registry:hook" } ] }, { "name": "use-scroll-reveal", "type": "registry:hook", "description": "Scroll-triggered entrance animations with directional options.", "dependencies": ["gsap"], "files": [ { "path": "registry/hooks/use-scroll-reveal/use-scroll-reveal.ts", "type": "registry:hook" } ] }, { "name": "use-stagger-list", "type": "registry:hook", "description": "Staggered list item cascade animations.", "dependencies": ["gsap"], "files": [ { "path": "registry/hooks/use-stagger-list/use-stagger-list.ts", "type": "registry:hook" } ] }, { "name": "use-page-transition", "type": "registry:hook", "description": "Page entrance/exit fade-and-slide animations.", "dependencies": ["gsap"], "files": [ { "path": "registry/hooks/use-page-transition/use-page-transition.ts", "type": "registry:hook" } ] }, { "name": "use-text-reveal", "type": "registry:hook", "description": "Character-by-character text reveal with scroll trigger.", "dependencies": ["gsap"], "files": [ { "path": "registry/hooks/use-text-reveal/use-text-reveal.ts", "type": "registry:hook" } ] }, { "name": "use-button-pulse", "type": "registry:hook", "description": "Subtle hover/press scale animations for buttons.", "dependencies": ["gsap"], "files": [ { "path": "registry/hooks/use-button-pulse/use-button-pulse.ts", "type": "registry:hook" } ] } ] }