{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "footer-wordmark",
  "title": "Giant wordmark footer",
  "description": "Minimal footer that ends in an oversized outlined wordmark lighting up in brand colours under the pointer.",
  "dependencies": [
    "lucide-react"
  ],
  "registryDependencies": [
    "utils",
    "https://velora.colorlib.com/r/text-hover-effect.json"
  ],
  "files": [
    {
      "path": "src/components/blocks/footer-wordmark.tsx",
      "content": "import { ArrowUpRightIcon } from \"lucide-react\";\n\nimport { TextHoverEffect } from \"@/components/velora/text-hover-effect\";\n\nconst BRAND = \"Halcyon\";\nconst STATEMENT = \"Quiet software for loud problems.\";\nconst BLURB =\n  \"Halcyon is the incident desk for teams who would rather sleep through the night.\";\nconst EMAIL = \"hello@halcyon.dev\";\n\nconst LINKS = [\"Product\", \"Pricing\", \"Changelog\", \"Docs\", \"Careers\", \"Contact\"];\nconst LEGAL = [\"Privacy\", \"Terms\"];\n\nconst SOCIAL = [\n  {\n    label: \"X\",\n    path: \"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\",\n  },\n  {\n    label: \"GitHub\",\n    path: \"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\",\n  },\n  {\n    label: \"LinkedIn\",\n    path: \"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 1 1 0-4.125 2.062 2.062 0 0 1 0 4.125zM7.119 20.452H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\",\n  },\n];\n\nconst focusRing =\n  \"rounded-sm focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring\";\n\n/**\n * Minimal footer: a one-line statement, a short row of links and a legal\n * bar, closed off by the brand's name drawn as a giant outlined wordmark\n * that lights up in brand colours under the pointer.\n */\nexport function FooterWordmark() {\n  return (\n    <footer className=\"relative isolate overflow-hidden border-t bg-background px-6 pt-20 pb-6 sm:pt-24 sm:pb-8 lg:px-8\">\n      <h2 className=\"sr-only\">Footer</h2>\n      {/* Faint brand glow rising behind the wordmark */}\n      <div\n        aria-hidden\n        className=\"absolute inset-x-0 bottom-0 -z-10 h-2/3 bg-radial-[ellipse_at_50%_100%] from-brand/12 to-transparent to-70%\"\n      />\n\n      <div className=\"mx-auto max-w-7xl\">\n        <div className=\"grid gap-12 md:grid-cols-[minmax(0,1fr)_auto] md:items-end\">\n          <div className=\"max-w-md\">\n            <p className=\"text-2xl font-semibold tracking-tight text-balance sm:text-3xl\">{STATEMENT}</p>\n            <p className=\"mt-4 text-pretty text-muted-foreground\">{BLURB}</p>\n            <a\n              href=\"#\"\n              className={`group/email mt-6 inline-flex items-center gap-1.5 font-medium transition-colors hover:text-primary ${focusRing}`}\n            >\n              {EMAIL}\n              <ArrowUpRightIcon\n                aria-hidden\n                className=\"size-4 transition-transform group-hover/email:translate-x-0.5 group-hover/email:-translate-y-0.5 motion-reduce:transition-none\"\n              />\n            </a>\n          </div>\n\n          <nav aria-label=\"Footer\">\n            <ul className=\"grid grid-cols-2 gap-x-14 gap-y-3 text-sm sm:grid-cols-3\">\n              {LINKS.map((label) => (\n                <li key={label}>\n                  <a href=\"#\" className={`text-muted-foreground transition-colors hover:text-foreground ${focusRing}`}>\n                    {label}\n                  </a>\n                </li>\n              ))}\n            </ul>\n          </nav>\n        </div>\n\n        <div className=\"mt-14 flex flex-col-reverse gap-6 border-t pt-8 text-sm text-muted-foreground sm:flex-row sm:items-center sm:justify-between\">\n          <div className=\"flex flex-wrap items-center gap-x-6 gap-y-2\">\n            <p>© 2026 {BRAND} Labs</p>\n            {LEGAL.map((label) => (\n              <a key={label} href=\"#\" className={`transition-colors hover:text-foreground ${focusRing}`}>\n                {label}\n              </a>\n            ))}\n          </div>\n          <ul className=\"-ml-2 flex gap-1 sm:ml-0 sm:-mr-2\">\n            {SOCIAL.map(({ label, path }) => (\n              <li key={label}>\n                <a\n                  href=\"#\"\n                  aria-label={`${BRAND} on ${label}`}\n                  className=\"grid size-9 place-items-center rounded-full transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring\"\n                >\n                  <svg aria-hidden viewBox=\"0 0 24 24\" fill=\"currentColor\" className=\"size-4\">\n                    <path d={path} />\n                  </svg>\n                </a>\n              </li>\n            ))}\n          </ul>\n        </div>\n      </div>\n\n      <TextHoverEffect\n        text={BRAND.toLowerCase()}\n        className=\"mx-auto mt-8 max-w-7xl font-black tracking-tight sm:mt-12\"\n      />\n    </footer>\n  );\n}\n",
      "type": "registry:component",
      "target": "components/blocks/footer-wordmark.tsx"
    }
  ],
  "categories": [
    "footers"
  ],
  "type": "registry:block"
}