Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • React Tutorial
  • React Exercise
  • React Basic Concepts
  • React Components
  • React Props
  • React Hooks
  • React Router
  • React Advanced
  • React Examples
  • React Interview Questions
  • React Projects
  • Next.js Tutorial
  • React Bootstrap
  • React Material UI
  • React Ant Design
  • React Desktop
  • React Rebass
  • React Blueprint
  • JavaScript
  • Web Technology
Open In App
Next Article:
PortFolio WebPage using React with dark theme
Next article icon

Portfolio Website using React

Last Updated : 29 Jul, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Portfolio Website using React is an online representation of the talent and skills one possesses, along with details of past work and contact information. it is very important for any professional.

Table of Content

  • Preview of Portfolio Website using React
  • Approach to Create Portfolio Website using React
  • Portfolio Website using React Complete Example

Preview of Portfolio Website using React

    • Let us have a look at how the final application will look like:

    Approach to Create Portfolio Website using React

    Steps to create Portfolio Webpage using React

    • Create multiple function-based components like Contact, Hero, Navbar, About, Footer, Project, Skills, etc., and at the end, integrat all files into App.js.
    • Styling and design are implemented through TailWind CSS. We connected Tailwind CSS through CDN inside the index.html file so that whenever someone wants to run this code on a local machine, they can directly run it without installing Tailwind CSS.
    • All the components of this project are stored in a directory called components. All the assets and amenities used in this project are connected in hyperlink form.

    Portfolio Website using React Complete Example

    The approach outlined above has been implemented in the provided code.

    HTML
    <!-- Index.html --> <!DOCTYPE html> <html lang="en" class="scroll-smooth scroll-pt-20">  <head>     <meta charset="utf-8" />     <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />     <meta name="viewport" content="width=device-width, initial-scale=1" />     <meta name="theme-color" content="#000000" />     <meta name="description" content="Web site created using create-react-app" />     <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />     <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />     <title>         Project | PortFolio WebPage using React     </title>     <script src="https://cdn.tailwindcss.com"></script> </head>  <body class="bg-emerald-100">     <noscript>You need to enable JavaScript         to run this app.</noscript>     <div id="root"></div> </body>  </html> 
    JavaScript
    // Index.js import React from 'react'; import ReactDOM from 'react-dom/client'; import App from './App';  const root = ReactDOM.createRoot(document.getElementById('root')); root.render(     <React.StrictMode>         <App />     </React.StrictMode> ); 
    JavaScript
    // App.js import Navbar from "./components/Navbar"; import About from "./components/About"; import Skills from "./components/Skills"; import Projects from "./components/Projects"; import Contact from "./components/Contact"; import Footer from "./components/Footer"; import Hero from "./components/Hero";  export default function App() {     return (         <>             <Navbar />             <Hero />             <About />             <Skills />             <Projects />             <Contact />             <Footer />         </>     ); } 
    JavaScript
    // Navbar.js export default function Navbar() {     return (         <nav className="w-full px-5 sm:px-10 py-5 shadow-xl                          backdrop-blur-lg fixed top-0 z-10">             <div className="container flex flex-col lg:flex-row                             gap-5 justify-between w-full                              items-center max-w-5xl mx-auto">                 <h3 className="text-3xl text-emerald-500 font-bold">                     GeeksforGeeks                 </h3>                 <ul className="flex gap-3 align-center p-1 flex-wrap">                     <li>                         <a className="text-sm sm:text-base px-2 lg:px-5                                        py-2 transition rounded hover:text-white                                        hover:bg-emerald-600"                            href="#about">                         About                         </a>                     </li>                     <li>                         <a className="text-sm sm:text-base px-2 lg:px-5 py-2                                        transition rounded hover:text-white                                        hover:bg-emerald-600"                             href="#skills">                             Skills                         </a>                     </li>                     <li>                         <a className="text-sm sm:text-base px-2 lg:px-5 py-2                                        transition rounded hover:text-white                                        hover:bg-emerald-600"                             href="#projects">                             Projects                         </a>                     </li>                     <li>                         <a className="text-sm sm:text-base px-2 lg:px-5 py-2                                        transition rounded hover:text-white                                        hover:bg-emerald-600"                             href="#contact">                             Contact                         </a>                     </li>                 </ul>             </div>         </nav>     ); } 
    JavaScript
    // Hero.js export default function Hero() {     return (       <section         id="hero"         className="px-10 w-full flex gap-12 flex-col lg:flex-row                     justify-center items-center align-center mt-40                     mb-16 lg:mt-10 max-w-5xl mx-auto lg:gap-0 h-[80vh]">         <div className="flex-1 flex flex-col justify-center items-center gap-5">           <div>             <h4 className="text-center text-xl font-bold">                 Hi and welcome to             </h4>             <h2 className="text-center text-emerald-500 text-5xl font-bold">               My Portfolio Website             </h2>           </div>           <p className="text-center">             I am your friendly neighbourhood osm developer...           </p>         </div>         <div className="flex-1">           <img src=   "https://media.geeksforgeeks.org/gfg-gg-logo.svg"                alt="Hello.svg"                className="w-full h-full bg-cover"/>         </div>       </section>     );   } 
    JavaScript
    // About.js export default function About() {     return (         <section             id="about"             className="px-10 w-full flex flex-col lg:flex-row py-20                         align-center bg-emerald-200 max-w-5xl mx-auto">             <div className="flex-1">                 <img src= "https://media.geeksforgeeks.org/img-practice/Asset1-1641910145.svg"                     alt="About"                     className="w-full h-full bg-cover"/>             </div>             <div className="flex-1 flex flex-col justify-center                             items-center gap-5 px-6">                 <div>                     <h2 className="text-center text-emerald-500                                     text-5xl font-bold">                         About Me :                     </h2>                 </div>                 <p>                     As I said, I am your friendly                     neighbourhood osm developer...                 </p>                 <p>                     I am a passionate self taught developer                     (which is quite a subjective thing as i learnt from                     teachers on youtube so does that really counts?                     idk). I am having an experience of about 4 years                     and had a deep understanding of creating web products.                 </p>             </div>         </section>     ); } 
    JavaScript
    // Skills.js export default function Skills() {     const skills = ["Python", "HTML", "CSS", "Javascript", "React", "NextJs"];     return (         <section id="skills"             className="px-10 w-full my-40 max-w-5xl mx-auto">             <h2 className="text-center text-6xl text-emerald-500 font-bold">                 My Skills...             </h2>             <div className="mt-10 flex gap-5 justify-center                              flex-wrap mx-auto max-w-xl">                 {skills.map((skill, index) => {                     return (                         <div key={index}                              className="cursor-pointer px-12 py-10                                          rounded bg-emerald-200 text-lg                                          flex items-center justify-center                                          font-bold hover:shadow-xl">                             {skill}                         </div>                     )})}             </div>         </section>     ) } 
    JavaScript
    // Projects.js export default function Projects() {     return (         <section id="projects"                  className="my-20 w-full flex flex-col gap-5 align-center max-w-5xl mx-auto">             <h2 className="text-5xl text-emerald-500 font-bold text-center">                 My Projects             </h2>             <div className="p-10 bg-emerald-200 flex flex-col justify-center items-center                             gap-5 lg:flex-row max-w-5xl mx-auto shadow transition                              hover:shadow-xl hover:scale-[102%] w-full">                 <div className="w-80 rounded">                     <a href= "https://www.geeksforgeeks.org/progress-tracker-using-react-and-local-storage/"                         className="w-full h-full">                         <img src= "https://media.geeksforgeeks.org/wp-content/uploads/20230927120905/gfg.png"                              alt="Project 1"                              className="w-full h-full                                          bg-cover rounded"/>                     </a>                 </div>                 <div className="flex flex-col align-center mx-auto gap-4 justify-center flex-1">                     <h2 className="font-bold text-3xl text-center">                         <a className="hover:underline"                             href= "https://www.geeksforgeeks.org/progress-tracker-using-react-and-local-storage/">                             DSA Progress Tracker                         </a>                     </h2>                     <p>                         This is a project built on react which tracks your progess in dsa                          and stores that in the local storage.                     </p>                 </div>             </div>             <div className="p-10 bg-emerald-200 flex flex-col justify-center items-center gap-5                              lg:flex-row-reverse max-w-5xl mx-auto shadow transition hover:shadow-xl                              hover:scale-[102%] w-full">                 <div className="w-80 rounded">                     <a href= "https://www.geeksforgeeks.org/15-puzzle-game-using-reactjs/"                        className="w-full h-full">                         <img src= "https://media.geeksforgeeks.org/wp-content/uploads/20230904150620/gfg.png"                              alt="Project 2"                              className="w-full h-full bg-cover rounded" />                     </a>                 </div>                 <div className="flex flex-col align-center mx-auto gap-4 justify-center flex-1">                     <h2 className="font-bold text-3xl text-center">                         <a className="hover:underline" href= "https://www.geeksforgeeks.org/15-puzzle-game-using-reactjs/">                             15 Puzzle Game                         </a>                     </h2>                     <p>                         15 puzzle game is basically a tile-based game in which there are 16 tiles                         out of which 1 tile is left empty and the remaining tiles are filled with                         numbers from 1 to 15 in random order. The user has to arrange all the tiles                          in numerical order with the rule that they can only move the tile that is                          a direct neighbor of the empty tile.                     </p>                 </div>             </div>         </section>     ); } 
    JavaScript
    // Contact.js export default function Contact() {     return (         <section id="contact"                  className="my-40 align-center max-w-5xl mx-auto p-3">             <h2 className="text-5xl font-bold text-emerald-500 text-center">                 Contact             </h2>             <div className="flex gap-5 justify-center                          my-10">                 <a rel="noreferrer"                    target="_blank"                    className="text-center hover:underline"                    href= "https://instagram.com/geeks_for_geeks">                     Instagram:                     <span className="font-bold">                         @geeks_for_geeks                     </span>                 </a>                 <a rel="noreferrer"                    target="_blank"                    className="text-center hover:underline"                    href= "https://twitter.com/geeksforgeeks">                     Twitter:                     <span className="font-bold">                         @geeksforgeeks                     </span>                 </a>             </div>         </section>     ); } 
    JavaScript
    // Footer.js export default function Footer() {     return (         <section className="p-10 bg-emerald-200 flex justify-center">             <p className="font-bold">                 ©Copyright 2023. All rights are reserved by Geeks for Geeks             </p>         </section>     ); } 

    Output:

    Follow the given link to Build and Host your own Portfolio Website using HTML,CSS and JavaScript.


    Next Article
    PortFolio WebPage using React with dark theme
    author
    mycodenotein
    Improve
    Article Tags :
    • Project
    • Web Technologies
    • ReactJS
    • Geeks Premier League
    • Web Development Projects
    • ReactJS-Projects
    • Geeks Premier League 2023

    Similar Reads

    • Photography Website using React
      In this project, we're going to design an impressive photography website using React. The website will include a beautiful navbar, an introductory section with both an image and text, a photo gallery with a dynamic grid layout, and a modal to showcase selected photos in detail. Additionally, we'll i
      5 min read
    • PortFolio WebPage using React with dark theme
      A portfolio website is one of the best ways to showcase your skills and information to the world. In this article, you will see how to create a portfolio website with a dark theme. Project Preview: Let us have a look at how the final output will look like. Prerequisites:React.jsGitHub API for fetchi
      4 min read
    • Travel Blog Website using React
      Creating a Travel Blog Website using React JS is a better way to learn how to manage state, passing props and render data dynamically. In this article, we are going to learn how to create a Travel Blog Website using React JS. This website will have a list of places with images and description. The d
      4 min read
    • Build a Portfolio Website Using React and Bootstrap
      Building a portfolio website using React and Bootstrap is an excellent project for showcasing your skills and creating a professional online presence. In this article, we will guide you through the process of building a responsive and visually appealing portfolio website using React for the front en
      12 min read
    • Environment Protection Website using React
      Imagine building a website that champions environmental protection. That's exactly what we're aiming for with this project. We're crafting a space using React where people can learn, share, and engage in all things related to safeguarding our planet. Output Preview: Let us have a look at how the fin
      7 min read
    • Weather Application using ReactJS
      In this article, we will develop an Interactive Weather Application using ReactJS Framework. The developed application will provide real-time weather information to the user for the city they have searched. If the user searches, for the wrong city, an Error message is also displayed to the user, sta
      5 min read
    • Survey Website using ReactJS
      In this article, we will create a survey website template using ReactJS. This project basically creates a single page website which will take input from user in multiple states and stores it to be displayed later. The user has to enter basic details like name, email-Id and contact number. After fill
      10 min read
    • India Tourism Webite using React
      This article guides you through building an engaging Indian tourism app using React, featuring destination exploration, travel experiences, and a visually appealing image carousel. Users can interact with the app and contact through a form, highlighting the beauty of India. Preview of final output:
      9 min read
    • How To Create A Multi-Page Website Using ReactJS?
      Multi-page website using ReactJS is the core for building complex web applications that require multiple views or pages. Previously where each page reloads entirely, ReactJS allows you to navigate between different pages without reloading the whole page thanks to libraries like React Router. In this
      4 min read
    • Create a Portfolio App using React-Native
      In this article, we are going to Create a portfolio app using React Native. The portfolio app is a simple application that is a collection of a person's qualifications, achievements, work samples, and other relevant materials. It is used to demonstrate one's abilities and suitability for a particula
      5 min read
    geeksforgeeks-footer-logo
    Corporate & Communications Address:
    A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
    Registered Address:
    K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
    GFG App on Play Store GFG App on App Store
    Advertise with us
    • Company
    • About Us
    • Legal
    • Privacy Policy
    • In Media
    • Contact Us
    • Advertise with us
    • GFG Corporate Solution
    • Placement Training Program
    • Languages
    • Python
    • Java
    • C++
    • PHP
    • GoLang
    • SQL
    • R Language
    • Android Tutorial
    • Tutorials Archive
    • DSA
    • Data Structures
    • Algorithms
    • DSA for Beginners
    • Basic DSA Problems
    • DSA Roadmap
    • Top 100 DSA Interview Problems
    • DSA Roadmap by Sandeep Jain
    • All Cheat Sheets
    • Data Science & ML
    • Data Science With Python
    • Data Science For Beginner
    • Machine Learning
    • ML Maths
    • Data Visualisation
    • Pandas
    • NumPy
    • NLP
    • Deep Learning
    • Web Technologies
    • HTML
    • CSS
    • JavaScript
    • TypeScript
    • ReactJS
    • NextJS
    • Bootstrap
    • Web Design
    • Python Tutorial
    • Python Programming Examples
    • Python Projects
    • Python Tkinter
    • Python Web Scraping
    • OpenCV Tutorial
    • Python Interview Question
    • Django
    • Computer Science
    • Operating Systems
    • Computer Network
    • Database Management System
    • Software Engineering
    • Digital Logic Design
    • Engineering Maths
    • Software Development
    • Software Testing
    • DevOps
    • Git
    • Linux
    • AWS
    • Docker
    • Kubernetes
    • Azure
    • GCP
    • DevOps Roadmap
    • System Design
    • High Level Design
    • Low Level Design
    • UML Diagrams
    • Interview Guide
    • Design Patterns
    • OOAD
    • System Design Bootcamp
    • Interview Questions
    • Inteview Preparation
    • Competitive Programming
    • Top DS or Algo for CP
    • Company-Wise Recruitment Process
    • Company-Wise Preparation
    • Aptitude Preparation
    • Puzzles
    • School Subjects
    • Mathematics
    • Physics
    • Chemistry
    • Biology
    • Social Science
    • English Grammar
    • Commerce
    • World GK
    • GeeksforGeeks Videos
    • DSA
    • Python
    • Java
    • C++
    • Web Development
    • Data Science
    • CS Subjects
    @GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
    We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
    Lightbox
    Improvement
    Suggest Changes
    Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
    geeksforgeeks-suggest-icon
    Create Improvement
    Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
    geeksforgeeks-improvement-icon
    Suggest Changes
    min 4 words, max Words Limit:1000

    Thank You!

    Your suggestions are valuable to us.

    What kind of Experience do you want to share?

    Interview Experiences
    Admission Experiences
    Career Journeys
    Work Experiences
    Campus Experiences
    Competitive Exam Experiences