{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "center-content-hero", "type": "registry:block", "title": "Center Content", "description": "A centered hero section with content", "registryDependencies": [ "utils" ], "files": [ { "path": "registry/default/blocks/hero-sections/center-content-hero/hero.tsx", "content": "'use client'\r\n\r\nimport Link from 'next/link'\r\nimport { cn } from '@/lib/utils'\r\nimport { buttonVariants } from '@/components/ui/button'\r\nimport { InteractiveGridPattern } from '@/components/ui/interactive-grid-pattern'\r\nimport { motion as m, Variants } from 'motion/react'\r\n\r\nconst staggerDelay = 0.4\r\nconst initialDelay = 0.2 // initial delay before the first element animates\r\nconst totalDelay = initialDelay + staggerDelay * 6 // number of elements animating\r\n\r\nexport default function Hero() {\r\n const variants = {\r\n hidden: () => ({\r\n opacity: 0,\r\n filter: 'blur(10px)',\r\n transform: 'translateY(10px) scale(0.95)',\r\n }),\r\n visible: (custom: number) => ({\r\n opacity: 1,\r\n transform: 'translateY(0) scale(1)',\r\n filter: 'blur(0)',\r\n transition: {\r\n delay: custom * staggerDelay + initialDelay,\r\n duration: 0.5,\r\n ease: 'easeInOut',\r\n },\r\n }),\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n {/* Hero Section */}\r\n
\r\n
\r\n

\r\n \r\n Starterkits.\r\n {' '}\r\n \r\n Components.\r\n {' '}\r\n \r\n Blocks.\r\n \r\n

\r\n \r\n \"Build faster with free{' '}\r\n Starter kits,\r\n Re-usable{' '}\r\n Components, and\r\n modular Blocks.\r\n Everything you need from{' '}\r\n MVP to\r\n \r\n {' '}\r\n production-ready applications.\r\n \r\n \"\r\n \r\n
\r\n \r\n svg]:px-4',\r\n })\r\n )}\r\n >\r\n Pro Toolkit\r\n \r\n \r\n \r\n svg]:px-4',\r\n })\r\n )}\r\n >\r\n Browse Free Resources\r\n \r\n \r\n
\r\n\r\n {/* Faded Lines on content */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\ninterface FadeLineProps {\r\n className?: string\r\n color?: string\r\n fadeWidth?: string\r\n orientation: 'horizontal' | 'vertical'\r\n opacity?: number\r\n width: string\r\n height?: string\r\n delay?: number\r\n}\r\n\r\nfunction FadeLine({\r\n className = '',\r\n color = 'var(--foreground)',\r\n fadeWidth = '25%',\r\n orientation,\r\n opacity = 1,\r\n width,\r\n height,\r\n delay = 0,\r\n}: FadeLineProps) {\r\n const gradientDirection =\r\n orientation === 'vertical' ? 'to bottom' : 'to right'\r\n\r\n const animationProps =\r\n orientation === 'vertical'\r\n ? {\r\n initial: { height: 0 },\r\n animate: { height },\r\n transition: {\r\n duration: 1.5,\r\n delay: delay + totalDelay,\r\n ease: 'easeOut' as const,\r\n },\r\n }\r\n : {\r\n initial: { width: 0 },\r\n animate: { width },\r\n transition: {\r\n duration: 1.5,\r\n delay: delay + totalDelay,\r\n ease: 'easeOut' as const,\r\n },\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n", "type": "registry:component", "target": "components/hero.tsx" }, { "path": "registry/default/blocks/hero-sections/center-content-hero/header.tsx", "content": "'use client'\r\n\r\nimport { Button, buttonVariants } from '@/components/ui/button'\r\nimport { cn } from '@/lib/utils'\r\nimport Link, { LinkProps } from 'next/link'\r\nimport React from 'react'\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from '@/components/ui/popover'\r\n\r\nconst navLinks = [\r\n {\r\n href: '#',\r\n label: 'Features',\r\n },\r\n {\r\n href: '#',\r\n label: 'About',\r\n },\r\n {\r\n href: '#',\r\n label: 'Pricing',\r\n },\r\n {\r\n href: '#',\r\n label: 'Contact',\r\n },\r\n {\r\n href: '#',\r\n label: 'Teams',\r\n },\r\n]\r\n\r\nexport default function Header() {\r\n return (\r\n
\r\n
\r\n \r\n \r\n Acme\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n Log in\r\n \r\n \r\n Sign up\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nfunction MobileNav() {\r\n const [open, setOpen] = React.useState(false)\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n Toggle Menu\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Menu\r\n
\r\n
\r\n {navLinks.map((item, index) => (\r\n \r\n {item.label}\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nfunction MobileLink({\r\n href,\r\n onOpenChange,\r\n className,\r\n children,\r\n ...props\r\n}: LinkProps & {\r\n onOpenChange?: (open: boolean) => void\r\n children: React.ReactNode\r\n className?: string\r\n}) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n", "type": "registry:component", "target": "components/header.tsx" } ] }