{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "footer-5", "type": "registry:block", "description": "Sticky layered footer with gradient background, social icons, and animated link groups.", "dependencies": [ "motion" ], "registryDependencies": [ "button" ], "files": [ { "path": "registry/blocks/footer/5/sticky-footer.tsx", "content": "\"use client\";\nimport {\n FacebookIcon,\n InstagramIcon,\n LinkedinIcon,\n YoutubeIcon,\n} from \"lucide-react\";\nimport { motion, useReducedMotion } from \"motion/react\";\nimport type React from \"react\";\nimport { Logo } from \"@/components/logo\";\nimport { Button } from \"@/components/ui/button\";\n\ntype FooterLink = {\n title: string;\n href: string;\n icon?: React.ComponentType<{ className?: string }>;\n};\ntype FooterLinkGroup = {\n label: string;\n links: FooterLink[];\n};\n\nexport function StickyFooter() {\n return (\n \n );\n}\n\nconst socialLinks = [\n { title: \"Facebook\", href: \"#\", icon: FacebookIcon },\n { title: \"Instagram\", href: \"#\", icon: InstagramIcon },\n { title: \"Youtube\", href: \"#\", icon: YoutubeIcon },\n { title: \"LinkedIn\", href: \"#\", icon: LinkedinIcon },\n];\n\nconst footerLinkGroups: FooterLinkGroup[] = [\n {\n label: \"Product\",\n links: [\n { title: \"Payments\", href: \"#\" },\n { title: \"Cards & Issuing\", href: \"#\" },\n { title: \"Lending & Credit\", href: \"#\" },\n { title: \"Wealth Management\", href: \"#\" },\n { title: \"Insurance\", href: \"#\" },\n { title: \"Crypto Wallets\", href: \"#\" },\n { title: \"FX & Currency Exchange\", href: \"#\" },\n { title: \"Treasury Management\", href: \"#\" },\n { title: \"Merchant Services\", href: \"#\" },\n { title: \"Point of Sale\", href: \"#\" },\n { title: \"Embedded Finance\", href: \"#\" },\n { title: \"Open Banking API\", href: \"#\" },\n { title: \"SDKs & Integrations\", href: \"#\" },\n { title: \"Pricing\", href: \"#\" },\n ],\n },\n {\n label: \"Solutions\",\n links: [\n { title: \"Startups\", href: \"#\" },\n { title: \"Enterprises\", href: \"#\" },\n { title: \"Marketplaces\", href: \"#\" },\n { title: \"Freelancers\", href: \"#\" },\n { title: \"E-commerce\", href: \"#\" },\n { title: \"Banks & Credit Unions\", href: \"#\" },\n { title: \"Investment Platforms\", href: \"#\" },\n { title: \"Insurance Providers\", href: \"#\" },\n { title: \"Payment Gateways\", href: \"#\" },\n { title: \"Government & Public Sector\", href: \"#\" },\n { title: \"Nonprofits\", href: \"#\" },\n { title: \"Education\", href: \"#\" },\n { title: \"Healthcare\", href: \"#\" },\n ],\n },\n {\n label: \"Resources\",\n links: [\n { title: \"Blog\", href: \"#\" },\n { title: \"Case Studies\", href: \"#\" },\n { title: \"Documentation\", href: \"#\" },\n { title: \"API Reference\", href: \"#\" },\n { title: \"Developer Tools\", href: \"#\" },\n { title: \"Guides & Tutorials\", href: \"#\" },\n { title: \"Whitepapers\", href: \"#\" },\n { title: \"Reports & Research\", href: \"#\" },\n { title: \"Events & Webinars\", href: \"#\" },\n { title: \"E-books\", href: \"#\" },\n { title: \"Community Forum\", href: \"#\" },\n { title: \"Release Notes\", href: \"#\" },\n { title: \"System Status\", href: \"#\" },\n ],\n },\n {\n label: \"Company\",\n links: [\n { title: \"About Us\", href: \"#\" },\n { title: \"Leadership\", href: \"#\" },\n { title: \"Careers\", href: \"#\" },\n { title: \"Press\", href: \"#\" },\n { title: \"Sustainability\", href: \"#\" },\n { title: \"Diversity & Inclusion\", href: \"#\" },\n { title: \"Investor Relations\", href: \"#\" },\n { title: \"Partners\", href: \"#\" },\n { title: \"Legal & Compliance\", href: \"#\" },\n { title: \"Privacy Policy\", href: \"#\" },\n { title: \"Cookie Policy\", href: \"#\" },\n { title: \"Terms of Service\", href: \"#\" },\n { title: \"AML & KYC Policy\", href: \"#\" },\n { title: \"Regulatory Disclosures\", href: \"#\" },\n ],\n },\n];\n\ntype AnimatedContainerProps = React.ComponentProps & {\n children?: React.ReactNode;\n delay?: number;\n};\n\nfunction AnimatedContainer({\n delay = 0.1,\n children,\n ...props\n}: AnimatedContainerProps) {\n const shouldReduceMotion = useReducedMotion();\n\n if (shouldReduceMotion) {\n return children;\n }\n\n return (\n \n {children}\n \n );\n}\n", "type": "registry:component" }, { "path": "components/logo.tsx", "content": "import type React from \"react\";\n\nexport const LogoIcon = (props: React.ComponentProps<\"svg\">) => (\n \n \n \n \n \n \n);\n\nexport const Logo = (props: React.ComponentProps<\"svg\">) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n", "type": "registry:component" } ], "categories": [ "footer" ] }