Files
vibn-frontend/marketing/components/hero.tsx
Mark Henderson bada63452f feat(ui): apply Justine ink & parchment design system
- Map Justine tokens to shadcn CSS variables (--vibn-* aliases)
- Switch fonts to Inter + Lora via next/font (IBM Plex Mono for code)
- Base typography: body Inter, h1–h3 Lora; marketing hero + wordmark serif
- Project shell and global chrome use semantic colors
- Replace Outfit/Newsreader references across TSX inline styles

Made-with: Cursor
2026-04-01 21:03:40 -07:00

44 lines
1.5 KiB
TypeScript

import { Button } from "@/components/ui/button";
import Link from "next/link";
import { Sparkles, ArrowRight } from "lucide-react";
import { homepage } from "@/marketing/content/homepage";
export function Hero() {
return (
<section className="w-full">
<div className="container mx-auto px-6">
<div className="flex flex-col items-center gap-6 pb-16 pt-16 md:py-24 lg:py-32">
<div className="flex max-w-[980px] flex-col items-center gap-6 text-center">
{/* Main title */}
<h1 className="font-serif text-3xl font-bold leading-tight tracking-tight md:text-5xl md:font-semibold lg:text-6xl lg:leading-[1.1]">
{homepage.hero.title}
</h1>
{/* Subtitle */}
<p className="max-w-[750px] text-lg text-muted-foreground sm:text-xl md:text-2xl">
{homepage.hero.subtitle}
</p>
{/* CTAs */}
<div className="flex flex-col sm:flex-row gap-4 mt-4">
<Link href="/auth">
<Button size="lg" className="h-12 px-8 text-base">
<Sparkles className="mr-2 h-5 w-5" />
{homepage.hero.cta.primary}
</Button>
</Link>
<Link href="#how-it-works">
<Button variant="outline" size="lg" className="h-12 px-8 text-base">
{homepage.hero.cta.secondary}
<ArrowRight className="ml-2 h-5 w-5" />
</Button>
</Link>
</div>
</div>
</div>
</div>
</section>
);
}