From d962483359d5f2a0c98e6fc447cc67b5b51b647b Mon Sep 17 00:00:00 2001 From: "Soroush.Asadi" Date: Thu, 21 May 2026 12:17:29 +0330 Subject: [PATCH] Initial commit from Create Next App --- .cursorrules | 58 + .eslintrc.json | 3 + .gitignore | 36 + README.md | 36 + next.config.mjs | 4 + package-lock.json | 6091 ++++++++++++++++++++++++++++++++ package.json | 26 + postcss.config.mjs | 8 + src/app/favicon.ico | Bin 0 -> 25931 bytes src/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes src/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes src/app/globals.css | 27 + src/app/layout.tsx | 35 + src/app/page.tsx | 101 + tailwind.config.ts | 19 + tsconfig.json | 26 + 16 files changed, 6470 insertions(+) create mode 100644 .cursorrules create mode 100644 .eslintrc.json create mode 100644 .gitignore create mode 100644 README.md create mode 100644 next.config.mjs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 src/app/favicon.ico create mode 100644 src/app/fonts/GeistMonoVF.woff create mode 100644 src/app/fonts/GeistVF.woff create mode 100644 src/app/globals.css create mode 100644 src/app/layout.tsx create mode 100644 src/app/page.tsx create mode 100644 tailwind.config.ts create mode 100644 tsconfig.json diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 0000000..175e522 --- /dev/null +++ b/.cursorrules @@ -0,0 +1,58 @@ +# Project: CreatorStudio +# A Renderforest-style platform with Video Maker and Image Maker products. + +## Stack +- Next.js 14 App Router (never use pages/ directory) +- TypeScript (strict mode, no `any`) +- Tailwind CSS for all styling (no inline styles, no CSS modules) +- shadcn/ui for base components (import from @/components/ui) +- Framer Motion for animations +- Lucide React for icons +- Supabase for auth + database +- Zustand for client state +- react-hook-form + zod for forms +- Stripe for payments + +## Folder Structure +- /app — Next.js routes only (page.tsx, layout.tsx, loading.tsx) +- /components/layout — Navbar, Footer, Sidebar +- /components/sections — Page sections (Hero, Pricing, FAQ, etc.) +- /components/ui — shadcn/ui components (do not edit these) +- /lib — supabase.ts, stripe.ts, utils.ts +- /hooks — custom React hooks + +## Code Rules +- Every component is a named export, never default export from a file with multiple exports +- Use `cn()` from @/lib/utils for conditional Tailwind classes +- Server Components by default; add "use client" only when needed (event handlers, hooks, animations) +- All images use next/image with width/height or fill + sizes +- No hardcoded colors — use Tailwind palette only +- Primary brand color: blue-600 (#2563EB) +- No useEffect for data fetching — use React Server Components or SWR +- Zod schema defined before the form component, not inside it + +## Design System +- Font: Plus Jakarta Sans (headings), Inter (body) +- Border radius: rounded-xl for cards, rounded-lg for buttons +- Shadows: shadow-sm default, shadow-xl for elevated cards +- Spacing scale: follow Tailwind defaults (don't invent custom values) +- Animations: max 400ms duration, ease-out easing, whileInView with viewport once:true + +## Component Patterns +- Section components accept className prop for layout overrides +- Cards use: bg-white rounded-xl border border-gray-100 shadow-sm +- Primary button: bg-blue-600 hover:bg-blue-700 text-white rounded-lg px-6 py-2.5 +- All interactive elements have focus-visible ring for accessibility +- Empty states include an illustration placeholder + CTA button + +## Products +- Video Maker: route /video-maker, accent color blue-600 +- Image Maker: route /image-maker, accent color violet-600 + +## What NOT to do +- Never use