"use client"; import { cn } from "@/lib/utils"; import { motion } from "motion/react"; import { AuroraBackground } from "@/components/ui/aurora-background"; import { BackgroundBeams } from "@/components/ui/background-beams"; import { BackgroundGradientAnimation } from "@/components/ui/background-gradient-animation"; import { BentoGrid, BentoGridItem } from "@/components/ui/bento-grid"; import { CardSpotlight } from "@/components/ui/card-spotlight"; import { CardStack } from "@/components/ui/card-stack"; import { DirectionAwareHover } from "@/components/ui/direction-aware-hover"; import { EncryptedText } from "@/components/ui/encrypted-text"; import { EvervaultCard } from "@/components/ui/evervault-card"; import { FlipWords } from "@/components/ui/flip-words"; import { HeroHighlight, Highlight } from "@/components/ui/hero-highlight"; import { InfiniteMovingCards } from "@/components/ui/infinite-moving-cards"; import { MovingBorder } from "@/components/ui/moving-border"; import { PinContainer } from "@/components/ui/3d-pin"; import { PlaceholdersAndVanishInput } from "@/components/ui/placeholders-and-vanish-input"; import { SparklesCore } from "@/components/ui/sparkles"; import { ThreeDMarquee } from "@/components/ui/3d-marquee"; import { TracingBeam } from "@/components/ui/tracing-beam"; import { TypewriterEffect } from "@/components/ui/typewriter-effect"; import { AnimatedTooltip } from "@/components/ui/animated-tooltip"; import { Tabs } from "@/components/ui/animated-tabs"; import { WavyBackground } from "@/components/ui/wavy-background"; import { Boxes } from "@/components/ui/background-boxes"; import { Spotlight } from "@/components/ui/spotlight"; import { Cover } from "@/components/ui/cover"; import { TextGenerateEffect } from "@/components/ui/text-generate-effect"; import { TextHoverEffect } from "@/components/ui/text-hover-effect"; import { SquigglyText } from "@/components/ui/squiggly-text"; import { TextRevealCard, TextRevealCardTitle, TextRevealCardDescription, } from "@/components/ui/text-reveal-card"; import { Meteors } from "@/components/ui/meteors"; import { GlareCard } from "@/components/ui/glare-card"; import { MagneticButton } from "@/components/ui/magnetic-button"; import { GooeyInput } from "@/components/ui/gooey-input"; import { Notch } from "@/components/ui/notch"; import { FloatingDock } from "@/components/ui/floating-dock"; import { HeroParallax } from "@/components/ui/hero-parallax"; import { ParallaxScroll } from "@/components/ui/parallax-scroll"; import { ContainerScroll } from "@/components/ui/container-scroll-animation"; import { StickyScroll } from "@/components/ui/sticky-scroll-reveal"; import { Timeline } from "@/components/ui/timeline"; import { FocusCards } from "@/components/ui/focus-cards"; import { Tooltip } from "@/components/ui/tooltip-card"; import { HoverEffect } from "@/components/ui/card-hover-effect"; import { BackgroundGradient } from "@/components/ui/background-gradient"; import { MultiStepLoader } from "@/components/ui/multi-step-loader"; import { ModalProvider, Modal, ModalTrigger, ModalBody, ModalContent, ModalFooter, } from "@/components/ui/animated-modal"; import { MaskContainer } from "@/components/ui/svg-mask-effect"; import { GoogleGeminiEffect } from "@/components/ui/google-gemini-effect"; import { IconHome, IconUser, IconSettings, IconMoon, IconSun } from "@tabler/icons-react"; import { useScroll, useTransform, MotionValue } from "motion/react"; function Card({ children, className, label, }: { children: React.ReactNode; className?: string; label?: string; }) { return (
{children} {label && ( {label} )}
); } function SectionLabel({ id, index, title }: { id: string; index: string; title: string }) { return (
{index}

{title}

); } const BENTO_ITEMS = [ { title: "Vendored, not installed", description: "Each component ships as source in components/ui — zero registry lock-in.", header: "✦", className: "md:col-span-2", }, { title: "Tailwind v4 native", description: "Same cn() util and zinc palette as the rest of the template.", header: "❖", }, { title: "Zero-warning lint", description: "Vendored dir has its own scoped eslint override.", header: "✓", className: "md:col-span-2", }, ]; const PEOPLE = [ { id: 1, name: "Aceternity", designation: "ui.aceternity.com", image: "/vercel.svg" }, { id: 2, name: "Vercel", designation: "nextjs-template", image: "/next.svg" }, { id: 3, name: "Template", designation: "Shadcn + Aceternity", image: "/vercel.svg" }, ]; const STACK_CARDS = [ { id: 1, name: "3D Pin", designation: "Hover cards", content: <>A card that lifts on hover, with a beam behind it., }, { id: 2, name: "Tracing Beam", designation: "Scroll guide", content: <>A beam that traces your scroll, guiding the eye down the page., }, { id: 3, name: "Evervault", designation: "Encrypted hover", content: <>Patterns react to your mouse while the card sits above an animated capsule., }, ]; const TESTIMONIALS_MOCK = [ { quote: "The fifty components slot straight into the template and just work.", name: "Next.js Template", title: "Vendored showcase", }, { quote: "Hover, scroll and type — everything below is live, not a static screenshot.", name: "Aceternity Registry", title: "ui.aceternity.com", }, { quote: "Built with motion/react and Tailwind v4, matching the template's own stack.", name: "Motion", title: "motion/react", }, ]; export function ShowcaseGallery() { return (

50 components · vendored · lint-clean

Aceternity UI, wired for this template

Animated cards, beams, bento grids and text effects — pulled from the registry, adapted to Tailwind v4 + motion/react, and demoed live on this page.

BackgroundBeams — hover to see the glow

SparklesCore

BackgroundGradientAnimation

Animated aurora wash behind any content

Hover me

3D Pin

Perspective lift

on hover

CardSpotlight

Move your cursor for a spotlight.

DirectionAwareHover

{BENTO_ITEMS.map((item, i) => ( ))} MovingBorder
Text effects with{" "} mouse-follow highlight
Animate text like
{[ ["Beam one", "The beam follows your scroll."], ["Beam two", "It traces between sticky sections."], ["Beam three", "Pairs perfectly with tall content."], ].map(([t, d]) => (

{t}

{d}

))}
{}} onSubmit={() => {}} />

WavyBackground

Animated SVG waves behind content.

Boxes — grid dots pattern

Spotlight

BackgroundGradient — animated border glow

Outline Cover underline

SquigglyText wobble TextRevealCard The card's cyan gradient sweeps in on hover.

Meteors

GlareCard

MagneticButton
}, { id: "dark", label: "Dark", icon: }, ], }, ]} /> , href: "#" }, { title: "Profile", icon: , href: "#" }, { title: "Settings", icon: , href: "#" }, ]} /> Open animated modal

Animated Modal

The modal scales and fades, with a fancy backdrop.

ContainerScroll

} >

The card scales up as you scroll past.

Vendor registry components into the template., }, { title: "2026 · Phase 2", content: <>Showcase gallery + home hero upgrade. }, { title: "2026 · Phase 3", content: <>Zero-warning toolchain, green CI, auto-deploy., }, ]} />
Tooltip on hover

}> Hover this for a tooltip
Revealed!

} className="h-[16rem]" >

Hover over this masked block

Overview tab

, }, { title: "Details", value: "details", content:

Details tab

, }, { title: "Settings", value: "settings", content:

Settings tab

, }, ]} />
); } function GeminiDemo() { const { scrollYProgress } = useScroll(); const pathLengths: MotionValue[] = [ useTransform(scrollYProgress, [0, 0.2], [0, 1]), useTransform(scrollYProgress, [0.2, 0.4], [0, 1]), useTransform(scrollYProgress, [0.4, 0.6], [0, 1]), useTransform(scrollYProgress, [0.6, 0.8], [0, 1]), useTransform(scrollYProgress, [0.8, 1], [0, 1]), ]; return ( ); }