diff --git a/public/hero.gif b/public/hero.gif new file mode 100644 index 0000000..4a2807b Binary files /dev/null and b/public/hero.gif differ diff --git a/src/app.config.ts b/src/app.config.ts index 14e7042..9cabe35 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -1,5 +1,10 @@ +import { TechIcon } from "./components/setions/tech"; + +export type SocialIcon = "github" | "discord"; + type AppConfig = { navigator: { label: string; path: string }[]; + socials: { name: string; icon: SocialIcon; link: string }[]; }; export const appConfig: AppConfig = { @@ -10,13 +15,32 @@ export const appConfig: AppConfig = { }, { label: "Projects", - path: "/#projects", + path: "/projects", }, { label: "Contact", path: "/contact/#", }, ], + socials: [ + { + name: "discord", + icon: "discord", + link: "https://discord.com", + }, + { + name: "github", + icon: "github", + link: "https://github.com", + }, + { + name: "github", + icon: "github", + link: "https://github.com", + }, + ], }; export const appNavigator = appConfig.navigator; + +export const socials = appConfig.socials; diff --git a/src/app/(__PAGES__)/contact/page.tsx b/src/app/(__PAGES__)/contact/page.tsx index 0052577..871f058 100644 --- a/src/app/(__PAGES__)/contact/page.tsx +++ b/src/app/(__PAGES__)/contact/page.tsx @@ -1,21 +1,8 @@ -import MeCard from "@/components/me-card"; -import Contact from "@/components/setions/contact"; import React from "react"; +import Contact from "@/components/setions/contact"; function ContactPage() { - return ( -
- - - -
- ); + return ; } export default ContactPage; diff --git a/src/app/(__PAGES__)/layout.tsx b/src/app/(__PAGES__)/layout.tsx index 573f384..376400c 100644 --- a/src/app/(__PAGES__)/layout.tsx +++ b/src/app/(__PAGES__)/layout.tsx @@ -1,5 +1,6 @@ import React from "react"; import Navbar from "@/components/navbar"; +import Footer from "@/components/footer"; function Layout({ children }: { children: JSX.Element }) { return ( @@ -10,6 +11,8 @@ function Layout({ children }: { children: JSX.Element }) { {/*
*/} + +
); } diff --git a/src/app/(__PAGES__)/page.tsx b/src/app/(__PAGES__)/page.tsx index 9c8fc06..ea557ab 100644 --- a/src/app/(__PAGES__)/page.tsx +++ b/src/app/(__PAGES__)/page.tsx @@ -1,11 +1,17 @@ -import { Hero, Projects } from "@/components/setions"; +import { Hero, Projects, Tech } from "@/components/setions"; +import Contact from "@/components/setions/contact"; export default function Home() { return ( <> - -
+
+ +
+
+ + +
); diff --git a/src/app/(__PAGES__)/projects/page.tsx b/src/app/(__PAGES__)/projects/page.tsx new file mode 100644 index 0000000..2713772 --- /dev/null +++ b/src/app/(__PAGES__)/projects/page.tsx @@ -0,0 +1,14 @@ +import { Projects } from "@/components/setions"; +import Contact from "@/components/setions/contact"; +import React from "react"; + +function ProjectsPage() { + return ( + <> + + + + ); +} + +export default ProjectsPage; diff --git a/src/app/globals.css b/src/app/globals.css index 0376d2a..d7f94fd 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -65,13 +65,6 @@ body { } @layer base { - * { - @apply border-border; - } - body { - @apply dark bg-background text-foreground; - } - @font-face { font-family: "Poppins"; src: url("./fonts/Poppins-Regular.ttf") format("truetype"); @@ -85,6 +78,18 @@ body { font-weight: 700; font-style: normal; } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply dark bg-background text-foreground; + } + html { + scroll-behavior: smooth; + } .halftone { --dotSize: 0.25rem; @@ -122,7 +127,3 @@ body { ); } } - -html { - scroll-behavior: smooth; -} diff --git a/src/components/contact-form.tsx b/src/components/contact-form.tsx new file mode 100644 index 0000000..be1a3ab --- /dev/null +++ b/src/components/contact-form.tsx @@ -0,0 +1,132 @@ +"use client"; + +import React from "react"; +import Heading from "./heading"; +import { z } from "zod"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { useForm } from "react-hook-form"; +import { Button } from "@/ui/button"; +import { Textarea } from "@/ui/textarea"; +import { + Form, + FormControl, + FormField, + FormItem, + FormLabel, + FormMessage, +} from "@/ui/form"; +import { Input } from "@/ui/input"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import { cn } from "@/lib/utils"; + +const formSchema = z.object({ + name: z.string().min(2).max(50), + email: z.string().email(), + budget: z.string(), + message: z.string().max(500), +}); + +function ContactForm() { + // 1. Define your form. + const form = useForm>({ + resolver: zodResolver(formSchema), + }); + + // 2. Define a submit handler. + function onSubmit(values: z.infer) { + // Do something with the form values. + // ✅ This will be type-safe and validated. + console.log(values); + } + + return ( +
+ +
+ ( + + Name + + + + + + )} + /> + ( + + Email + + + + + + )} + /> +
+ ( + + Budget + + + + + + )} + /> + ( + + Message + +