Portfolio_Code
Portfolio_Code
js
<div></div>
</div>
return (
<div className="contact-container">
<h2>Contact Me</h2>
{submitted ? (
<p className="submitted-message">Form has been submitted!</p>
) : (
<form onSubmit={handleSubmit}>
<div className="form-group">
<label htmlFor="name">Name:</label>
<input
type="text"
id="name"
name="name"
value={formData.name}
onChange={handleChange}
required
/>
</div>
<div className="form-group">
<label htmlFor="email">Email:</label>
<input
type="email"
id="email"
name="email"
value={formData.email}
onChange={handleChange}
required
/>
</div>
<div className="form-group">
<label htmlFor="message">Message:</label>
<textarea
id="message"
name="message"
value={formData.message}
onChange={handleChange}
required
/>
</div>
<a type="submit" href="mailTo:[email protected]">
<button className="submit-btn">
{" "}
Submit
<FaCheck> </FaCheck>{" "}
</button>
</a>
</form>
)}
</div>
);
};
Footer.js
Home.js
<Link to="/Contact">
<button>
Contact <CgPhone />
</button>
</Link>
</div>
<Tilt>
<img className="Avatar" src={Avatar} alt="" />
</Tilt>
</div>
</div>
);
};
MoveToTop.js
useEffect(() => {
window.scrollTo(0, 0);
}, [path]);
};
NavBar.js
function scrollHandler() {
if (window.scrollY >= 20) {
setnavbarblur(true);
} else {
setnavbarblur(false);
}
}
ham[0].classList.toggle("showNavbar");
};
window.addEventListener("scroll", scrollHandler);
return (
<nav className={navbarblur ? "Navbar blur" : "Navbar"}>
<h1
title="Reload"
onClick={() => window.location.reload(true)}
className="Logo"
>
BR
</h1>
<ul className="NavbarLinks">
<li onClick={hideMenu}>
<Link to="/">
<AiOutlineHome /> Home
</Link>
</li>
<li onClick={hideMenu}>
<Link to="/About">
<BsPerson /> About
</Link>
</li>
<li onClick={hideMenu}>
<Link to="/Project">
<BsCodeSlash /> Projects
</Link>
</li>
<li onClick={hideMenu}>
<Link to="/Contact">
<CgPhone />
Contact
</Link>
</li>
</ul>
</nav>
);
};
ProjectBox.js
MovieDesc:
"This web app is for helping you find your desired movie.The project helped
me with understanding the working of API.I also learned new CSS properties and
tricks.",
MovieGithub: "#",
MovieWebsite: "#",
ColourPaletteDesc:
"This website helps you generate random colours that you can use as a
palette.The project helped me understand Javascript more deeply using advance
techniques",
ColourPaletteGithub: "#",
ColourPaletteWebsite: "#",
BackpackDesc:
"This webpageis was made for an ecommerce brand showcasing their
backpacks.The project taught me how to use custom cursors and arrange text in a
much better way",
BackpackGithub: "#",
BackpackWebsite: "#",
};
return (
<div className="projectBox">
<img className="projectPhoto" src={projectPhoto} alt="Project display" />
<div>
<br />
<h3>{projectName}</h3>
<br />
{desc[projectName + "Desc"]}
<br />
Projects.js
Skills.js
import React from "react";
import { CgCPlusPlus } from "react-icons/cg";
import {
FaReact,
FaGitAlt,
FaGithub,
FaNpm,
FaFigma,
FaBootstrap,
FaHtml5,
FaCss3,
} from "react-icons/fa";
import { DiJavascript1 } from "react-icons/di";
import { SiTailwindcss } from "react-icons/si";
return (
<div title={skill} className="SkillBox">
{icon[skill]}
</div>
);
};
Type.js
App.js
function App() {
const [loading, setLoading] = useState(true);
const location = useLocation();
useEffect(() => {
setLoading(true);
setTimeout(() => {
setLoading(false);
}, 1900);
}, []);
return (
<div>
{loading ? (
<div className="loader">
<CircleLoader
color={"#011c38"}
loading={true}
size={100}
aria-label="Loading Spinner"
data-testid="loader"
/>
</div>
) : (
<>
<Nav />
<MoveToTop />
<TransitionGroup>
<CSSTransition key={location.key} classNames="fade" timeout={500}>
<Routes location={location}>
<Route path="/" element={<Home />} />
<Route path="/About" element={<About />} />
<Route path="/Project" element={<Project />} />
<Route path="/Contact" element={<Contact />} />
</Routes>
</CSSTransition>
</TransitionGroup>
<Footer />
</>
)}
</div>
);
}
App.css
.fade-enter {
opacity: 0;
}
.fade-enter-active {
opacity: 1;
transition: opacity 0.5s ease-in-out;
}
.fade-exit {
opacity: 1;
}
.fade-exit-active {
opacity: 0;
transition: opacity 0.5s ease-in-out;
}