src/components/uiable/blocks/landing/banner/banner.tsx
// next
import Link from "next/link"
// third-party
import { cn } from "cn"
// assets
import { ArrowRight } from "lucide-react"
// types
interface BannerProps {
className?: string
}
// ------------------------------ | COMPONENT - BANNER | ------------------------------ //
export default function Banner({ className }: BannerProps) {
return (
<section
aria-label="Promotional offer"
className={cn(
"relative isolate w-full overflow-hidden bg-violet-600 text-white",
className
)}
>
<div
aria-hidden
className="pointer-events-none absolute -top-24 left-[12%] -z-10 size-64 rounded-full bg-violet-200/30 blur-3xl"
/>
<div className="mx-auto flex max-w-6xl flex-wrap items-center justify-center gap-x-3.5 gap-y-1.5 px-4 py-2.5 sm:px-8">
<span className="inline-flex shrink-0 items-center gap-2 rounded-full border border-white/20 bg-white/15 px-2.5 py-1 text-xs font-semibold text-white">
<span className="size-1.5 animate-pulse rounded-full bg-white shadow-[0_0_0_4px] shadow-white/30" />
Launch offer
</span>
<p className="text-sm leading-5 text-white/90">
Grab lifetime access before the offer ends.
</p>
<Link
href="/pricing"
className="group inline-flex shrink-0 items-center gap-1.5 rounded-full bg-yellow-400 px-3 py-1 text-sm font-semibold text-violet-800 transition-all hover:bg-yellow-300"
>
Claim 70% off
<ArrowRight
aria-hidden="true"
className="size-3.5 transition-transform group-hover:translate-x-0.5"
/>
</Link>
</div>
</section>
)
}