diff --git a/frontend/package.json b/frontend/package.json index 72b917d9..d4cfa129 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,19 +9,21 @@ "lint": "next lint" }, "dependencies": { + "framer-motion": "^12.23.24", + "lucide-react": "^0.552.0", + "next": "15.2.4", "react": "^19.0.0", - "react-dom": "^19.0.0", - "next": "15.2.4" + "react-dom": "^19.0.0" }, "devDependencies": { - "typescript": "^5", + "@eslint/eslintrc": "^3", + "@tailwindcss/postcss": "^4.1.16", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "@tailwindcss/postcss": "^4", - "tailwindcss": "^4", "eslint": "^9", "eslint-config-next": "15.2.4", - "@eslint/eslintrc": "^3" + "tailwindcss": "^4.1.16", + "typescript": "^5" } } diff --git a/frontend/postcss.config.js b/frontend/postcss.config.js new file mode 100644 index 00000000..106d2f8a --- /dev/null +++ b/frontend/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + '@tailwindcss/postcss': {}, + }, +}; \ No newline at end of file diff --git a/frontend/postcss.config.mjs b/frontend/postcss.config.mjs deleted file mode 100644 index c7bcb4b1..00000000 --- a/frontend/postcss.config.mjs +++ /dev/null @@ -1,5 +0,0 @@ -const config = { - plugins: ["@tailwindcss/postcss"], -}; - -export default config; diff --git a/frontend/public/hero-image.png b/frontend/public/hero-image.png new file mode 100644 index 00000000..a898712a Binary files /dev/null and b/frontend/public/hero-image.png differ diff --git a/frontend/src/app/globals.css b/frontend/src/app/globals.css index a2dc41ec..7f93328a 100644 --- a/frontend/src/app/globals.css +++ b/frontend/src/app/globals.css @@ -1,26 +1,22 @@ @import "tailwindcss"; :root { - --background: #ffffff; - --foreground: #171717; + --accent-green: #39ff14; + --accent-blue: #00e0ff; + --color-bg: #0b0f19; + --color-fg: #eaeaea; } -@theme inline { - --color-background: var(--background); - --color-foreground: var(--foreground); - --font-sans: var(--font-geist-sans); - --font-mono: var(--font-geist-mono); + +body { + @apply bg-[var(--color-bg)] text-[var(--color-fg)] font-sans antialiased; } -@media (prefers-color-scheme: dark) { - :root { - --background: #0a0a0a; - --foreground: #ededed; - } +@keyframes float-slow { + 0%, 100% { transform: translateY(0px); } + 50% { transform: translateY(-15px); } } -body { - background: var(--background); - color: var(--foreground); - font-family: Arial, Helvetica, sans-serif; +.animate-float-slow { + animation: float-slow 6s ease-in-out infinite; } diff --git a/frontend/src/app/layout.tsx b/frontend/src/app/layout.tsx index f7fa87eb..cf10bcdd 100644 --- a/frontend/src/app/layout.tsx +++ b/frontend/src/app/layout.tsx @@ -1,33 +1,50 @@ -import type { Metadata } from "next"; -import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; +import Nav from "../components/nav"; +import Footer from "../components/footer"; +import { Inter } from "next/font/google"; -const geistSans = Geist({ - variable: "--font-geist-sans", +const inter = Inter({ subsets: ["latin"], + display: "swap", }); -const geistMono = Geist_Mono({ - variable: "--font-geist-mono", - subsets: ["latin"], -}); - -export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", +export const metadata = { + title: "Finfly — Smarter Personal Finance", + description: "Track spending, reach goals, and grow wealth with Finfly.", + icons: { + icon: "./favicon.ico", + }, + openGraph: { + title: "Finfly — Smarter Personal Finance", + description: "Track spending, reach goals, and grow wealth with Finfly.", + url: "www.IfYouAreReadingThis-ThisIsNotAIMade.com", + siteName: "Finfly", + images: [ + { + url: "/og-image.png", + width: 1200, + height: 630, + alt: "Finfly dashboard preview", + }, + ], + locale: "en_US", + type: "website", + }, }; export default function RootLayout({ children, -}: Readonly<{ +}: { children: React.ReactNode; -}>) { +}) { return ( - + - {children} +