dual-path-cta.tsx 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import Link from "next/link";
  2. import { ArrowRightIcon } from "@/components/icons/arrow-right";
  3. import { cn } from "@/lib/utils";
  4. const PATHS = [
  5. {
  6. href: "/business",
  7. label: "For business",
  8. title: "Trust without the theatre",
  9. body: "Confidential operations, publicly verifiable anchors. Built for partners who need proof, not buzzwords.",
  10. accent: "accent" as const,
  11. },
  12. {
  13. href: "/developers",
  14. label: "For developers",
  15. title: "Build on the hybrid path",
  16. body: "Docs, architecture, and a live portal to follow every private block and public anchor end to end.",
  17. accent: "proof" as const,
  18. },
  19. ] as const;
  20. export function DualPathCta({ className }: { className?: string }) {
  21. return (
  22. <div
  23. className={cn(
  24. "grid gap-4 md:grid-cols-2 md:gap-5",
  25. className,
  26. )}
  27. >
  28. {PATHS.map((path) => (
  29. <Link
  30. key={path.href}
  31. href={path.href}
  32. className={cn(
  33. "group relative flex flex-col overflow-hidden rounded-2xl border border-border bg-card p-7 transition-colors sm:p-8",
  34. "hover:border-foreground/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent",
  35. path.accent === "accent"
  36. ? "hover:bg-accent-muted/40"
  37. : "hover:bg-proof-muted/40",
  38. )}
  39. >
  40. <span
  41. className={cn(
  42. "text-xs font-medium uppercase tracking-[0.16em]",
  43. path.accent === "accent" ? "text-accent-hover" : "text-proof",
  44. )}
  45. >
  46. {path.label}
  47. </span>
  48. <span className="font-display mt-3 text-2xl font-semibold tracking-tight text-foreground">
  49. {path.title}
  50. </span>
  51. <span className="mt-3 flex-1 text-sm leading-relaxed text-muted-foreground">
  52. {path.body}
  53. </span>
  54. <span
  55. className={cn(
  56. "mt-6 inline-flex items-center gap-2 text-sm font-medium",
  57. path.accent === "accent" ? "text-accent-hover" : "text-proof",
  58. )}
  59. >
  60. Enter
  61. <ArrowRightIcon
  62. size={15}
  63. className="transition-transform group-hover:translate-x-0.5"
  64. />
  65. </span>
  66. <span
  67. aria-hidden
  68. className={cn(
  69. "pointer-events-none absolute -right-8 -top-8 h-32 w-32 rounded-full opacity-30 blur-3xl",
  70. path.accent === "accent" ? "bg-accent" : "bg-proof",
  71. )}
  72. />
  73. </Link>
  74. ))}
  75. </div>
  76. );
  77. }