diff --git a/package-lock.json b/package-lock.json
index a81dc92..da5baf5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.0.0",
"dependencies": {
"@vercel/analytics": "^1.3.1",
+ "@vercel/speed-insights": "^1.0.12",
"framer-motion": "^11.3.24",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@@ -1280,6 +1281,40 @@
}
}
},
+ "node_modules/@vercel/speed-insights": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.0.12.tgz",
+ "integrity": "sha512-ZGQ+a7bcfWJD2VYEp2R1LHvRAMyyaFBYytZXsfnbOMkeOvzGNVxUL7aVUvisIrTZjXTSsxG45DKX7yiw6nq2Jw==",
+ "hasInstallScript": true,
+ "peerDependencies": {
+ "@sveltejs/kit": "^1 || ^2",
+ "next": ">= 13",
+ "react": "^18 || ^19",
+ "svelte": "^4",
+ "vue": "^3",
+ "vue-router": "^4"
+ },
+ "peerDependenciesMeta": {
+ "@sveltejs/kit": {
+ "optional": true
+ },
+ "next": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "svelte": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ },
+ "vue-router": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@vitejs/plugin-react": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz",
diff --git a/package.json b/package.json
index f420da0..d489fc1 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
},
"dependencies": {
"@vercel/analytics": "^1.3.1",
+ "@vercel/speed-insights": "^1.0.12",
"framer-motion": "^11.3.24",
"react": "^18.3.1",
"react-dom": "^18.3.1",
diff --git a/src/App.jsx b/src/App.jsx
index 2a85c4d..4394116 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -1,5 +1,7 @@
import Bio from "./Components/Bio";
+import ContactUs from "./Components/ContactUs";
import First from "./Components/First";
+import Footer from "./Components/Footer";
import Navbar from "./Components/Navbar";
import Projects from "./Components/Projects";
import Skills from "./Components/Skills";
@@ -18,7 +20,11 @@ function App() {
+
+
);
diff --git a/src/Components/Bio.jsx b/src/Components/Bio.jsx
index b16a79d..e14168e 100644
--- a/src/Components/Bio.jsx
+++ b/src/Components/Bio.jsx
@@ -1,29 +1,45 @@
-import React from "react";
+import { motion } from "framer-motion";
+import { fadeIn } from "../Variants";
const Bio = () => {
return (
-
+
Bio
-
-
+
+
I am a 20-year-old from Kolkata, India currently pursuing a B.Tech
in Computer Science and Engineering(2023-27).
-
-
+
+
Other than that, I am also a dedicated freelance front-end web
developer with experience in creating high-quality websites. Skilled
in React.js and firebase, I aim to leverage my expertise to build
innovative digital solutions. Passionate about crafting userfriendly
interfaces and embracing cutting-edge technologies for efficient
development.
-
-
+
+
I actively participate in online hackathons and coding competitions,
if you want to add me in your team then reach out to me on LinkedIn
.If you have any other questions, feel free to ask in the contact
page or directly DM me on any of my social media accounts.
-
+
diff --git a/src/Components/ContactUs.jsx b/src/Components/ContactUs.jsx
new file mode 100644
index 0000000..6f3f6d6
--- /dev/null
+++ b/src/Components/ContactUs.jsx
@@ -0,0 +1,106 @@
+import React from "react";
+import { motion } from "framer-motion";
+import { useState } from "react";
+import { fadeIn } from "../Variants";
+
+function ContactUs() {
+ const [selectedOption, setSelectedOption] = useState(null);
+ const [formData, setFormData] = useState({
+ name: "",
+ email: "",
+ option: "",
+ budget: "",
+ message: "",
+ });
+
+ const handleOptionClick = (option, field) => {
+ setFormData({
+ ...formData,
+ [field]: option,
+ });
+ setSelectedOption(option);
+ };
+
+ const handleChange = (e) => {
+ setFormData({
+ ...formData,
+ [e.target.name]: e.target.value,
+ });
+ };
+
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ const { name, option, budget, message } = formData;
+
+ const subject = `Hello there, I am ${name}`;
+ const body = `${message}`;
+ const mailtoLink = `mailto:sidharth197502@gmail.com?subject=${encodeURIComponent(
+ subject
+ )}&body=${encodeURIComponent(body)}&cc=ayush215mb@gmail.com`;
+
+ window.location.href = mailtoLink;
+ };
+
+ return (
+
+
+
+ );
+}
+
+export default ContactUs;
diff --git a/src/Components/First.jsx b/src/Components/First.jsx
index f6cab51..5e97adb 100644
--- a/src/Components/First.jsx
+++ b/src/Components/First.jsx
@@ -1,21 +1,46 @@
import React from "react";
import { motion } from "framer-motion";
import ayush215mb from "../assets/Images/Ayush215mb.jpg";
+import { fadeIn } from "../Variants";
const First = () => {
return (
-
+
-
-
+
AYUSH YADAV
-
-
Hello there! 🤙
-
+
+
+ Hello there! 🤙
+
+
I am a passionate Web Developer with a knack of creating beautiful
and functional websites.
I like transforming ideas into enaging and user-friendly web
diff --git a/src/Components/Footer.jsx b/src/Components/Footer.jsx
new file mode 100644
index 0000000..c3a14bc
--- /dev/null
+++ b/src/Components/Footer.jsx
@@ -0,0 +1,71 @@
+import { motion } from "framer-motion";
+import { fadeIn } from "../Variants";
+const Footer = () => {
+ return (
+
+ );
+};
+
+export default Footer;
diff --git a/src/Components/Navbar.jsx b/src/Components/Navbar.jsx
index 78072d9..7147be8 100644
--- a/src/Components/Navbar.jsx
+++ b/src/Components/Navbar.jsx
@@ -21,38 +21,49 @@ const Navbar = () => {
diff --git a/src/Components/Skills.jsx b/src/Components/Skills.jsx
index 2cb8729..2c2b298 100644
--- a/src/Components/Skills.jsx
+++ b/src/Components/Skills.jsx
@@ -1,49 +1,101 @@
import React from "react";
import html from "../assets/Images/html-1.svg";
import SkillsTemp from "./SkillsTemp";
+import { motion } from "framer-motion";
+import { fadeIn } from "../Variants";
const Skills = () => {
return (
-
+
Skills
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
);