Initial project setup with Next.js accounts manager
- Set up Next.js project structure - Added UI components and styling - Configured package dependencies - Added feature documentation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
		
							
								
								
									
										124
									
								
								app/globals.css
									
									
									
									
									
								
							
							
						
						
									
										124
									
								
								app/globals.css
									
									
									
									
									
								
							| @@ -1,26 +1,122 @@ | ||||
| @import "tailwindcss"; | ||||
| @import "tw-animate-css"; | ||||
|  | ||||
| :root { | ||||
|   --background: #ffffff; | ||||
|   --foreground: #171717; | ||||
| } | ||||
| @custom-variant dark (&:is(.dark *)); | ||||
|  | ||||
| @theme inline { | ||||
|   --color-background: var(--background); | ||||
|   --color-foreground: var(--foreground); | ||||
|   --font-sans: var(--font-geist-sans); | ||||
|   --font-mono: var(--font-geist-mono); | ||||
|   --color-sidebar-ring: var(--sidebar-ring); | ||||
|   --color-sidebar-border: var(--sidebar-border); | ||||
|   --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); | ||||
|   --color-sidebar-accent: var(--sidebar-accent); | ||||
|   --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); | ||||
|   --color-sidebar-primary: var(--sidebar-primary); | ||||
|   --color-sidebar-foreground: var(--sidebar-foreground); | ||||
|   --color-sidebar: var(--sidebar); | ||||
|   --color-chart-5: var(--chart-5); | ||||
|   --color-chart-4: var(--chart-4); | ||||
|   --color-chart-3: var(--chart-3); | ||||
|   --color-chart-2: var(--chart-2); | ||||
|   --color-chart-1: var(--chart-1); | ||||
|   --color-ring: var(--ring); | ||||
|   --color-input: var(--input); | ||||
|   --color-border: var(--border); | ||||
|   --color-destructive: var(--destructive); | ||||
|   --color-accent-foreground: var(--accent-foreground); | ||||
|   --color-accent: var(--accent); | ||||
|   --color-muted-foreground: var(--muted-foreground); | ||||
|   --color-muted: var(--muted); | ||||
|   --color-secondary-foreground: var(--secondary-foreground); | ||||
|   --color-secondary: var(--secondary); | ||||
|   --color-primary-foreground: var(--primary-foreground); | ||||
|   --color-primary: var(--primary); | ||||
|   --color-popover-foreground: var(--popover-foreground); | ||||
|   --color-popover: var(--popover); | ||||
|   --color-card-foreground: var(--card-foreground); | ||||
|   --color-card: var(--card); | ||||
|   --radius-sm: calc(var(--radius) - 4px); | ||||
|   --radius-md: calc(var(--radius) - 2px); | ||||
|   --radius-lg: var(--radius); | ||||
|   --radius-xl: calc(var(--radius) + 4px); | ||||
| } | ||||
|  | ||||
| @media (prefers-color-scheme: dark) { | ||||
|   :root { | ||||
|     --background: #0a0a0a; | ||||
|     --foreground: #ededed; | ||||
| :root { | ||||
|   --radius: 0.625rem; | ||||
|   --background: oklch(1 0 0); | ||||
|   --foreground: oklch(0.145 0 0); | ||||
|   --card: oklch(1 0 0); | ||||
|   --card-foreground: oklch(0.145 0 0); | ||||
|   --popover: oklch(1 0 0); | ||||
|   --popover-foreground: oklch(0.145 0 0); | ||||
|   --primary: oklch(0.205 0 0); | ||||
|   --primary-foreground: oklch(0.985 0 0); | ||||
|   --secondary: oklch(0.97 0 0); | ||||
|   --secondary-foreground: oklch(0.205 0 0); | ||||
|   --muted: oklch(0.97 0 0); | ||||
|   --muted-foreground: oklch(0.556 0 0); | ||||
|   --accent: oklch(0.97 0 0); | ||||
|   --accent-foreground: oklch(0.205 0 0); | ||||
|   --destructive: oklch(0.577 0.245 27.325); | ||||
|   --border: oklch(0.922 0 0); | ||||
|   --input: oklch(0.922 0 0); | ||||
|   --ring: oklch(0.708 0 0); | ||||
|   --chart-1: oklch(0.646 0.222 41.116); | ||||
|   --chart-2: oklch(0.6 0.118 184.704); | ||||
|   --chart-3: oklch(0.398 0.07 227.392); | ||||
|   --chart-4: oklch(0.828 0.189 84.429); | ||||
|   --chart-5: oklch(0.769 0.188 70.08); | ||||
|   --sidebar: oklch(0.985 0 0); | ||||
|   --sidebar-foreground: oklch(0.145 0 0); | ||||
|   --sidebar-primary: oklch(0.205 0 0); | ||||
|   --sidebar-primary-foreground: oklch(0.985 0 0); | ||||
|   --sidebar-accent: oklch(0.97 0 0); | ||||
|   --sidebar-accent-foreground: oklch(0.205 0 0); | ||||
|   --sidebar-border: oklch(0.922 0 0); | ||||
|   --sidebar-ring: oklch(0.708 0 0); | ||||
| } | ||||
|  | ||||
| .dark { | ||||
|   --background: oklch(0.145 0 0); | ||||
|   --foreground: oklch(0.985 0 0); | ||||
|   --card: oklch(0.205 0 0); | ||||
|   --card-foreground: oklch(0.985 0 0); | ||||
|   --popover: oklch(0.205 0 0); | ||||
|   --popover-foreground: oklch(0.985 0 0); | ||||
|   --primary: oklch(0.922 0 0); | ||||
|   --primary-foreground: oklch(0.205 0 0); | ||||
|   --secondary: oklch(0.269 0 0); | ||||
|   --secondary-foreground: oklch(0.985 0 0); | ||||
|   --muted: oklch(0.269 0 0); | ||||
|   --muted-foreground: oklch(0.708 0 0); | ||||
|   --accent: oklch(0.269 0 0); | ||||
|   --accent-foreground: oklch(0.985 0 0); | ||||
|   --destructive: oklch(0.704 0.191 22.216); | ||||
|   --border: oklch(1 0 0 / 10%); | ||||
|   --input: oklch(1 0 0 / 15%); | ||||
|   --ring: oklch(0.556 0 0); | ||||
|   --chart-1: oklch(0.488 0.243 264.376); | ||||
|   --chart-2: oklch(0.696 0.17 162.48); | ||||
|   --chart-3: oklch(0.769 0.188 70.08); | ||||
|   --chart-4: oklch(0.627 0.265 303.9); | ||||
|   --chart-5: oklch(0.645 0.246 16.439); | ||||
|   --sidebar: oklch(0.205 0 0); | ||||
|   --sidebar-foreground: oklch(0.985 0 0); | ||||
|   --sidebar-primary: oklch(0.488 0.243 264.376); | ||||
|   --sidebar-primary-foreground: oklch(0.985 0 0); | ||||
|   --sidebar-accent: oklch(0.269 0 0); | ||||
|   --sidebar-accent-foreground: oklch(0.985 0 0); | ||||
|   --sidebar-border: oklch(1 0 0 / 10%); | ||||
|   --sidebar-ring: oklch(0.556 0 0); | ||||
| } | ||||
|  | ||||
| @layer base { | ||||
|   * { | ||||
|     @apply border-border outline-ring/50; | ||||
|   } | ||||
|   body { | ||||
|     @apply bg-background text-foreground; | ||||
|   } | ||||
| } | ||||
|  | ||||
| body { | ||||
|   background: var(--background); | ||||
|   color: var(--foreground); | ||||
|   font-family: Arial, Helvetica, sans-serif; | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| import type { Metadata } from "next"; | ||||
| import { Geist, Geist_Mono } from "next/font/google"; | ||||
| import "./globals.css"; | ||||
| import { Toaster } from "@/components/ui/sonner"; | ||||
|  | ||||
| const geistSans = Geist({ | ||||
|   variable: "--font-geist-sans", | ||||
| @@ -28,6 +29,7 @@ export default function RootLayout({ | ||||
|         className={`${geistSans.variable} ${geistMono.variable} antialiased`} | ||||
|       > | ||||
|         {children} | ||||
|         <Toaster /> | ||||
|       </body> | ||||
|     </html> | ||||
|   ); | ||||
|   | ||||
							
								
								
									
										102
									
								
								app/page.tsx
									
									
									
									
									
								
							
							
						
						
									
										102
									
								
								app/page.tsx
									
									
									
									
									
								
							| @@ -1,103 +1,11 @@ | ||||
| import Image from "next/image"; | ||||
| "use client"; | ||||
|  | ||||
| import { AccountsManager } from "@/components/accounts-manager"; | ||||
|  | ||||
| export default function Home() { | ||||
|   return ( | ||||
|     <div className="font-sans grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20"> | ||||
|       <main className="flex flex-col gap-[32px] row-start-2 items-center sm:items-start"> | ||||
|         <Image | ||||
|           className="dark:invert" | ||||
|           src="/next.svg" | ||||
|           alt="Next.js logo" | ||||
|           width={180} | ||||
|           height={38} | ||||
|           priority | ||||
|         /> | ||||
|         <ol className="font-mono list-inside list-decimal text-sm/6 text-center sm:text-left"> | ||||
|           <li className="mb-2 tracking-[-.01em]"> | ||||
|             Get started by editing{" "} | ||||
|             <code className="bg-black/[.05] dark:bg-white/[.06] font-mono font-semibold px-1 py-0.5 rounded"> | ||||
|               app/page.tsx | ||||
|             </code> | ||||
|             . | ||||
|           </li> | ||||
|           <li className="tracking-[-.01em]"> | ||||
|             Save and see your changes instantly. | ||||
|           </li> | ||||
|         </ol> | ||||
|  | ||||
|         <div className="flex gap-4 items-center flex-col sm:flex-row"> | ||||
|           <a | ||||
|             className="rounded-full border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 sm:w-auto" | ||||
|             href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" | ||||
|             target="_blank" | ||||
|             rel="noopener noreferrer" | ||||
|           > | ||||
|             <Image | ||||
|               className="dark:invert" | ||||
|               src="/vercel.svg" | ||||
|               alt="Vercel logomark" | ||||
|               width={20} | ||||
|               height={20} | ||||
|             /> | ||||
|             Deploy now | ||||
|           </a> | ||||
|           <a | ||||
|             className="rounded-full border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent font-medium text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 w-full sm:w-auto md:w-[158px]" | ||||
|             href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" | ||||
|             target="_blank" | ||||
|             rel="noopener noreferrer" | ||||
|           > | ||||
|             Read our docs | ||||
|           </a> | ||||
|         </div> | ||||
|       </main> | ||||
|       <footer className="row-start-3 flex gap-[24px] flex-wrap items-center justify-center"> | ||||
|         <a | ||||
|           className="flex items-center gap-2 hover:underline hover:underline-offset-4" | ||||
|           href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" | ||||
|           target="_blank" | ||||
|           rel="noopener noreferrer" | ||||
|         > | ||||
|           <Image | ||||
|             aria-hidden | ||||
|             src="/file.svg" | ||||
|             alt="File icon" | ||||
|             width={16} | ||||
|             height={16} | ||||
|           /> | ||||
|           Learn | ||||
|         </a> | ||||
|         <a | ||||
|           className="flex items-center gap-2 hover:underline hover:underline-offset-4" | ||||
|           href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" | ||||
|           target="_blank" | ||||
|           rel="noopener noreferrer" | ||||
|         > | ||||
|           <Image | ||||
|             aria-hidden | ||||
|             src="/window.svg" | ||||
|             alt="Window icon" | ||||
|             width={16} | ||||
|             height={16} | ||||
|           /> | ||||
|           Examples | ||||
|         </a> | ||||
|         <a | ||||
|           className="flex items-center gap-2 hover:underline hover:underline-offset-4" | ||||
|           href="https://nextjs.org?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" | ||||
|           target="_blank" | ||||
|           rel="noopener noreferrer" | ||||
|         > | ||||
|           <Image | ||||
|             aria-hidden | ||||
|             src="/globe.svg" | ||||
|             alt="Globe icon" | ||||
|             width={16} | ||||
|             height={16} | ||||
|           /> | ||||
|           Go to nextjs.org → | ||||
|         </a> | ||||
|       </footer> | ||||
|     <div className="min-h-screen bg-background"> | ||||
|       <AccountsManager /> | ||||
|     </div> | ||||
|   ); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Your Name
					Your Name