diff --git a/src/app/page.tsx b/src/app/page.tsx
index 8bbeb1a..1b1fa30 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -1,5 +1,7 @@
import { About } from '@/components/about';
+import { Contact } from '@/components/contact';
import { Experience } from '@/components/experience';
+import { Footer } from '@/components/footer';
import { Intro } from '@/components/intro';
import { Projects } from '@/components/projects';
import { ThemeToggle } from '@/components/theme-toggle';
@@ -13,6 +15,8 @@ const Home = () => {
+
+
diff --git a/src/components/contact.tsx b/src/components/contact.tsx
new file mode 100644
index 0000000..fc56cb3
--- /dev/null
+++ b/src/components/contact.tsx
@@ -0,0 +1,85 @@
+'use client';
+
+import { useForm } from 'react-hook-form';
+import { zodResolver } from '@hookform/resolvers/zod';
+import { z } from 'zod';
+
+import { Button } from '@/components/button';
+import { Icons } from '@/components/icons';
+import { SectionHeading } from '@/components/section-heading';
+import { cn } from '@/lib/utils';
+
+const formSchema = z.object({
+ email: z
+ .string()
+ .min(1, { message: 'Email is required' })
+ .email({ message: 'Must be a valid email' }),
+ message: z.string().min(1, { message: 'Message is required' }),
+});
+
+type TFormSchema = z.infer
;
+
+export const Contact = () => {
+ const {
+ register,
+ handleSubmit,
+ reset,
+ formState: { errors },
+ } = useForm({ resolver: zodResolver(formSchema) });
+
+ const onSubmit = (values: TFormSchema) => {
+ console.log(values);
+
+ reset();
+ };
+
+ return (
+
+ );
+};
diff --git a/src/components/footer.tsx b/src/components/footer.tsx
new file mode 100644
index 0000000..5584a42
--- /dev/null
+++ b/src/components/footer.tsx
@@ -0,0 +1,13 @@
+import { Button } from '@/components/button';
+
+export const Footer = () => {
+ return (
+
+ );
+};
diff --git a/src/components/icons.tsx b/src/components/icons.tsx
index 0ba5b18..e5fded0 100644
--- a/src/components/icons.tsx
+++ b/src/components/icons.tsx
@@ -16,6 +16,7 @@ export const Icons = {
download: Download,
preview: ExternalLink,
githubOutline: Github,
+ briefcase: Briefcase,
github: (props: LucideProps) => (
),
- briefcase: Briefcase,
html: (props: LucideProps) => (