diff --git a/package-lock.json b/package-lock.json index dd35b64..fef1b55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@testing-library/user-event": "^13.5.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-helmet": "^6.1.0", "react-scripts": "5.0.1", "web-vitals": "^2.1.4" }, @@ -14671,6 +14672,25 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "dependencies": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.3.0" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -14756,6 +14776,14 @@ } } }, + "node_modules/react-side-effect": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", + "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==", + "peerDependencies": { + "react": "^16.3.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -27983,6 +28011,22 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + } + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -28048,6 +28092,12 @@ "workbox-webpack-plugin": "^6.4.1" } }, + "react-side-effect": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", + "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==", + "requires": {} + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", diff --git a/package.json b/package.json index 9126a3f..149fce6 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "@testing-library/user-event": "^13.5.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-helmet": "^6.1.0", "react-scripts": "5.0.1", "web-vitals": "^2.1.4" }, diff --git a/src/components/about/About.jsx b/src/components/about/About.jsx index 01699dc..468bdfd 100644 --- a/src/components/about/About.jsx +++ b/src/components/about/About.jsx @@ -19,7 +19,7 @@ const About = () => {

Download Resume - + diff --git a/src/components/about/Info.jsx b/src/components/about/Info.jsx index 0e2a6b0..7830889 100644 --- a/src/components/about/Info.jsx +++ b/src/components/about/Info.jsx @@ -4,19 +4,19 @@ const Info = () => { return (
- +

Experience

9 months Working
- +

Completed

14 + Projects
- +

Lines of coding

44.4K+
diff --git a/src/components/footer/Footer.jsx b/src/components/footer/Footer.jsx index 9b51a8c..0cc4c6d 100644 --- a/src/components/footer/Footer.jsx +++ b/src/components/footer/Footer.jsx @@ -22,23 +22,23 @@ const Footer = () => {
- + - + - + - + - +
diff --git a/src/components/header/Header.jsx b/src/components/header/Header.jsx index ca2fb70..ddb3ac4 100644 --- a/src/components/header/Header.jsx +++ b/src/components/header/Header.jsx @@ -1,17 +1,85 @@ -import React ,{useState} from 'react' +import React ,{useState,useEffect} from 'react' import "./header.css" const Header = () => { // TOGGLE MENU const [Toggle,showMenu]=useState(false); + useEffect(() => { + const menu = document.querySelector(".nav__menu"); + if (Toggle) { + menu.classList.add("show-menu"); + } else { + menu.classList.remove("show-menu"); + } + }, [Toggle]); + // TOGGLE FOR LIGHT AND DARK MODE + function handleToggle(){ + const togglebox= document.getElementById("toggle_box") + const checkbox= document.getElementById("checkbox") + const circle =document.querySelector(".circle") + const header= document.getElementById("header"); + const nav__logo= document.getElementById("nav__logo"); + const nav__toggle= document.getElementById("nav__toggle"); + const nav__menu= document.querySelector(".nav__menu") + + if(checkbox.checked){ + togglebox.classList.remove("toggle_box"); + togglebox.classList.add("toggle_box--checked"); + + circle.classList.remove("circle--unchecked"); + circle.classList.add("circle--checked"); + + header.classList.remove("header"); + header.classList.add("header--checked"); + + nav__logo.classList.remove("nav__logo"); + nav__logo.classList.add("nav__logo--checked"); + + nav__toggle.classList.remove("nav__toggle"); + nav__toggle.classList.add("nav__toggle--checked"); + + const nav__links= document.querySelectorAll(".nav__link") + for(const nav__link of nav__links ){ + nav__link.classList.remove("nav__link") + nav__link.classList.add("nav__link--checked") + } + + nav__menu.classList.add("nav__menu--checked"); + + }else{ + togglebox.classList.remove("toggle_box--checked"); + togglebox.classList.add("toggle_box"); + + circle.classList.remove("circle--checked"); + circle.classList.add("circle--unchecked"); + // Toggle back to default CSS + header.classList.remove("header--checked"); + header.classList.add("header"); + + nav__logo.classList.remove("nav__logo--checked"); + nav__logo.classList.add("nav__logo"); + + nav__toggle.classList.remove("nav__toggle--checked"); + nav__toggle.classList.add("nav__toggle"); + + const nav__links= document.querySelectorAll(".nav__link--checked") + + for(const nav__link of nav__links ){ + nav__link.classList.remove("nav__link--checked") + nav__link.classList.add("nav__link") + } + + nav__menu.classList.remove("nav__menu--checked") + } + } return ( -
+ - ) } diff --git a/src/components/header/header.css b/src/components/header/header.css index 8d0a16c..98530de 100644 --- a/src/components/header/header.css +++ b/src/components/header/header.css @@ -6,7 +6,15 @@ z-index: var(--z-fixed); background-color: var(--body-color); } - +.header--checked { + width: 100%; + position: fixed; + /* top:0; + left:0; */ + z-index: var(--z-fixed); + background-color: black; + transition: 0.5s; /* Define transition */ +} .nav { height: 4.5rem; display: flex; @@ -15,12 +23,25 @@ column-gap: 1rem; } -.nav__logo, +.nav__logo { + color: var(--title-color); + font-weight: var(--font-medium); +} + .nav__toggle { color: var(--title-color); font-weight: var(--font-medium); } +.nav__logo--checked{ + color: white; + font-weight: var(--font-medium); +} +.nav__toggle--checked { + display: none; + color: white; + font-weight: var(--font-medium); +} .nav__list { display: flex; column-gap: 2rem; @@ -36,7 +57,15 @@ transition: .3s; } - +.nav__link--checked { + display: flex; + flex-direction: column; + align-items: center; + font-size: var(--small-font-size); + color: white; + font-weight: var(--font-medium); + transition: .3s; +} .nav__icon, .nav__close, .nav__toggle { @@ -49,6 +78,55 @@ color: var(--title-color); } + + +.toggle_box{ + background-color: black; + width: 60px; + height: 30px; + border-radius: 50px; + cursor: pointer ; + position: relative; +} +.toggle_box--checked{ + background-color: var(--body-color); + width: 60px; + height: 30px; + border-radius: 50px; + cursor: pointer ; + position: relative; + transition: 0.5s; /* Define transition */ +} +input[type="checkbox"]{ + display: none; +} + +.circle{ + position: absolute; + height:25px; + width:25px; + background-color: white; + border-radius: 50px; + display: inline; + margin: 2px; + left: 0px; +} + +.circle--checked { + position: absolute; + height:25px; + width:25px; + background-color: black; + border-radius: 50px; + display: inline; + margin: 2px; + left: 29px; /* Define new position */ + transition: 0.5s; /* Define transition */ +} +.circle--unchecked { + left: 0px; /* Define new position */ + transition: 0.5s; /* Define transition */ +} /* BREAKPOINTS */ @media screen and (max-width:768px) { @@ -56,7 +134,13 @@ top: initial; bottom: 0; } - + .header--checked { + top: initial; + bottom: 0; + } + .nav__toggle--checked { + display: block; + } .nav { height: 3rem; } @@ -72,6 +156,17 @@ border-radius: 1.5rem 1.5rem 0 0; transition: .3s; } + .nav__menu--checked { + position: fixed; + bottom: -100%; + left: 0; + width: 100%; + background-color: black; + padding: 2rem 1.5rem 4rem; + box-shadow: 0 -1px 4px rgba(0,0,0,0.15); + border-radius: 1.5rem 1.5rem 0 0; + transition: .3s; + } /* SHOW MENU */ .show-menu{ bottom:0; @@ -84,15 +179,17 @@ .nav__icon{ font-size: 1.2rem; } - .nav__close{ + display: none; + } + /* .nav__close{ position: absolute; right:1.3rem; bottom:0.5rem; font-size: 1.5rem; cursor: pointer; color: var(--title-color) ; - } + } */ .nav__close:hover{ color:var(--title-color-dark); } diff --git a/src/components/home/ScrollDown.jsx b/src/components/home/ScrollDown.jsx index d00874a..cbd387e 100644 --- a/src/components/home/ScrollDown.jsx +++ b/src/components/home/ScrollDown.jsx @@ -4,7 +4,7 @@ const ScrollDown = () => { return (
- + Scroll Down
diff --git a/src/components/home/Social.jsx b/src/components/home/Social.jsx index c038aa7..0ebde11 100644 --- a/src/components/home/Social.jsx +++ b/src/components/home/Social.jsx @@ -4,23 +4,23 @@ const Social = () => { return (
- + - + - + - + - + diff --git a/src/components/skills/Basic.jsx b/src/components/skills/Basic.jsx index 16a3d29..0771148 100644 --- a/src/components/skills/Basic.jsx +++ b/src/components/skills/Basic.jsx @@ -8,7 +8,7 @@ const Basic = () => {
- +

Linux

@@ -16,7 +16,7 @@ const Basic = () => {
- +

Bash Scripting

@@ -24,7 +24,7 @@ const Basic = () => {
- +

Git

@@ -32,7 +32,7 @@ const Basic = () => {
- +

C

@@ -42,14 +42,14 @@ const Basic = () => {
- +

C++

- +

Python

@@ -57,7 +57,7 @@ const Basic = () => {
- +

Golang

@@ -65,7 +65,7 @@ const Basic = () => {
- +

SQL (MySQL,Pgsql)

diff --git a/src/components/skills/DevOps.jsx b/src/components/skills/DevOps.jsx index fd0b98b..f1e5d4d 100644 --- a/src/components/skills/DevOps.jsx +++ b/src/components/skills/DevOps.jsx @@ -8,7 +8,7 @@ const Devops = () => {
- +

Docker

@@ -16,7 +16,7 @@ const Devops = () => {
- +

Kubernetes

@@ -24,7 +24,7 @@ const Devops = () => {
- +

Minikube

@@ -32,7 +32,7 @@ const Devops = () => {
- +

Helm

diff --git a/src/components/skills/MachineLearning.jsx b/src/components/skills/MachineLearning.jsx index 6a56d09..eec454c 100644 --- a/src/components/skills/MachineLearning.jsx +++ b/src/components/skills/MachineLearning.jsx @@ -8,7 +8,7 @@ const MachineLearning = () => {
- +

EDA

@@ -16,7 +16,7 @@ const MachineLearning = () => {
- +

Regressions

@@ -24,7 +24,7 @@ const MachineLearning = () => {
- +

KNN

@@ -32,7 +32,7 @@ const MachineLearning = () => {
- +

SVM

@@ -42,7 +42,7 @@ const MachineLearning = () => {
- +

D-Trees

@@ -50,7 +50,7 @@ const MachineLearning = () => {
- +

K- means

@@ -58,7 +58,7 @@ const MachineLearning = () => {
- +

CV

@@ -66,7 +66,7 @@ const MachineLearning = () => {
- +

Regularization

diff --git a/src/components/skills/WebDevelopment.jsx b/src/components/skills/WebDevelopment.jsx index 08ceaec..20799b8 100644 --- a/src/components/skills/WebDevelopment.jsx +++ b/src/components/skills/WebDevelopment.jsx @@ -8,7 +8,7 @@ const WebDevelopment = () => {
- +

HTML

@@ -16,7 +16,7 @@ const WebDevelopment = () => {
- +

CSS

@@ -24,14 +24,14 @@ const WebDevelopment = () => {
- +

JS

- +

Bootstrap

@@ -44,14 +44,14 @@ const WebDevelopment = () => {
- +

NodeJS

- +

ExpressJS

@@ -59,7 +59,7 @@ const WebDevelopment = () => {
- +

ReactJS

diff --git a/src/index.js b/src/index.js index 49cb645..e5f5e2d 100644 --- a/src/index.js +++ b/src/index.js @@ -1,9 +1,9 @@ import React from 'react' -import ReactDOM from "react-dom" +import ReactDOM from "react-dom/client" import App from "./App" -ReactDOM.render( +const root = ReactDOM.createRoot(document.getElementById("root")); - - -,document.getElementById("root")); \ No newline at end of file +root.render( + +);