Root cause of the all-black view: the gallery demo hardcoded <MultiStepLoader loading /> (loading=true forever), which renders a fixed inset-0 z-[100] backdrop-blur overlay over the entire viewport. Replace with an interactive demo (button triggers loader, auto-resets after 4s). Also soften flat-black dark backgrounds: - /ui page: dark:bg-black -> dark:bg-zinc-950 + subtle top radial gradient - home hero: dark:bg-black -> dark:bg-zinc-950 + white 6% radial gradient
74 lines
3.0 KiB
TypeScript
74 lines
3.0 KiB
TypeScript
import { Suspense } from "react";
|
|
import Link from "next/link";
|
|
import type { Metadata } from "next";
|
|
import { ShowcaseGallery } from "@/components/showcase/gallery";
|
|
|
|
export const metadata: Metadata = {
|
|
title: "UI Gallery — Aceternity",
|
|
description:
|
|
"Fifty-two Aceternity UI components vendored into the template — animated cards, beams, backgrounds, pins, marquees and more, wired for the App Router.",
|
|
};
|
|
|
|
const SECTIONS = [
|
|
"3D Pin / Marquee",
|
|
"Backgrounds & Beams",
|
|
"Cards & Hover",
|
|
"Text Effects",
|
|
"Inputs & Buttons",
|
|
];
|
|
|
|
export default function UiGalleryPage() {
|
|
return (
|
|
<div className="flex w-full flex-col items-center bg-zinc-50 dark:bg-zinc-950 dark:bg-[radial-gradient(ellipse_at_top,rgba(255,255,255,0.04),transparent_55%)]">
|
|
<div className="w-full border-b border-zinc-200 bg-white/80 py-10 backdrop-blur-sm dark:border-zinc-800 dark:bg-zinc-950/80">
|
|
<div className="mx-auto flex w-full max-w-6xl flex-col gap-3 px-6">
|
|
<nav className="text-xs font-medium tracking-wide text-zinc-500 dark:text-zinc-400">
|
|
<Link
|
|
href="/"
|
|
className="transition-colors hover:text-zinc-900 dark:hover:text-zinc-100"
|
|
>
|
|
Home
|
|
</Link>
|
|
<span className="px-2">/</span>
|
|
<span className="text-zinc-800 dark:text-zinc-200">UI Gallery</span>
|
|
</nav>
|
|
<h1 className="text-3xl font-semibold tracking-tight text-balance text-zinc-900 sm:text-4xl dark:text-zinc-50">
|
|
Aceternity UI gallery
|
|
</h1>
|
|
<p className="max-w-2xl text-sm leading-6 text-zinc-600 dark:text-zinc-400">
|
|
50 components vendored straight from the{" "}
|
|
<a
|
|
href="https://ui.aceternity.com/components"
|
|
className="font-medium text-zinc-900 underline decoration-zinc-300 underline-offset-4 hover:decoration-zinc-500 dark:text-zinc-200 dark:decoration-zinc-600"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
Aceternity registry
|
|
</a>{" "}
|
|
and wired for this template. Everything below is live — hover, click and scroll.
|
|
</p>
|
|
<div className="flex flex-wrap gap-2 pt-1">
|
|
{SECTIONS.map((s) => (
|
|
<a
|
|
key={s}
|
|
href={`#${s.toLowerCase().replace(/[^a-z0-9]+/g, "-")}`}
|
|
className="rounded-full border border-zinc-200 bg-white px-3 py-1 text-xs font-medium text-zinc-600 transition-colors hover:border-zinc-300 hover:text-zinc-900 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:border-zinc-700 dark:hover:text-zinc-100"
|
|
>
|
|
{s}
|
|
</a>
|
|
))}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<main className="w-full max-w-6xl flex-1 px-6 py-12">
|
|
<Suspense
|
|
fallback={<div className="py-24 text-center text-sm text-zinc-400">Loading gallery…</div>}
|
|
>
|
|
<ShowcaseGallery />
|
|
</Suspense>
|
|
</main>
|
|
</div>
|
|
);
|
|
}
|