From f1c7b09f09600a5a4868619178c72b4f4a58b9b4 Mon Sep 17 00:00:00 2001 From: asepharyana <48643666+asepharyana@users.noreply.github.com> Date: Tue, 22 Sep 2026 17:10:11 +0700 Subject: [PATCH] fix: correct metadata, gallery counts, and README for Aceternity set (#23) --- README.md | 21 ++++++++++++++++++++- app/layout.tsx | 8 ++++++-- app/ui/page.tsx | 6 +++--- components/home-hero.tsx | 2 +- 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f286ebb..a15c7a5 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,24 @@ lint/typecheck/test/build pipeline. - **Markdown:** react-markdown + remark-gfm + shiki (server-side highlighting) - **Misc:** zustand, nuqs, sonner, cmdk, vaul, embla-carousel-react, date-fns, next-themes, recharts +- **Motion effects:** 48 Aceternity UI effects vendored as source in + `components/ui/` (motion + @tabler/icons-react + @tsparticles + simplex-noise), + showcased live at `/ui` + +## UI gallery (`/ui`) + +48 Aceternity effects (3d-pin, bento-grid, sparkles, tracing-beam, …) vendored +verbatim from the [Aceternity registry](https://ui.aceternity.com/components) +and demoed live in `components/showcase/gallery.tsx`. The shadcn Base-Nova set +(accordions, dialogs, tables, …) ships alongside in the same `components/ui/` +dir — 110 files total. + +| Rule | Detail | +| ------------- | ----------------------------------------------------------------------- | +| Source | Registry JSON, verbatim + `motion/react` / `cn` import fixes | +| Rename | Aceternity tabs → `animated-tabs.tsx` (collides with shadcn `tabs.tsx`) | +| Skipped | three.js trio, apple-cards-carousel (heavy deps, out of scope) | +| Overlay demos | `MultiStepLoader` demo is state-gated — never hardcode `loading` | ## Getting started @@ -51,7 +69,8 @@ Git hooks (husky + lint-staged) run ESLint + Prettier on staged files. ``` app/ - page.tsx # landing page + page.tsx # landing page (HomeHero: Cover + Sparkles + Spotlight) + ui/ # /ui gallery — 48 Aceternity effects, live demos demo/ # wiring example: markdown+shiki, form, table, session protected/ # route guarded by middleware (better-auth session) error.tsx / loading.tsx / not-found.tsx diff --git a/app/layout.tsx b/app/layout.tsx index 5c57e7e..dd11e9e 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -14,8 +14,12 @@ const geistMono = Geist_Mono({ }); export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: { + default: "Next.js Template — Aceternity + shadcn", + template: "%s — Next.js Template", + }, + description: + "Production-ready Next.js 16 starter on Bun with 48 vendored Aceternity UI effects, shadcn Base-Nova components, Tailwind v4, motion, better-auth and a typed API client.", }; export default function RootLayout({ children }: Readonly<{ children: React.ReactNode }>) { diff --git a/app/ui/page.tsx b/app/ui/page.tsx index 49de042..2d33e4f 100644 --- a/app/ui/page.tsx +++ b/app/ui/page.tsx @@ -4,9 +4,9 @@ import type { Metadata } from "next"; import { ShowcaseGallery } from "@/components/showcase/gallery"; export const metadata: Metadata = { - title: "UI Gallery — Aceternity", + title: "UI Gallery — Aceternity + shadcn", description: - "Fifty-two Aceternity UI components vendored into the template — animated cards, beams, backgrounds, pins, marquees and more, wired for the App Router.", + "Forty-eight Aceternity UI effects vendored into the template — animated cards, beams, backgrounds, pins, marquees and more, wired for the App Router, alongside the full shadcn Base-Nova set.", }; const SECTIONS = [ @@ -36,7 +36,7 @@ export default function UiGalleryPage() { Aceternity UI gallery
- 50 components vendored straight from the{" "}
+ 48 Aceternity effects vendored straight from the{" "}
- Next.js 16 · Tailwind v4 · motion · 50+ Aceternity components
+ Next.js 16 · Tailwind v4 · motion · 48 Aceternity effects + shadcn