├── .gitignore ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── index.html ├── manifest.json ├── mockup.png └── robots.txt └── src ├── App.css ├── App.js ├── Assets ├── logo.png ├── scroll-down.svg └── wave1.svg ├── components ├── About │ ├── About.js │ └── AboutElements.js ├── Contact │ ├── Contact.js │ └── ContactElements.js ├── Dropdown │ └── Dropdown.js ├── Footer │ └── Footer.js ├── Header │ ├── Header.js │ └── HeaderElements.js ├── Hero │ ├── Hero.js │ └── HeroElements.js ├── Projects │ ├── ProjectCard │ │ ├── ProjectCard.js │ │ └── ProjectCardElements.js │ └── Projects.js └── SocialIcon │ ├── FixSocialIcon.js │ └── SocialIcon.js ├── data └── ProjectData.js ├── index.css ├── index.js └── pages └── Home.js /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Gurushesh Pawar 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **Portfolio** 2 | Live Preview - [Click Here](https://gurusheshp.vercel.app/) 3 | 4 |
5 |
6 | Demo 7 |
8 |
9 |
10 | 11 | # 🛠 Installation and Setup Instructions 12 | 13 | Clone down this repository. You will need node.js and git installed globally on your machine.. 14 | 15 | Installation: `npm install` 16 | 17 | In the project directory, you can run: `npm start` 18 | 19 | Runs the app in the development mode.\ 20 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 21 | 22 | # Usage Instructions 23 | 24 | Open the project folder and Navigate to `/src/data/ProjectData` and add your projects details. 25 | 26 | You will find all the components used and you can edit your information accordingly. 27 | 28 | ## Contribute 29 | 30 | Pull Requests are welcome. :) 31 | 32 | ## Show your support 33 | 34 | Give a ⭐ if you like this website! 35 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "portfolio-react", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@testing-library/jest-dom": "^5.14.1", 7 | "@testing-library/react": "^11.2.7", 8 | "@testing-library/user-event": "^12.8.3", 9 | "react": "^17.0.2", 10 | "react-dom": "^17.0.2", 11 | "react-icons": "^4.2.0", 12 | "react-router-dom": "^5.2.1", 13 | "react-scripts": "4.0.3", 14 | "react-scroll": "^1.8.4", 15 | "styled-components": "^5.3.1", 16 | "web-vitals": "^1.1.2" 17 | }, 18 | "scripts": { 19 | "start": "react-scripts start", 20 | "build": "react-scripts build", 21 | "test": "react-scripts test", 22 | "eject": "react-scripts eject" 23 | }, 24 | "eslintConfig": { 25 | "extends": [ 26 | "react-app", 27 | "react-app/jest" 28 | ] 29 | }, 30 | "browserslist": { 31 | "production": [ 32 | ">0.2%", 33 | "not dead", 34 | "not op_mini all" 35 | ], 36 | "development": [ 37 | "last 1 chrome version", 38 | "last 1 firefox version", 39 | "last 1 safari version" 40 | ] 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gurupawar/portfolio-react/740799e9fc9bc2b388c0dccd3182b49b90a789f4/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 19 | 28 | Gurushesh 29 | 30 | 31 | 32 |
33 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /public/mockup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gurupawar/portfolio-react/740799e9fc9bc2b388c0dccd3182b49b90a789f4/public/mockup.png -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gurupawar/portfolio-react/740799e9fc9bc2b388c0dccd3182b49b90a789f4/src/App.css -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import "./App.css"; 2 | import { BrowserRouter as Router } from "react-router-dom"; 3 | import Home from "./pages/Home"; 4 | 5 | function App() { 6 | return ( 7 | 8 | 9 | 10 | ); 11 | } 12 | 13 | export default App; 14 | -------------------------------------------------------------------------------- /src/Assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gurupawar/portfolio-react/740799e9fc9bc2b388c0dccd3182b49b90a789f4/src/Assets/logo.png -------------------------------------------------------------------------------- /src/Assets/scroll-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/Assets/wave1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/components/About/About.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { stackList } from "../../data/ProjectData"; 3 | import { 4 | Image, 5 | Technologies, 6 | Tech, 7 | TechImg, 8 | TechName, 9 | ContactWrapper, 10 | } from "./AboutElements"; 11 | function About() { 12 | return ( 13 | 14 |
15 |
About Me
16 |
17 | man-svgrepo 21 |
22 | Hello! My name is Your Name Lorem Ipsum is simply 23 | dummy text of the printing and typesetting industry. Lorem Ipsum has 24 | been the industry's standard dummy text ever since the 1500s, when 25 | an unknown printer took a galley of type and scrambled it to make a 26 | type specimen book. It has survived not only five centuries, but 27 | also the leap into electronic typesetting, remaining essentially 28 | unchanged. 29 |
30 |
31 | I have become confident using the following technologies. 32 |
33 | 34 | {stackList.map((stack, index) => ( 35 | 36 | 37 | {stack.name} 38 | 39 | ))} 40 | 41 |
42 |
43 |
44 | ); 45 | } 46 | 47 | export default About; 48 | -------------------------------------------------------------------------------- /src/components/About/AboutElements.js: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const ContactWrapper = styled.div` 4 | margin-top: 5rem; 5 | `; 6 | 7 | export const Image = styled.img` 8 | max-width: 120px; 9 | margin: 0 auto; 10 | margin-bottom: 1rem; 11 | `; 12 | 13 | export const Technologies = styled.div` 14 | display: flex; 15 | flex-wrap: wrap; 16 | justify-content: center; 17 | margin-right: auto; 18 | margin-left: auto; 19 | margin-bottom: -2rem; 20 | `; 21 | 22 | export const Tech = styled.div` 23 | display: flex; 24 | flex-direction: column; 25 | align-items: center; 26 | max-width: 100px; 27 | min-width: 100px; 28 | margin-bottom: 2rem; 29 | `; 30 | 31 | export const TechImg = styled.img` 32 | height: 50px; 33 | width: 50px; 34 | `; 35 | 36 | export const TechName = styled.div` 37 | font-size: 14px; 38 | `; 39 | -------------------------------------------------------------------------------- /src/components/Contact/Contact.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import SocialIcon from "../SocialIcon/SocialIcon"; 3 | import { ContactWrapper, Email } from "./ContactElements"; 4 | function Contact() { 5 | return ( 6 | 7 |
8 |
Get In Touch
9 |
10 | 11 | your_email@gmail.com 12 | 18 | Send Mail 19 | 20 | 21 |
22 | 23 |
24 |
25 | ); 26 | } 27 | 28 | export default Contact; 29 | -------------------------------------------------------------------------------- /src/components/Contact/ContactElements.js: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const ContactWrapper = styled.div` 4 | margin: 5rem 0; 5 | `; 6 | 7 | export const Email = styled.div` 8 | display: flex; 9 | align-items: center; 10 | flex-direction: column; 11 | justify-content: space-around; 12 | 13 | span { 14 | font-size: 1rem; 15 | font-weight: 500; 16 | margin-bottom: 1rem; 17 | } 18 | 19 | @media (min-width: 576px) { 20 | span { 21 | font-size: 1.5rem; 22 | } 23 | } 24 | @media (min-width: 992px) { 25 | flex-direction: row; 26 | span { 27 | margin-bottom: 0; 28 | font-size: 3rem; 29 | } 30 | } 31 | `; 32 | -------------------------------------------------------------------------------- /src/components/Dropdown/Dropdown.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { FaTimes } from "react-icons/fa"; 3 | import styled from "styled-components"; 4 | import { Link as ScrollLink } from "react-scroll"; 5 | 6 | const SiderBar = styled.div` 7 | background: #151418; 8 | position: fixed; 9 | height: 100%; 10 | width: 100%; 11 | /* top: 0; */ 12 | left: 0; 13 | z-index: 999; 14 | transition: 0.3s ease-in-out; 15 | display: flex; 16 | justify-content: center; 17 | flex-direction: column; 18 | align-items: center; 19 | opacity: ${({ isOpen }) => (isOpen ? "100%" : "0")}; 20 | top: ${({ isOpen }) => (isOpen ? "0" : "-100%")}; 21 | `; 22 | 23 | const CloseIcon = styled(FaTimes)` 24 | font-size: 2rem; 25 | color: #fff; 26 | position: absolute; 27 | right: 2rem; 28 | top: 2rem; 29 | cursor: pointer; 30 | `; 31 | export const NavMenu = styled.div` 32 | display: flex; 33 | justify-content: center; 34 | align-items: center; 35 | flex-direction: column; 36 | 37 | .menu-item + .menu-item { 38 | margin-top: 2rem; 39 | } 40 | `; 41 | 42 | export const NavLink = styled(ScrollLink)` 43 | color: #fff; 44 | cursor: pointer; 45 | font-size: 1.7rem; 46 | 47 | &:hover { 48 | color: rgb(119, 119, 121); 49 | } 50 | `; 51 | 52 | export const NavBtn = styled.div` 53 | display: flex; 54 | justify-content: center; 55 | margin-top: 5rem; 56 | font-size: 1.7rem; 57 | `; 58 | 59 | function Dropdown({ isOpen, toggle }) { 60 | return ( 61 | 62 | 63 | 64 | 70 | Projects 71 | 72 | 78 | About 79 | 80 | 86 | Contact 87 | 88 | 89 | 90 | 96 | Resume 97 | 98 | 99 | 100 | ); 101 | } 102 | 103 | export default Dropdown; 104 | -------------------------------------------------------------------------------- /src/components/Footer/Footer.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import styled from "styled-components"; 3 | 4 | const FooterSection = styled.div` 5 | background-image: url(https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/footer_wave.svg); 6 | background-repeat: no-repeat; 7 | background-size: cover; 8 | width: 100%; 9 | height: 250px; 10 | position: relative; 11 | 12 | span { 13 | position: absolute; 14 | bottom: 4rem; 15 | color: #fff; 16 | 17 | a { 18 | text-decoration: underline; 19 | } 20 | } 21 | `; 22 | function Footer() { 23 | return ( 24 | 25 |
26 | 27 | Coded with 💙 by{" "} 28 | 33 | @gurupawar 34 | {" "} 35 | 36 |
37 |
38 | ); 39 | } 40 | 41 | export default Footer; 42 | -------------------------------------------------------------------------------- /src/components/Header/Header.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Nav, Logo, NavLink, Bars, NavMenu, NavBtn } from "./HeaderElements"; 3 | 4 | const Header = ({ toggle }) => { 5 | return ( 6 |
7 | 37 |
38 | ); 39 | }; 40 | 41 | export default Header; 42 | -------------------------------------------------------------------------------- /src/components/Header/HeaderElements.js: -------------------------------------------------------------------------------- 1 | import { FaBars } from "react-icons/fa"; 2 | import { Link as LinkRouter } from "react-router-dom"; 3 | import { Link as ScrollLink } from "react-scroll"; 4 | import styled from "styled-components"; 5 | 6 | export const Nav = styled.nav` 7 | background: transparent; 8 | height: 100px; 9 | display: flex; 10 | align-items: center; 11 | justify-content: space-between; 12 | z-index: 10; 13 | `; 14 | 15 | export const NavLink = styled(ScrollLink)` 16 | color: rgb(119, 119, 121); 17 | display: flex; 18 | font-size: 1.2rem; 19 | align-items: center; 20 | height: 100%; 21 | cursor: pointer; 22 | &:hover { 23 | color: #f6f6f6; 24 | } 25 | `; 26 | export const Logo = styled(LinkRouter)` 27 | img { 28 | width: 47px; 29 | height: 47px; 30 | } 31 | `; 32 | 33 | export const Bars = styled(FaBars)` 34 | display: none; 35 | color: #fff; 36 | font-size: 1.8rem; 37 | cursor: pointer; 38 | @media screen and (max-width: 768px) { 39 | display: block; 40 | } 41 | `; 42 | 43 | export const NavMenu = styled.div` 44 | display: flex; 45 | align-items: center; 46 | margin-right: -24px; 47 | 48 | .menu-item + .menu-item { 49 | margin-left: 1rem; 50 | } 51 | @media screen and (max-width: 768px) { 52 | display: none; 53 | } 54 | `; 55 | 56 | export const NavBtn = styled.nav` 57 | display: flex; 58 | align-items: center; 59 | margin-right: 24px; 60 | 61 | @media screen and (max-width: 768px) { 62 | display: none; 63 | } 64 | `; 65 | -------------------------------------------------------------------------------- /src/components/Hero/Hero.js: -------------------------------------------------------------------------------- 1 | import React, { useState } from "react"; 2 | import Dropdown from "../Dropdown/Dropdown"; 3 | import Header from "../Header/Header"; 4 | import { 5 | HeroContainer, 6 | HeroWrapper, 7 | HeroLeft, 8 | HeroRight, 9 | Image, 10 | ScrollDown, 11 | ScrollLink, 12 | } from "./HeroElements"; 13 | function Hero() { 14 | const [isOpen, setIsOpen] = useState(false); 15 | 16 | const toggle = () => { 17 | setIsOpen(!isOpen); 18 | }; 19 | return ( 20 |
21 | 22 |
23 | 24 | 25 | 26 |

Hi, I'm YourName

27 |
Frontend Developer
28 |

29 | I design and code beautifully simple things, and I love what I do. 30 |

31 |
32 | 33 | man-svgrepo 37 | 38 |
39 | 40 | 41 | Scroll down 42 | scroll-down 46 | 47 | 48 |
49 |
50 | ); 51 | } 52 | 53 | export default Hero; 54 | -------------------------------------------------------------------------------- /src/components/Hero/HeroElements.js: -------------------------------------------------------------------------------- 1 | import styled, { keyframes } from "styled-components"; 2 | import { Link as LinkScroll } from "react-scroll"; 3 | 4 | export const HeroContainer = styled.div` 5 | padding-bottom: 2rem; 6 | padding-top: 4rem; 7 | padding-right: 1rem; 8 | padding-left: 1rem; 9 | margin-right: auto; 10 | margin-left: auto; 11 | display: flex; 12 | flex-direction: column; 13 | 14 | @media (min-width: 576px) { 15 | max-width: 540px; 16 | } 17 | @media (min-width: 768px) { 18 | max-width: 720px; 19 | } 20 | @media (min-width: 992px) { 21 | max-width: 960px; 22 | } 23 | @media (min-width: 1200px) { 24 | max-width: 1000px; 25 | } 26 | `; 27 | 28 | export const HeroWrapper = styled.div` 29 | display: flex; 30 | flex-direction: row; 31 | 32 | @media screen and (max-width: 992px) { 33 | flex-direction: column; 34 | } 35 | `; 36 | 37 | export const HeroLeft = styled.div` 38 | display: flex; 39 | flex-direction: column; 40 | justify-content: center; 41 | align-items: flex-start; 42 | text-align: left; 43 | flex: 1; 44 | 45 | h1 { 46 | font-size: 2.8rem; 47 | color: #f6f6f6; 48 | opacity: 0.98; 49 | font-weight: 400; 50 | } 51 | 52 | h5 { 53 | font-size: 1.6rem; 54 | color: rgb(119, 119, 121); 55 | margin-bottom: 1rem; 56 | font-weight: 400; 57 | } 58 | 59 | p { 60 | font-size: 17px; 61 | color: #f6f6f6; 62 | opacity: 0.85; 63 | } 64 | 65 | @media screen and (max-width: 992px) { 66 | text-align: center; 67 | align-items: center; 68 | margin-bottom: 2rem; 69 | } 70 | `; 71 | 72 | export const HeroRight = styled.div` 73 | flex: 1; 74 | justify-content: center; 75 | display: flex; 76 | `; 77 | 78 | export const Image = styled.img` 79 | height: 300px; 80 | width: auto; 81 | `; 82 | 83 | const ScrollAnimation = keyframes` 84 | 0%, 85 | 20%, 86 | 50%, 87 | 80%, 88 | 100% { 89 | transform: translateY(0); 90 | } 91 | 40% { 92 | transform: translateY(-20px); 93 | } 94 | 60% { 95 | transform: translateY(-10px); 96 | } 97 | `; 98 | 99 | export const ScrollDown = styled(LinkScroll)` 100 | margin-top: 3rem; 101 | display: flex; 102 | justify-content: flex-start; 103 | cursor: pointer; 104 | 105 | animation: ${ScrollAnimation} 2s linear 0s infinite; 106 | @media screen and (max-width: 992px) { 107 | justify-content: center; 108 | } 109 | `; 110 | 111 | export const ScrollLink = styled.div` 112 | display: flex; 113 | align-items: center; 114 | font-size: 1.3rem; 115 | color: #f6f6f6; 116 | 117 | img { 118 | height: 35px; 119 | width: 35px; 120 | margin-left: 6px; 121 | } 122 | `; 123 | -------------------------------------------------------------------------------- /src/components/Projects/ProjectCard/ProjectCard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { ProjectList } from "../../../data/ProjectData"; 3 | import { 4 | Card, 5 | CardLeft, 6 | CardRight, 7 | Stack, 8 | BtnGroup, 9 | } from "./ProjectCardElements"; 10 | function ProjectCard() { 11 | return ( 12 | <> 13 | {ProjectList.map((list, index) => ( 14 | 15 | 16 | {list.name} 17 | 18 | 19 |

{list.title}

20 |

{list.description}

21 | 22 | Tech Stack - 23 | {list.tech_stack} 24 | 25 | 26 | 32 | Github 33 | 34 | 40 | Demo ➜ 41 | 42 | 43 |
44 |
45 | ))} 46 | 47 | ); 48 | } 49 | 50 | export default ProjectCard; 51 | -------------------------------------------------------------------------------- /src/components/Projects/ProjectCard/ProjectCardElements.js: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const Card = styled.div` 4 | display: grid; 5 | grid-gap: 2rem; 6 | margin-bottom: 4rem; 7 | grid-template-columns: 1fr; 8 | border-bottom: 1px solid rgb(0, 0, 0); 9 | padding-bottom: 2rem; 10 | @media (min-width: 992px) { 11 | grid-template-columns: 1fr 1fr; 12 | border-bottom: 0; 13 | padding-bottom: 0; 14 | } 15 | `; 16 | 17 | export const CardLeft = styled.div` 18 | background: #151418; 19 | border-radius: 5px; 20 | padding: 5px; 21 | justify-self: center; 22 | 23 | img { 24 | border-radius: 3px; 25 | height: auto; 26 | } 27 | `; 28 | 29 | export const CardRight = styled.div` 30 | display: flex; 31 | flex-direction: column; 32 | justify-content: center; 33 | align-items: center; 34 | 35 | h4 { 36 | font-size: 1.5rem; 37 | font-weight: 400; 38 | } 39 | 40 | p { 41 | font-weight: 400; 42 | max-width: 400px; 43 | margin-top: 10px; 44 | margin-bottom: 1rem; 45 | color: rgba(0, 0, 0, 0.815); 46 | text-align: center; 47 | 48 | @media (min-width: 992px) { 49 | text-align: start; 50 | } 51 | } 52 | @media (min-width: 992px) { 53 | align-items: flex-start; 54 | margin-top: 1rem; 55 | } 56 | `; 57 | 58 | export const Stack = styled.div` 59 | display: flex; 60 | align-items: center; 61 | margin-bottom: 5px; 62 | 63 | .stackTitle { 64 | font-weight: 500; 65 | margin-right: 10px; 66 | font-size: 17px; 67 | } 68 | 69 | .tags { 70 | font-size: 15px; 71 | font-weight: 400; 72 | } 73 | `; 74 | 75 | export const BtnGroup = styled.div` 76 | height: 70px; 77 | display: flex; 78 | align-items: center; 79 | `; 80 | -------------------------------------------------------------------------------- /src/components/Projects/Projects.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ProjectCard from "./ProjectCard/ProjectCard"; 3 | function Projects() { 4 | return ( 5 | <> 6 | 14 | 22 | 23 |
24 |
25 |
Projects
26 | 27 |
28 |
29 | 30 | ); 31 | } 32 | 33 | export default Projects; 34 | -------------------------------------------------------------------------------- /src/components/SocialIcon/FixSocialIcon.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { FaLinkedin, FaInstagram, FaGithub } from "react-icons/fa"; 3 | import styled from "styled-components"; 4 | 5 | const Social = styled.div` 6 | display: block; 7 | position: fixed; 8 | top: 48%; 9 | left: 1.5rem; 10 | transform: translateY(-50%); 11 | 12 | ul { 13 | display: block; 14 | } 15 | 16 | .item + .item { 17 | margin-top: 1rem; 18 | } 19 | 20 | a { 21 | font-size: 2rem; 22 | color: rgb(119, 119, 121); 23 | transition: 0.2s ease-in; 24 | &:hover { 25 | color: rgb(57, 134, 250); 26 | } 27 | } 28 | 29 | @media screen and (max-width: 768px) { 30 | display: none; 31 | } 32 | `; 33 | function FixSocialIcon() { 34 | return ( 35 | 36 | 65 | 66 | ); 67 | } 68 | 69 | export default FixSocialIcon; 70 | -------------------------------------------------------------------------------- /src/components/SocialIcon/SocialIcon.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { FaLinkedin, FaInstagram, FaGithub } from "react-icons/fa"; 3 | 4 | import styled from "styled-components"; 5 | 6 | export const SocialDiv = styled.div` 7 | margin-top: 2rem; 8 | display: none; 9 | ul { 10 | display: flex; 11 | justify-content: center; 12 | align-items: center; 13 | list-style: none; 14 | } 15 | 16 | a { 17 | font-size: 2.5rem; 18 | color: #151418; 19 | transition: 0.2s ease-in; 20 | &:hover { 21 | color: rgb(57, 134, 250); 22 | } 23 | } 24 | 25 | .item + .item { 26 | margin-left: 2rem; 27 | } 28 | 29 | @media screen and (max-width: 768px) { 30 | display: block; 31 | } 32 | `; 33 | 34 | function SocialIcon() { 35 | return ( 36 | 37 | 66 | 67 | ); 68 | } 69 | 70 | export default SocialIcon; 71 | -------------------------------------------------------------------------------- /src/data/ProjectData.js: -------------------------------------------------------------------------------- 1 | // --------------------------------------- Project List 2 | export const ProjectList = [ 3 | { 4 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/project_1.png", 5 | title: "Spense", 6 | description: "Codewell challenge, Spense is a landing page for writers.", 7 | tech_stack: "Html, Css, Javascript", 8 | github_url: "https://your_project_github_link", 9 | demo_url: "https://your_project_demo_link", 10 | }, 11 | { 12 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/project_2.png", 13 | title: "Fiber", 14 | description: 15 | "An online portfolio generator. Great to practice flex/grid layouts, absolute positioning and sliders.", 16 | tech_stack: "Html, Css, Javascript", 17 | github_url: "https://your_project_github_link", 18 | demo_url: "https://your_project_demo_link", 19 | }, 20 | { 21 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/portfolio.png", 22 | title: "Portfolio", 23 | description: "Ofcourse i made my own personal portfolio website.", 24 | tech_stack: "Reactjs, Css", 25 | github_url: "https://your_project_github_link", 26 | demo_url: "https://your_project_demo_link/", 27 | }, 28 | { 29 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/project_3.png", 30 | title: "Ecommerce website", 31 | description: 32 | "Created simple ecommerce website using reactjs and react-use-cart plugin.", 33 | tech_stack: "Reactjs, Css", 34 | github_url: "https://your_project_github_link", 35 | demo_url: "https://your_project_demo_link", 36 | }, 37 | ]; 38 | 39 | // --------------------------------------- Skills 40 | 41 | export const stackList = [ 42 | { 43 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/skill/html5.svg", 44 | name: "HTML", 45 | }, 46 | { 47 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/skill/css3.svg", 48 | name: "CSS", 49 | }, 50 | { 51 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/skill/javascript.svg", 52 | name: "JavaScript", 53 | }, 54 | { 55 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/skill/react.svg", 56 | name: "ReactJS", 57 | }, 58 | { 59 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/skill/bootstrap.svg", 60 | name: "Bootstrap", 61 | }, 62 | { 63 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/skill/sass.svg", 64 | name: "Scss", 65 | }, 66 | { 67 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/skill/git.svg", 68 | name: "Git", 69 | }, 70 | { 71 | img: "https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/skill/responsive.svg", 72 | name: "Responsive", 73 | }, 74 | ]; 75 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;700&display=swap"); 2 | *, 3 | *::before, 4 | *::after { 5 | margin: 0; 6 | padding: 0; 7 | box-sizing: border-box; 8 | scroll-behavior: smooth; 9 | } 10 | body { 11 | font-family: "Poppins", sans-serif; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | background: #fafaff; 15 | font-weight: 400; 16 | } 17 | 18 | main { 19 | background: #151418; 20 | background-image: url(https://raw.githubusercontent.com/gurupawar/website/main/src/Assets/blob-haikei.svg); 21 | background-repeat: no-repeat; 22 | background-size: cover; 23 | width: 100%; 24 | } 25 | 26 | a { 27 | text-decoration: none; 28 | color: inherit; 29 | background-color: transparent; 30 | } 31 | 32 | ul, 33 | ol { 34 | list-style: none; 35 | } 36 | 37 | article, 38 | aside, 39 | details, 40 | figcaption, 41 | figure, 42 | footer, 43 | header, 44 | hgroup, 45 | menu, 46 | nav, 47 | section { 48 | display: block; 49 | } 50 | 51 | h1, 52 | h2, 53 | h3, 54 | h4, 55 | h5, 56 | h6 { 57 | font-size: 100%; 58 | font-weight: normal; 59 | } 60 | 61 | img, 62 | video { 63 | display: block; 64 | max-width: 100%; 65 | } 66 | 67 | .btn { 68 | border: 2px solid rgb(57, 134, 250); 69 | padding: 10px 1rem; 70 | border-radius: 5px; 71 | cursor: pointer; 72 | transition: all 0.2s ease-in-out; 73 | font-weight: 400; 74 | outline: none; 75 | } 76 | 77 | .PrimaryBtn { 78 | background: rgb(57, 134, 250); 79 | color: #f6f6f6; 80 | } 81 | 82 | .PrimaryBtn:hover { 83 | background: #fff; 84 | color: #010606; 85 | } 86 | 87 | .SecondarBtn:hover { 88 | background: rgb(57, 134, 250); 89 | color: #fff; 90 | } 91 | 92 | .btn2 { 93 | margin-right: 1rem; 94 | } 95 | 96 | .Container { 97 | width: 100%; 98 | padding-right: 1rem; 99 | padding-left: 1rem; 100 | margin-right: auto; 101 | margin-left: auto; 102 | } 103 | 104 | .BigCard { 105 | padding-top: 3rem; 106 | padding-bottom: 3rem; 107 | padding-right: 2rem; 108 | padding-left: 2rem; 109 | border-radius: 1rem; 110 | display: flex; 111 | flex-direction: column; 112 | background: #fff; 113 | box-shadow: rgba(0, 0, 0, 0.05) 0px 5px 10px; 114 | /* box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 115 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); */ 116 | } 117 | 118 | .AboutBio, 119 | .tagline2 { 120 | text-align: center; 121 | max-width: 650px; 122 | margin: 0 auto; 123 | color: #151418; 124 | line-height: 1.6; 125 | } 126 | 127 | .tagline2 { 128 | margin-top: 1rem; 129 | margin-bottom: 2rem; 130 | } 131 | 132 | .SectionTitle { 133 | font-size: 28px; 134 | color: #151418; 135 | font-weight: 700; 136 | margin-bottom: 3.5rem; 137 | } 138 | .ProjectWrapper { 139 | margin-top: -1rem; 140 | } 141 | 142 | /* ------------------------------------ Media for Container */ 143 | @media (min-width: 576px) { 144 | .Container { 145 | max-width: 540px; 146 | } 147 | } 148 | @media (min-width: 768px) { 149 | .Container { 150 | max-width: 720px; 151 | } 152 | .ProjectWrapper { 153 | margin-top: -5rem; 154 | } 155 | } 156 | @media (min-width: 992px) { 157 | .Container { 158 | max-width: 960px; 159 | } 160 | } 161 | @media (min-width: 1200px) { 162 | .Container { 163 | max-width: 1000px; 164 | } 165 | } 166 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | 6 | ReactDOM.render(, document.getElementById("root")); 7 | -------------------------------------------------------------------------------- /src/pages/Home.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Hero from "../components/Hero/Hero"; 3 | import Projects from "../components/Projects/Projects"; 4 | import About from "../components/About/About"; 5 | import Contact from "../components/Contact/Contact"; 6 | import Footer from "../components/Footer/Footer"; 7 | import FixSocialIcon from "../components/SocialIcon/FixSocialIcon"; 8 | function Home() { 9 | return ( 10 | <> 11 | 12 | 13 | 14 | 15 |