2 Commits
Author SHA1 Message Date
mytheclipsebotreview b986bc28b6 fix: auto-fix code quality [skip ci] 2026-09-21 15:42:51 +07:00
asepharyana ac6c6a4061 test: verify discord format 2026-09-21 15:39:38 +07:00
4 changed files with 11 additions and 30 deletions
+5 -20
View File
@@ -16,24 +16,6 @@ lint/typecheck/test/build pipeline.
- **Markdown:** react-markdown + remark-gfm + shiki (server-side highlighting) - **Markdown:** react-markdown + remark-gfm + shiki (server-side highlighting)
- **Misc:** zustand, nuqs, sonner, cmdk, vaul, embla-carousel-react, date-fns, - **Misc:** zustand, nuqs, sonner, cmdk, vaul, embla-carousel-react, date-fns,
next-themes, recharts 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 ## Getting started
@@ -69,8 +51,7 @@ Git hooks (husky + lint-staged) run ESLint + Prettier on staged files.
``` ```
app/ app/
page.tsx # landing page (HomeHero: Cover + Sparkles + Spotlight) page.tsx # landing page
ui/ # /ui gallery — 48 Aceternity effects, live demos
demo/ # wiring example: markdown+shiki, form, table, session demo/ # wiring example: markdown+shiki, form, table, session
protected/ # route guarded by middleware (better-auth session) protected/ # route guarded by middleware (better-auth session)
error.tsx / loading.tsx / not-found.tsx error.tsx / loading.tsx / not-found.tsx
@@ -134,3 +115,7 @@ NODE_ENV=production and the env vars above at runtime.
## License ## License
Private template. Private template.
## Test DC format
Verifying Discord notification formatting.
+2 -6
View File
@@ -14,12 +14,8 @@ const geistMono = Geist_Mono({
}); });
export const metadata: Metadata = { export const metadata: Metadata = {
title: { title: "Create Next App",
default: "Next.js Template — Aceternity + shadcn", description: "Generated by create next app",
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 }>) { export default function RootLayout({ children }: Readonly<{ children: React.ReactNode }>) {
+3 -3
View File
@@ -4,9 +4,9 @@ import type { Metadata } from "next";
import { ShowcaseGallery } from "@/components/showcase/gallery"; import { ShowcaseGallery } from "@/components/showcase/gallery";
export const metadata: Metadata = { export const metadata: Metadata = {
title: "UI Gallery — Aceternity + shadcn", title: "UI Gallery — Aceternity",
description: description:
"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.", "Fifty-two Aceternity UI components vendored into the template — animated cards, beams, backgrounds, pins, marquees and more, wired for the App Router.",
}; };
const SECTIONS = [ const SECTIONS = [
@@ -36,7 +36,7 @@ export default function UiGalleryPage() {
Aceternity UI gallery Aceternity UI gallery
</h1> </h1>
<p className="max-w-2xl text-sm leading-6 text-zinc-600 dark:text-zinc-400"> <p className="max-w-2xl text-sm leading-6 text-zinc-600 dark:text-zinc-400">
48 Aceternity effects vendored straight from the{" "} 50 components vendored straight from the{" "}
<a <a
href="https://ui.aceternity.com/components" 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" 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"
+1 -1
View File
@@ -34,7 +34,7 @@ export function HomeHero() {
className="relative z-10 flex w-full max-w-4xl flex-col items-center gap-8 px-6 py-24 text-center" className="relative z-10 flex w-full max-w-4xl flex-col items-center gap-8 px-6 py-24 text-center"
> >
<span className="rounded-full border border-zinc-200 bg-white/70 px-3 py-1 text-xs font-medium tracking-wide text-zinc-500 backdrop-blur dark:border-zinc-800 dark:bg-zinc-900/70 dark:text-zinc-400"> <span className="rounded-full border border-zinc-200 bg-white/70 px-3 py-1 text-xs font-medium tracking-wide text-zinc-500 backdrop-blur dark:border-zinc-800 dark:bg-zinc-900/70 dark:text-zinc-400">
Next.js 16 · Tailwind v4 · motion · 48 Aceternity effects + shadcn Next.js 16 · Tailwind v4 · motion · 50+ Aceternity components
</span> </span>
<h1 className="max-w-3xl text-4xl leading-tight font-semibold tracking-tight text-zinc-900 sm:text-6xl dark:text-white"> <h1 className="max-w-3xl text-4xl leading-tight font-semibold tracking-tight text-zinc-900 sm:text-6xl dark:text-white">