├── public
├── robots.txt
├── favicon.ico
├── logo192.png
├── logo512.png
├── screenshots
│ ├── blogs-screen.png
│ ├── dev-screen.png
│ ├── home-screen.png
│ ├── projects-screen.png
│ └── achievements-screen.png
├── manifest.json
└── index.html
├── src
├── assets
│ ├── fonts
│ │ ├── Pixel.otf
│ │ └── Streamster.ttf
│ └── images
│ │ └── profile.jpg
├── components
│ ├── General
│ │ └── Button.js
│ ├── Splash
│ │ ├── Intro.js
│ │ └── ParticleBackground.js
│ └── Portfolio
│ │ ├── About
│ │ ├── About.js
│ │ ├── Education.js
│ │ ├── Skills.js
│ │ └── Info.js
│ │ ├── Blogs
│ │ ├── Blog.js
│ │ └── Blogs.js
│ │ ├── Projects
│ │ ├── Project.js
│ │ └── Projects.js
│ │ ├── Achievements
│ │ └── Achievements.js
│ │ ├── Portfolio.js
│ │ └── Nav.js
├── reportWebVitals.js
├── index.js
├── App.js
└── index.css
├── .gitignore
├── package.json
└── README.md
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/public/logo192.png
--------------------------------------------------------------------------------
/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/public/logo512.png
--------------------------------------------------------------------------------
/src/assets/fonts/Pixel.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/src/assets/fonts/Pixel.otf
--------------------------------------------------------------------------------
/src/assets/images/profile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/src/assets/images/profile.jpg
--------------------------------------------------------------------------------
/src/assets/fonts/Streamster.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/src/assets/fonts/Streamster.ttf
--------------------------------------------------------------------------------
/public/screenshots/blogs-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/public/screenshots/blogs-screen.png
--------------------------------------------------------------------------------
/public/screenshots/dev-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/public/screenshots/dev-screen.png
--------------------------------------------------------------------------------
/public/screenshots/home-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/public/screenshots/home-screen.png
--------------------------------------------------------------------------------
/public/screenshots/projects-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/public/screenshots/projects-screen.png
--------------------------------------------------------------------------------
/public/screenshots/achievements-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamyajat/retro-portfolio-website/HEAD/public/screenshots/achievements-screen.png
--------------------------------------------------------------------------------
/src/components/General/Button.js:
--------------------------------------------------------------------------------
1 | const Button = ({ text, onClick, design }) => {
2 | return (
3 | <>
4 |
5 |
{text}
6 |
7 | >
8 | );
9 | };
10 |
11 | Button.defaultProps = {
12 | design: "btn",
13 | };
14 |
15 | export default Button;
16 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/src/components/Splash/Intro.js:
--------------------------------------------------------------------------------
1 | import Button from "../General/Button";
2 |
3 | const Intro = ({ name, designation, onExplore }) => {
4 |
5 | return (
6 |
7 |
{name}
8 | {designation}
9 |
10 |
11 | );
12 | };
13 |
14 | export default Intro;
15 |
--------------------------------------------------------------------------------
/src/reportWebVitals.js:
--------------------------------------------------------------------------------
1 | const reportWebVitals = onPerfEntry => {
2 | if (onPerfEntry && onPerfEntry instanceof Function) {
3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
4 | getCLS(onPerfEntry);
5 | getFID(onPerfEntry);
6 | getFCP(onPerfEntry);
7 | getLCP(onPerfEntry);
8 | getTTFB(onPerfEntry);
9 | });
10 | }
11 | };
12 |
13 | export default reportWebVitals;
14 |
--------------------------------------------------------------------------------
/src/components/Portfolio/About/About.js:
--------------------------------------------------------------------------------
1 | import Education from "./Education"
2 | import Info from "./Info"
3 | import Skills from "./Skills"
4 | import ReactTooltip from "react-tooltip";
5 |
6 | const About = ({openMenu}) => {
7 | return (
8 |
9 |
10 |
11 |
12 |
13 |
14 | );
15 | };
16 |
17 | export default About;
18 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import './index.css';
4 | import App from './App';
5 | import reportWebVitals from './reportWebVitals';
6 |
7 | ReactDOM.render(
8 |
9 |
10 | ,
11 | document.getElementById('root')
12 | );
13 |
14 | // If you want to start measuring performance in your app, pass a function
15 | // to log results (for example: reportWebVitals(console.log))
16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
17 | reportWebVitals();
18 |
--------------------------------------------------------------------------------
/src/components/Portfolio/Blogs/Blog.js:
--------------------------------------------------------------------------------
1 | import Button from "../../General/Button";
2 |
3 | const Blog = ({ blog }) => {
4 | const openBlog = () => {
5 | window.open(blog.link, "_blank");
6 | };
7 |
8 | return (
9 |
10 |
{blog.title}
11 |
{blog.description}
12 |
13 |
18 |
19 | );
20 | };
21 |
22 | export default Blog;
23 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/src/components/Portfolio/Projects/Project.js:
--------------------------------------------------------------------------------
1 | import Button from "../../General/Button";
2 |
3 | const Project = ({ project }) => {
4 | const openProject = () => {
5 | window.open(project.link, "_blank");
6 | };
7 |
8 | return (
9 |
10 |
{project.title}
11 |
{project.description}
12 |
13 |
18 |
19 | );
20 | };
21 |
22 | Project.defaultProps = {};
23 |
24 | export default Project;
25 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | Yajat Malhotra
13 |
14 |
15 |
16 | You need to enable JavaScript to run this app.
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/App.js:
--------------------------------------------------------------------------------
1 | import Intro from "./components/Splash/Intro";
2 | import ParticleBackground from "./components/Splash/ParticleBackground";
3 | import Portfolio from "./components/Portfolio/Portfolio";
4 | import { useState } from "react";
5 |
6 | const App = () => {
7 | const [portfolio, setPortfolio] = useState(false);
8 | const openPortfolio = () => {
9 | setPortfolio(!portfolio);
10 | };
11 |
12 | return (
13 | <>
14 |
15 |
20 | {portfolio ? : ""}
21 | >
22 | );
23 | };
24 |
25 | export default App;
26 |
--------------------------------------------------------------------------------
/src/components/Portfolio/About/Education.js:
--------------------------------------------------------------------------------
1 | const Education = () => {
2 | return (
3 |
4 |
Education
5 |
6 |
7 |
VELLORE INSTITUTE OF TECHNOLOGY
8 |
Vellore, India
9 |
10 |
11 | Computer Science & Engineering
12 |
13 |
Batch of 2024
14 | {/*
CGPA:
*/}
15 |
16 |
17 |
Greenwood High International School
18 |
Bangalore, India
19 |
20 |
Batch of 2020
21 |
12th ISC
22 |
10th ICSE
23 |
24 |
25 |
26 | );
27 | };
28 |
29 | export default Education;
30 |
--------------------------------------------------------------------------------
/src/components/Portfolio/Achievements/Achievements.js:
--------------------------------------------------------------------------------
1 | import { useState } from "react";
2 | const Achievements = ({openMenu}) => {
3 | const [achievements] = useState([
4 | "Best Freshers Award at DevSoc (2021).",
5 | "Overall 2nd Winner at DevSpace (2021).",
6 | "Winner at HackOff 3.0 in AI/Data Science (2020).",
7 | "2nd Winner at VIT Hack in Mobility & Automation track with MOVEL AI as the case partner (2020).",
8 | "Awarded runner up in the Asian level of International Space Settlement Design Competition (2018).",
9 | "Won a lot of inter-school Tug of War matches (2018-19).",
10 | ]);
11 | return (
12 |
13 |
14 |
Achievements
15 |
16 |
17 | {achievements.map((achievement) => (
18 | {achievement}
19 | ))}
20 |
21 |
22 |
23 | );
24 | };
25 |
26 | export default Achievements;
27 |
--------------------------------------------------------------------------------
/src/components/Portfolio/Portfolio.js:
--------------------------------------------------------------------------------
1 | import { useState } from "react";
2 | import About from "./About/About";
3 | import Achievements from "./Achievements/Achievements";
4 | import Blogs from "./Blogs/Blogs";
5 | import Nav from "./Nav";
6 | import Projects from "./Projects/Projects";
7 |
8 | const Portfolio = ({ onClose }) => {
9 | const [page, setPage] = useState("about");
10 | const [openMenu, setOpenMenu] = useState(false);
11 |
12 | const showMenu = () => {
13 | setOpenMenu(!openMenu);
14 | };
15 |
16 | const changePage = (p) => {
17 | setPage(p);
18 | };
19 | return (
20 | <>
21 |
22 |
23 | {page === "about" ?
: ""}
24 | {page === "projects" ? : ""}
25 | {page === "blogs" ? : ""}
26 | {page === "achievements" ? : ""}
27 |
28 | >
29 | );
30 | };
31 |
32 | export default Portfolio;
33 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "retro-portfolio",
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.1.10",
9 | "react": "^17.0.2",
10 | "react-dom": "^17.0.2",
11 | "react-icons": "^4.2.0",
12 | "react-particles-js": "^3.5.3",
13 | "react-scripts": "4.0.3",
14 | "react-tooltip": "^4.2.21",
15 | "tsparticles": "^1.35.0",
16 | "web-vitals": "^1.0.1"
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 |
--------------------------------------------------------------------------------
/src/components/Splash/ParticleBackground.js:
--------------------------------------------------------------------------------
1 | import Particles from "react-particles-js";
2 |
3 | const ParticleBackground = () => {
4 | return (
5 | <>
6 |
55 | >
56 | );
57 | };
58 |
59 | export default ParticleBackground;
60 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Retro Portfolio
2 |
3 | 
4 |
5 | ### Screenshots
6 | 
7 | 
8 | 
9 | 
10 |
11 | [Demo link](https://retro-portfolio.pages.dev/)
12 |
13 | ### Before Running
14 | Have the following installed on your computer:
15 |
16 | - [Git](https://git-scm.com/downloads)
17 | - [Node.js](https://nodejs.org/)
18 | - [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
19 |
20 | ### Cloning the project
21 | Using your terminal, run the following command in the directory where you want the project:
22 |
23 | - SSH: `git@github.com:iamyajat/retro-portfolio-website.git`
24 | - HTTP: `https://github.com/iamyajat/retro-portfolio-website.git`
25 |
26 | ### Running the Project
27 | First, install the depedencies in the project! In a terminal, make sure you are in the directory of the project and run (depending on your package manager):
28 |
29 | | npm | yarn |
30 | | ----------- | ----------- |
31 | | `npm install` | `yarn` |
32 |
33 | Next, simply run the project with the following command in your terminal (depending on your package manager):
34 |
35 | | npm | yarn |
36 | | ----------- | ----------- |
37 | | `npm start` | `yarn start` |
38 |
39 | This will run the project at [http://localhost:3000](http://localhost:3000). To close the project at any time, press `CTRL+C` in your terminal.
--------------------------------------------------------------------------------
/src/components/Portfolio/Nav.js:
--------------------------------------------------------------------------------
1 | import { FaTimes } from "react-icons/fa";
2 | import Button from "../General/Button";
3 | const Nav = ({ openMenu, onClose, onChange, page, showMenu }) => {
4 | return (
5 | <>
6 |
7 |
8 |
9 | onChange("about")}
12 | >
13 | About
14 |
15 | onChange("projects")}
18 | >
19 | Projects
20 |
21 | onChange("blogs")}
24 | >
25 | Blogs
26 |
27 | onChange("achievements")}
30 | >
31 | Achievements
32 |
33 |
34 |
35 |
36 | >
37 | );
38 | };
39 |
40 | export default Nav;
41 |
--------------------------------------------------------------------------------
/src/components/Portfolio/Blogs/Blogs.js:
--------------------------------------------------------------------------------
1 | import { useState } from "react";
2 | import { FaMediumM } from "react-icons/fa";
3 | import Blog from "./Blog";
4 |
5 | const Blogs = ({openMenu}) => {
6 | const [blogs] = useState([
7 | {
8 | id: 1,
9 | title: "INTUITION BEHIND GANS",
10 | description:
11 | "GANs or Generative Adversarial Networks are a type of machine learning framework. It has two neural networks which compete against each other in a game. One is a generator, and the other is a discriminator.",
12 | link: "https://iamyajat.medium.com/intuition-for-gans-generative-adversarial-networks-beginner-friendly-4f38af40b9e1",
13 | show: true,
14 | },
15 | {
16 | id: 5,
17 | title: "ABCD: EFGHIJKLMG HIJKLMNOPQ RSTUVWXYZ",
18 | description: "",
19 | link: "",
20 | show: false,
21 | },
22 | {
23 | id: 6,
24 | title: "ABCD: EFGHIJKLMG HIJKLMNOPQ RSTUVWXYZ",
25 | description: "",
26 | link: "",
27 | show: false,
28 | },
29 | ]);
30 |
31 | return (
32 | <>
33 |
34 |
35 | {blogs.map((blog) => (
36 |
37 | ))}
38 |
39 |
40 |
50 | >
51 | );
52 | };
53 | export default Blogs;
54 |
--------------------------------------------------------------------------------
/src/components/Portfolio/About/Skills.js:
--------------------------------------------------------------------------------
1 | import {
2 | SiPython,
3 | SiTensorflow,
4 | SiAndroid,
5 | SiAndroidstudio,
6 | SiKotlin,
7 | SiJava,
8 | SiHtml5,
9 | SiCss3,
10 | SiJavascript,
11 | SiReact,
12 | SiCplusplus,
13 | SiC,
14 | } from "react-icons/si";
15 | import { useState } from "react";
16 |
17 | const Skills = () => {
18 | const [certifications] = useState([
19 | "Neural Networks and Deep Learning - deeplearning.ai",
20 | "Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - deeplearning.ai",
21 | "Structuring Machine Learning Projects - deeplearning.ai",
22 | "Convolutional Neural Networks - deeplearning.ai",
23 | "Introduction to AI - University of Helsinki",
24 | "Microsoft AI Classroom Series - Microsoft",
25 | "MATLAB Onramp - MathWorks",
26 | "Getting Started: Create and Manage Cloud Resources - Qwiklabs",
27 | ]);
28 |
29 | const [skills] = useState([
30 | ,
31 | ,
32 | ,
33 | ,
34 | ,
35 | ,
36 | ,
37 | ,
38 | ,
39 | ,
40 | ,
41 | ,
42 | ]);
43 |
44 | return (
45 |
46 |
Skills
47 |
48 | {skills.map((skill) => (
49 | {skill}
50 | ))}
51 |
52 |
53 |
Certifications
54 |
55 | {certifications.map((certification) => (
56 | ▪ {certification}
57 | ))}
58 |
59 |
60 | );
61 | };
62 |
63 | export default Skills;
64 |
--------------------------------------------------------------------------------
/src/components/Portfolio/About/Info.js:
--------------------------------------------------------------------------------
1 | import profile_pic from "../../../assets/images/profile.jpg";
2 | import {
3 | FaLinkedinIn,
4 | FaGithub,
5 | FaKaggle,
6 | FaTwitter,
7 | FaMediumM,
8 | } from "react-icons/fa";
9 | const Info = () => {
10 | return (
11 |
12 |
13 |
14 |
15 |
16 |
Yajat Malhotra
17 |
18 |
19 | Hey there! I am freshman at Vellore Institute of
20 | Technology. My career aspiration is to provide digital solutions for
21 | real-life human and business problems utilizing my knowledge in AI and
22 | Machine Learning, and Android Development. Other than tech, I enjoy
23 | photography and film-making.
24 |
25 |
26 |
68 |
69 |
70 | );
71 | };
72 |
73 | export default Info;
74 |
--------------------------------------------------------------------------------
/src/components/Portfolio/Projects/Projects.js:
--------------------------------------------------------------------------------
1 | import Project from "./Project";
2 | import { useState } from "react";
3 | import { FaGithub } from "react-icons/fa";
4 |
5 | const Projects = ({openMenu}) => {
6 | const [projects] = useState([
7 | {
8 | id: 1,
9 | title: "SMART BOOKMARK, API AND ML MODEL",
10 | description:
11 | "An API which can classify website URLs into 10 different categories. The API was made using FastAPI and the model was made in Tensorflow using DistilBert Transformer from Hugging Face.",
12 | link: "https://github.com/iamyajat/Smart-Bookmark-API",
13 | show: true,
14 | },
15 | {
16 | id: 2,
17 | title: "WOMENTECHIES'21 ANDROID APP",
18 | description:
19 | "An Android app for the event WomenTechies'21 which can send realtime notifications, show in-app announcements, Instagram highlights and timeline of the event, and other info.",
20 | link: "https://play.google.com/store/apps/details?id=com.dscvit.wt21",
21 | show: true,
22 | },
23 | {
24 | id: 3,
25 | title: "YAZAFIT: BMI & WATER TRACKER",
26 | description:
27 | "Developed an Android app to solve the problem of dehydration and weight abnormalities in people by keeping track of their water intake and BMI.",
28 | link: "https://yazafit.iamyajat.co/",
29 | show: true,
30 | },
31 | {
32 | id: 4,
33 | title: "SPACEWEIGHT: YOUR WEIGHT ON OTHER WORLDS",
34 | description:
35 | "Developed an Android app to find your weight on other planets, for example, Venus, Jupiter, etc.",
36 | link: "https://spaceweight.iamyajat.co/",
37 | show: true,
38 | },
39 | {
40 | id: 5,
41 | title: "ABCD: EFGHIJKLMG HIJKLMNOPQ RSTUVWXYZ",
42 | description: "",
43 | link: "",
44 | show: false,
45 | },
46 | {
47 | id: 6,
48 | title: "ABCD: EFGHIJKLMG HIJKLMNOPQ RSTUVWXYZ",
49 | description: "",
50 | link: "",
51 | show: false,
52 | },
53 | ]);
54 |
55 | return (
56 | <>
57 |
58 |
59 | {projects.map((project) => (
60 |
61 | ))}
62 |
63 |
64 |
74 | >
75 | );
76 | };
77 |
78 | export default Projects;
79 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: "Pixel";
3 | src: local("Pixel"), url(./assets/fonts/Pixel.otf) format("opentype");
4 | /* other formats include: 'woff2', 'truetype, 'opentype', 'embedded-opentype', and 'svg' */
5 | }
6 |
7 | @font-face {
8 | font-family: "Streamster";
9 | src: local("Streamster"),
10 | url(./assets/fonts/Streamster.ttf) format("truetype");
11 | }
12 |
13 | :root {
14 | --pink: #f37298;
15 | --hot-pink: #ff00aa;
16 | --deep-blue: #0d294e;
17 | --blue: #4375b8;
18 | --grey: #495057;
19 | }
20 |
21 | * {
22 | margin: 0;
23 | padding: 0;
24 | border: 0;
25 | outline: 0;
26 | font-size: 100%;
27 | vertical-align: baseline;
28 | background: transparent;
29 | font-family: "Pixel";
30 | }
31 |
32 | ::-webkit-scrollbar {
33 | width: 10px;
34 | }
35 | ::-webkit-scrollbar-track {
36 | background: white;
37 | }
38 | ::-webkit-scrollbar-thumb {
39 | background: var(--grey);
40 | border-radius: 0px;
41 | }
42 | ::-webkit-scrollbar-thumb:hover {
43 | background: var(--deep-blue);
44 | }
45 |
46 | ::-moz-selection {
47 | /* Code for Firefox */
48 | color: white;
49 | background: var(--pink);
50 | }
51 |
52 | ::selection {
53 | color: white;
54 | background: var(--pink);
55 | }
56 |
57 | html {
58 | height: 100%;
59 | }
60 |
61 | body {
62 | background: linear-gradient(135deg, var(--deep-blue), var(--blue));
63 | background-repeat: no-repeat;
64 | background-size: 150% 150%;
65 | animation: gradient 15s ease infinite;
66 | }
67 |
68 | h1 {
69 | font-size: 18px;
70 | }
71 |
72 | p {
73 | font-family: monospace;
74 | font-size: 16px;
75 | }
76 |
77 | @keyframes gradient {
78 | 0% {
79 | background-position: 0% 50%;
80 | }
81 | 50% {
82 | background-position: 100% 50%;
83 | }
84 | 100% {
85 | background-position: 0% 50%;
86 | }
87 | }
88 |
89 | .name-title {
90 | margin: 0 0 0 -12px;
91 | position: absolute;
92 | top: 30%;
93 | left: 50%;
94 | -ms-transform: translate(-50%, -30%);
95 | transform: translate(-50%, -30%);
96 | color: var(--pink);
97 | width: 80%;
98 | font-family: "Streamster";
99 | font-size: 10rem;
100 | text-align: center;
101 | -webkit-user-select: none;
102 | -moz-user-select: none;
103 | -ms-user-select: none;
104 | user-select: none;
105 | }
106 |
107 | .name-designation {
108 | margin: 0;
109 | position: absolute;
110 | top: 65%;
111 | left: 50%;
112 | -ms-transform: translate(-50%, -60%);
113 | transform: translate(-50%, -60%);
114 | color: white;
115 | width: 80%;
116 | font-size: 2.5rem;
117 | text-align: center;
118 | opacity: 0.85;
119 | -webkit-user-select: none;
120 | -moz-user-select: none;
121 | -ms-user-select: none;
122 | user-select: none;
123 | }
124 |
125 | .intro-page {
126 | width: 100%;
127 | height: 100%;
128 | align-items: center;
129 | }
130 |
131 | .particles {
132 | position: absolute !important;
133 | width: 100%;
134 | height: 100%;
135 | }
136 |
137 | .menu-button {
138 | display: none;
139 | }
140 |
141 | .btn {
142 | margin: 0;
143 | position: absolute;
144 | bottom: 10%;
145 | left: 50%;
146 | -ms-transform: translate(-50%, -60%);
147 | transform: translate(-50%, -60%);
148 | background: transparent;
149 | color: white;
150 | padding: 15px 32px;
151 | cursor: pointer;
152 | opacity: 0.3;
153 | border: 2px solid white;
154 | transition: 0.3s;
155 | -webkit-user-select: none;
156 | -moz-user-select: none;
157 | -ms-user-select: none;
158 | user-select: none;
159 | }
160 |
161 | .btn h3 {
162 | font-size: 16px;
163 | font-weight: normal;
164 | }
165 |
166 | .btn:hover {
167 | background-color: var(--pink);
168 | opacity: 0.9;
169 | }
170 |
171 | .portfolio-card {
172 | position: absolute;
173 | top: 50%;
174 | left: 50%;
175 | -ms-transform: translate(-50%, -50%);
176 | transform: translate(-50%, -50%);
177 | width: 90vw;
178 | height: 90vh;
179 | background-color: #f37299c5;
180 | backdrop-filter: blur(10px);
181 | box-shadow: 3px 3px 60px rgba(0, 0, 0, 0.24);
182 | border: 2px solid white;
183 | transition: 1s;
184 | }
185 |
186 | .nav-bar {
187 | height: 40px;
188 | background-color: white;
189 | list-style: none;
190 | display: flex;
191 | justify-content: space-between;
192 | padding: 10px;
193 | position: static;
194 | top: 0;
195 | }
196 |
197 | .nav-links {
198 | list-style: none;
199 | display: flex;
200 | width: fit-content;
201 | }
202 |
203 | .nav-links li {
204 | margin: 0 10px;
205 | padding: 10px;
206 | }
207 |
208 | .nav-links li span {
209 | text-decoration: none;
210 | flex: 1;
211 | text-align: center;
212 | font-weight: 600;
213 | color: black;
214 | transition: all 0.2s ease;
215 | padding-bottom: 27px;
216 | cursor: pointer;
217 | -webkit-user-select: none;
218 | -moz-user-select: none;
219 | -ms-user-select: none;
220 | user-select: none;
221 | }
222 |
223 | .nav-links li :hover {
224 | color: var(--pink);
225 | }
226 |
227 | .nav-links li span h1 {
228 | font-size: 20px;
229 | }
230 |
231 | .nav-active span h1 {
232 | font-size: 20px;
233 | color: var(--pink);
234 | /* font-weight: normal;
235 | text-shadow: -1px 0 var(--pink), 0 1px var(--deep-blue), 1px 0 var(--deep-blue), 0 -1px var(--deep-blue); */
236 | }
237 |
238 | .close-btn {
239 | padding: 10px;
240 | height: 25px;
241 | width: 25px;
242 | cursor: pointer;
243 | }
244 |
245 | .close-btn:hover {
246 | color: var(--pink);
247 | }
248 |
249 | .close-btn path :hover {
250 | stroke: black;
251 | stroke-width: 30px;
252 | }
253 |
254 | .portfolio-section {
255 | position: absolute;
256 | top: calc(50% + 30px);
257 | left: 50%;
258 | -ms-transform: translate(-50%, -50%);
259 | transform: translate(-50%, -50%);
260 | width: 90vw;
261 | height: calc(90vh - 60px);
262 | overflow-y: auto;
263 | }
264 |
265 | .info-card {
266 | margin: 10px auto;
267 | padding: 50px;
268 | width: 78vw;
269 | background-color: white;
270 | display: flex;
271 | justify-content: space-between;
272 | }
273 |
274 | .profile-pic {
275 | border-radius: 50%;
276 | width: 200px;
277 | height: 200px;
278 | object-fit: cover;
279 | -webkit-user-select: none;
280 | -moz-user-select: none;
281 | -ms-user-select: none;
282 | user-select: none;
283 | }
284 |
285 | .about-me {
286 | text-align: right;
287 | vertical-align: top;
288 | padding-left: 50px;
289 | line-height: 1.6;
290 | }
291 |
292 | .social-icons .social-icon {
293 | text-decoration: none;
294 | display: inline-flex;
295 | align-items: center;
296 | justify-content: center;
297 | height: 3.5rem;
298 | width: 3.5rem;
299 | background-color: var(--grey);
300 | color: white;
301 | border-radius: 100%;
302 | font-size: 1.5rem;
303 | margin: 1rem 1.5rem 0 0;
304 | }
305 |
306 | .social-icons .social-icon:last-child {
307 | margin-right: 0;
308 | }
309 |
310 | .social-icons .social-icon:hover {
311 | background-color: var(--pink);
312 | }
313 |
314 | .education-card {
315 | margin: 10px auto;
316 | padding: 50px;
317 | width: 78vw;
318 | background-color: white;
319 | }
320 |
321 | .education-info {
322 | margin: auto;
323 | display: flex;
324 | justify-content: space-between;
325 | }
326 |
327 | .school-info {
328 | width: 50%;
329 | padding: 20px;
330 | margin: 20px 10px 0 0;
331 | border: 1px solid var(--grey);
332 | line-height: 1.6;
333 | }
334 |
335 | .skills-card {
336 | margin: 10px auto;
337 | padding: 50px;
338 | width: 78vw;
339 | background-color: white;
340 | }
341 |
342 | .list-inline {
343 | padding-left: 0;
344 | list-style: none;
345 | }
346 |
347 | .list-inline-item {
348 | display: inline-block;
349 | }
350 |
351 | .list-inline-item:not(:last-child) {
352 | margin-right: 1rem;
353 | }
354 |
355 | .dev-icons {
356 | margin: 20px 0 0 0;
357 | font-size: 3rem;
358 | }
359 |
360 | .ic-but {
361 | color: var(--grey);
362 | opacity: 0.9;
363 | }
364 |
365 | .ic-but:hover {
366 | color: var(--pink);
367 | opacity: 0.9;
368 | }
369 |
370 | .tooltip.__react_component_tooltip.place-bottom::after {
371 | border-bottom: 0 solid var(--pink) !important;
372 | }
373 |
374 | .cert-heading {
375 | margin: 10px 0 10px 0;
376 | }
377 |
378 | .cert-list li {
379 | font-family: monospace;
380 | line-height: 1.6;
381 | font-size: 14px;
382 | list-style-type: none;
383 | }
384 |
385 | .card-view {
386 | margin: 10px;
387 | display: flex;
388 | flex-wrap: wrap;
389 | justify-content: center;
390 | }
391 |
392 | .project-card {
393 | margin: 0px 5px 10px 5px;
394 | min-width: 300px;
395 | max-width: 27%;
396 | padding: 30px;
397 | background-color: white;
398 | }
399 |
400 | .project-card h1 {
401 | font-size: 17px;
402 | margin: 0 0 15px 0;
403 | font-weight: normal;
404 | }
405 |
406 | .project-card p {
407 | margin: 0 0 20px 0;
408 | line-height: 1.6;
409 | }
410 |
411 | .project-btn {
412 | width: fit-content;
413 | margin: auto;
414 | background: transparent;
415 | color: var(--pink);
416 | padding: 10px 20px;
417 | font-size: 16px;
418 | cursor: pointer;
419 | border: 2px solid var(--pink);
420 | transition: 0.3s;
421 | -webkit-user-select: none;
422 | -moz-user-select: none;
423 | -ms-user-select: none;
424 | user-select: none;
425 | }
426 |
427 | .project-btn h3 {
428 | font-weight: normal;
429 | }
430 |
431 | .project-btn:hover {
432 | background-color: var(--pink);
433 | opacity: 0.9;
434 | color: white !important;
435 | }
436 |
437 | .hide-btn {
438 | display: none;
439 | height: 0px;
440 | }
441 |
442 | .hide-card {
443 | visibility: hidden;
444 | height: 0px;
445 | }
446 |
447 | .hide-card p {
448 | height: 0;
449 | }
450 |
451 | .hide-card h1 {
452 | height: 0px;
453 | }
454 |
455 | .github-card {
456 | position: absolute;
457 | bottom: 15px;
458 | right: 20px;
459 | background-color: transparent;
460 | }
461 |
462 | .github-icons .github-icon {
463 | text-decoration: none;
464 | display: inline-flex;
465 | align-items: center;
466 | justify-content: center;
467 | height: 3.5rem;
468 | width: 3.5rem;
469 | background-color: var(--grey);
470 | color: white;
471 | border-radius: 50%;
472 | font-size: 1.5rem;
473 | margin-left: 1.5rem;
474 | margin-top: 1rem;
475 | }
476 |
477 | .github-icons .github-icon:last-child {
478 | margin-right: 0;
479 | }
480 |
481 | .github-icons .github-icon:hover {
482 | background-color: var(--deep-blue);
483 | }
484 |
485 | @media screen and (max-device-width: 480px) and (orientation: portrait) {
486 | .portfolio-card {
487 | top: 55%;
488 | }
489 | }
490 |
491 | @media only screen and (max-width: 1100px) {
492 | .name-title {
493 | top: 35%;
494 | font-size: 8rem;
495 | }
496 | .name-designation {
497 | font-size: 2rem;
498 | }
499 | .btn {
500 | padding: 12px 24px;
501 | font-size: 14px;
502 | }
503 | }
504 |
505 | @media only screen and (max-width: 826px) {
506 | .name-title {
507 | top: 40%;
508 | font-size: 6rem;
509 | }
510 | .name-designation {
511 | top: 65%;
512 | font-size: 1.5rem;
513 | }
514 | .btn {
515 | padding: 10px 20px;
516 | font-size: 12px;
517 | }
518 |
519 | .about-me {
520 | margin-top: 20px;
521 | padding-left: 0;
522 | text-align: center;
523 | }
524 |
525 | .achievements-heading, .education-heading, .skills-heading {
526 | padding: 20px 0 0 10px;
527 | }
528 |
529 | .cert-heading {
530 | margin: 0 0 20px 10px;
531 | }
532 |
533 | .cert-list {
534 | padding: 0 0 20px 0;
535 | }
536 |
537 | .cert-list li {
538 | padding: 0 10px;
539 | }
540 |
541 | .dev-icons {
542 | display: block;
543 | margin-top: 0;
544 | padding: 20px 10px 0 10px;
545 | }
546 |
547 | .education-card, .info-card, .skills-card {
548 | padding: 0;
549 | width: 91%;
550 | }
551 |
552 | .education-info {
553 | display: block;
554 | padding: 20px 10px;
555 | }
556 |
557 | .info-card {
558 | display: block;
559 | width: 91%;
560 | }
561 |
562 | .list-inline-item {
563 | margin-left: 1rem;
564 | }
565 |
566 | .menu-button {
567 | cursor: pointer;
568 | display: block;
569 | font-size: 20px;
570 | font-weight: 600;
571 | height: 30px;
572 | margin: 0 10px;
573 | padding: 10px;
574 | }
575 |
576 | .menu-open-true {
577 | height: 230px;
578 | }
579 |
580 | .nav-links {
581 | display: block;
582 | }
583 |
584 | .nav-links li span {
585 | text-align: left;
586 | }
587 |
588 | .opened-menu-true {
589 | top: calc(50% + 130px);
590 | height: calc(68vh - 60px);
591 | }
592 |
593 | .profile-description {
594 | padding: 0 25px;
595 | }
596 |
597 | .profile-img {
598 | display: flex;
599 | }
600 |
601 | .profile-pic {
602 | margin: 20px auto auto auto;
603 | }
604 |
605 | .school-info {
606 | margin: 0 5px;
607 | width: 40%;
608 | }
609 |
610 | .school-info {
611 | margin: auto auto 20px auto;
612 | width: 80%;
613 | }
614 |
615 | .show-option-false {
616 | display: none;
617 | }
618 |
619 | .social-icons .social-icon, .social-icons .social-icon:last-child {
620 | margin: 0 1rem 1rem 1rem;
621 | }
622 | }
623 |
624 | @media only screen and (max-width: 619px) {
625 | .btn {
626 | padding: 10px 20px;
627 | font-size: 12px;
628 | }
629 |
630 | .name-title {
631 | top: 30%;
632 | font-size: 6rem;
633 | }
634 |
635 | .name-designation {
636 | top: 70%;
637 | font-size: 1.5rem;
638 | }
639 |
640 | .social-icons .social-icon, .social-icons .social-icon:last-child {
641 | margin: 0 0.7rem 1rem 0.7rem;
642 | }
643 | }
644 |
645 | @media only screen and (max-width: 500px) {
646 | .name-title {
647 | top: 30%;
648 | font-size: 5rem;
649 | }
650 |
651 | .name-designation {
652 | top: 65%;
653 | font-size: 1.2rem;
654 | }
655 |
656 | .btn {
657 | padding: 8px 12px;
658 | font-size: 12px;
659 | }
660 |
661 | .about-me {
662 | margin-top: 10px;
663 | }
664 |
665 | .education-card {
666 | width: 90%;
667 | }
668 |
669 | .info-card {
670 | width: 90%;
671 | }
672 |
673 | .opened-menu-false {
674 | top: calc(50% + 31px);
675 | height: calc(99vh - 60px);
676 | }
677 |
678 | .opened-menu-true {
679 | top: calc(50% + 120px);
680 | height: calc(75vh - 60px);
681 | }
682 |
683 | .portfolio-card {
684 | height: 99vh;
685 | width: 98vw;
686 | }
687 |
688 | .portfolio-section {
689 | width: 98vw;
690 | }
691 |
692 | .profile-pic {
693 | height: 170px;
694 | width: 170px;
695 | }
696 |
697 | .profile-description {
698 | padding: 0 5px;
699 | }
700 |
701 | .project-card {
702 | min-width: unset;
703 | max-width: unset;
704 | }
705 |
706 | .social-icons .social-icon, .social-icons .social-icon:last-child {
707 | height: 3.15rem;
708 | margin: 0 0.4em 1rem 0.4rem;
709 | width: 3.15rem;
710 | }
711 |
712 | .skills-card {
713 | width: 90%;
714 | }
715 | }
716 |
717 | @media only screen and (max-width: 330px) {
718 | .name-title {
719 | top: 35%;
720 | font-size: 4rem;
721 | }
722 |
723 | .name-designation {
724 | top: 65%;
725 | font-size: 1rem;
726 | }
727 |
728 | .btn {
729 | padding: 8px 12px;
730 | font-size: 12px;
731 | }
732 | }
--------------------------------------------------------------------------------