diff --git a/app.js b/app.js index 41d8b07..1fec146 100644 --- a/app.js +++ b/app.js @@ -1,13 +1,155 @@ +const navMenu = document.getElementById("nav-menu"), + navToggle = document.getElementById("nav-toggle"), + navClose = document.getElementById("nav-close") -window.onscroll = ()=> {scrollFunction()}; -function scrollFunction() { - if (document.body.scrollTop > 40 || document.documentElement.scrollTop > 40) { - document.getElementById("navbar").style.top = "0"; - if (document.documentElement.scrollTop > 1784){ - console.log("Education"); - } +if(navToggle){ + navToggle.addEventListener("click", () => { + navMenu.classList.add("show-menu") + }) +} + +if(navClose){ + navClose.addEventListener("click", () =>{ + navMenu.classList.remove("show-menu") + }) +} + +const navLink = document.querySelectorAll(".nav__link") + +function linkAction() { + navMenu.classList.remove("show-menu") +} + +navLink.forEach(n => n.addEventListener('click', linkAction)) + + +const skillsContent = document.getElementsByClassName('skills__content'), + skillsHeader = document.querySelectorAll(".skills__header") + +function toggleSkills(){ + let itemClass = this.parentNode.className + + for (i = 0; i < skillsContent.length; i++) { + skillsContent[i].className = 'skills__content skills__close' + } + + if(itemClass === "skills__content skills__close"){ + this.parentNode.className = "skills__content skills__open" + } +} + +skillsHeader.forEach((el) => { + el.addEventListener("click", toggleSkills) +}) + + +const tabs = document.querySelectorAll("[data-target]"), + tabsContents = document.querySelectorAll("[data-content]") + +tabs.forEach(tab => { + tab.addEventListener("click", () => { + + const target = document.querySelector(tab.dataset.target) // tab.dataset.target will add #education or #work + + tabsContents.forEach(tabContent => { + tabContent.classList.remove("qualification__active") + }) + + // This will add given class in active or current data-content + target.classList.add("qualification__active") + + tabs.forEach(tab => { + tab.classList.remove("qualification__active") + }) + + // This will add given class in current or active tab + tab.classList.add("qualification__active") + + }) +}) + +// Active section in nav nbar while scroll. + +const sections = document.querySelectorAll("section[id]"); + +window.onscroll = () => { + sections.forEach(section => { + const top = window.scrollY; + const offset = section.offsetTop - 50; + const offsetHeight = section.offsetHeight; + const id = section.getAttribute("id"); + + if(top > offset && top <= offset + offsetHeight){ + document.querySelector(".nav__menu a[href*="+ id +"]").classList.add("active-link") + }else( + document.querySelector(".nav__menu a[href*="+ id +"]").classList.remove("active-link") + ) + }) +} + +// Apply box-shadow in header + +function scrollHeader(){ + const header = document.querySelector("header") + + if(this.scrollY > 20){ + header.classList.add("scroll-header") + }else( + header.classList.remove("scroll-header") + ) + } + +window.addEventListener("scroll", scrollHeader) + + +// Show scroll up button + +function scrollUp(){ + const scrollButton = document.getElementById("scroll-up") + + if (this.scrollY > 500) { + scrollButton.classList.add("scrollup__show") } else { - document.getElementById("navbar").style.top = "-100px"; + scrollButton.classList.remove("scrollup__show") + } +} + +window.addEventListener("scroll", scrollUp) + + +// Dark theme + +const themeButton = document.getElementById("theme-button") +const darkTheme = 'dark-theme' +const darkThemeIcon = 'uil-sun' +const lightThemeIcon = 'uil-moon' + +const isActiveTheme = localStorage.getItem('active-theme') + +if(isActiveTheme === 'Dark'){ + document.body.classList.add(darkTheme) + themeButton.classList.add(darkThemeIcon) +}else{ + document.body.classList.remove(darkTheme) + themeButton.classList.remove(darkThemeIcon) + themeButton.classList.add(lightThemeIcon) +} + +function checkActivetheme(){ + + if(document.body.className.match('dark-theme')){ + return "Dark" + }else{ + return "Light" } } + +themeButton.addEventListener('click', () => { + + + document.body.classList.toggle(darkTheme) + themeButton.classList.toggle(darkThemeIcon) + + localStorage.setItem('active-theme', checkActivetheme()) +}) \ No newline at end of file diff --git a/css/styles.css b/css/styles.css index 2bdd8b1..4ad933b 100644 --- a/css/styles.css +++ b/css/styles.css @@ -1,852 +1,955 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap'); + +:root { + --header-height: 3rem; + + /*========== Colors ==========*/ + /* Change favorite color */ + --hue-color: 230; /*Purple 250 - Green 142 - Blue 230 - Pink 340*/ + + /* HSL color mode */ + --first-color: hsl(var(--hue-color), 69%, 61%); + --first-color-second: hsl(var(--hue-color), 69%, 61%); + --first-color-alt: hsl(var(--hue-color), 57%, 53%); + --first-color-lighter: hsl(var(--hue-color), 92%, 85%); + --title-color: hsl(var(--hue-color), 8%, 15%); + --text-color: hsl(var(--hue-color), 8%, 45%); + --text-color-light: hsl(var(--hue-color), 8%, 65%); + --input-color: hsl(var(--hue-color), 70%, 96%); + --body-color: hsl(var(--hue-color), 60%, 99%); + --container-color: #fff; + --scroll-bar-color: hsl(var(--hue-color), 12%, 90%); + --scroll-thumb-color: hsl(var(--hue-color), 12%, 80%); + + /*========== Font and typography ==========*/ + --body-font: 'Poppins', sans-serif; + + /* .5rem = 8px, 1rem = 16px, 1.5rem = 24px ... */ + --big-font-size: 2rem; + --h1-font-size: 1.5rem; + --h2-font-size: 1.25rem; + --h3-font-size: 1.125rem; + --normal-font-size: .938rem; + --small-font-size: .813rem; + --smaller-font-size: .75rem; -body{ - margin: 0; - text-align: center; - font-family: sans-serif; - font-family: 'Merriweather', serif; - color: #40514E; + /*========== Font weight ==========*/ + --font-medium: 500; + --font-semi-bold: 600; + + /*========== Margenes Bottom ==========*/ + /* .25rem = 4px, .5rem = 8px, .75rem = 12px ... */ + --mb-0-25: .25rem; + --mb-0-5: .5rem; + --mb-0-75: .75rem; + --mb-1: 1rem; + --mb-1-5: 1.5rem; + --mb-2: 2rem; + --mb-2-5: 2.5rem; + --mb-3: 3rem; + + /*========== z index ==========*/ + --z-tooltip: 10; + --z-fixed: 100; + --z-modal: 1000; +} + +/* Font size for large devices */ +@media screen and (min-width: 968px) { + :root { + --big-font-size: 3rem; + --h1-font-size: 2.25rem; + --h2-font-size: 1.5rem; + --h3-font-size: 1.25rem; + --normal-font-size: 1rem; + --small-font-size: .875rem; + --smaller-font-size: .813rem; + } } -h1{ - font-size: 5.3rem; /* 16px = 100% = 1em */ - margin: 0 auto; - font-family: 'Sacramento', cursive; - color: #66BFBF; +/*========== Variables Dark theme ==========*/ +body.dark-theme{ + --first-color-second: hsl(var(--hue-color), 30%, 8%); + --title-color: hsl(var(--hue-color), 8%, 95%); + --text-color: hsl(var(--hue-color), 8%, 75%); + --input-color: hsl(var(--hue-color), 29%, 16%); + --body-color: hsl(var(--hue-color), 28%, 12%); + --container-color: hsl(var(--hue-color), 29%, 16%); + --scroll-bar-color: hsl(var(--hue-color), 12%, 48%); + --scroll-thumb-color: hsl(var(--hue-color), 12%, 36%); } -h2{ - font-family: 'Montserrat', sans-serif; - font-size: 1.3rem; - font-weight: normal; - color: #66BFBF; + +/*========== Button Dark/Light ==========*/ +.nav__btns{ + display: flex; + justify-content: center; + align-items: center; } -h3{ - font-family: 'Montserrat', sans-serif; - font-size: 1.9rem; - padding-top: 20px; - color: #11999E; - margin-bottom: 40px; +.change-theme{ + font-size: 1.25rem; + color: var(--title-color); + margin-right: var(--mb-1); + cursor: pointer; +} +.change-theme:hover{ + color: var(--first-color); +} +/*==================== BASE ====================*/ +* { +box-sizing: border-box; +padding: 0; +margin: 0; } -h4{ - font-family: 'Montserrat', sans-serif; - font-size: 1.5rem; - color: #11999E; - margin-bottom: 10px; +html { +scroll-behavior: smooth; } -h5{ - font-family: 'Montserrat', sans-serif; - font-size: 1.2rem; - color: #11999E; - margin-bottom: 10px; +body { +margin: 0 0 var(--header-height) 0; +font-family: var(--body-font); +font-size: var(--normal-font-size); +background-color: var(--body-color); +color: var(--text-color); +} + +h1, h2, h3, h4 { +color: var(--title-color); +font-weight: var(--font-semi-bold); +} + +ul { +list-style: none; +} + +a { +text-decoration: none; +} + +img { +max-width: 100%; +height: auto; +} + +/*==================== REUSABLE CSS CLASSES ====================*/ +.section { +padding: 2rem 0 4rem; +} + +.section__title { +font-size: var(--h1-font-size); +color: var(--title-color); } -hr{ - border-style: dotted none none; - border-width: 0.4em; - width: 4%; - margin: 15px auto 150px; - border-color: #a9a9a9; +.section__subtitle { +display: block; +font-size: var(--small-font-size); +margin-bottom: var(--mb-3); } -p{ - font-family: 'Quicksand', sans-serif; +.section__title, +.section__subtitle { +text-align: center; +} + +/*==================== LAYOUT ====================*/ +.container { +max-width: 768px; +margin-left: var(--mb-1-5); +margin-right: var(--mb-1-5); +} + +.grid { +display: grid; +gap: 1.5rem; +} + +.header { +width: 100%; +position: fixed; +bottom: 0; +left: 0; +z-index: var(--z-fixed); +background-color: var(--body-color); +} + +/*==================== NAV ====================*/ + +.nav{ + max-width: 968px; + height: var(--header-height); + display: flex; + justify-content: space-between; + align-items: center; +} + +.nav__logo, +.nav__toggle{ + color: var(--title-color); + font-weight: var(--font-medium); +} + +.nav__logo:hover{ + color: var(--first-color); +} + +.nav__toggle{ font-size: 1.1rem; - line-height: 2; - margin: 0 auto; + cursor: pointer; } -a{ - text-decoration: none; +.nav__toggle:hover{ + color: var(--first-color); } -.contact-me{ - margin: 0 100px 150px; - padding-bottom: 50px; +@media screen and (max-width: 767px) { + .nav__menu{ + position: fixed; + bottom: -100%; + left: 0; + width: 100%; + background-color: var(--body-color); + padding: 2rem 1.5rem 4rem; + box-shadow: 0 -1px 4px rgba(0, 0, 0, .15); + border-radius: 1.5rem 1.5rem 0 0; + transition: .3s; + } } -.round{ - border-radius: 100%; - margin-bottom: 30px; - width: 200px; - height: 200px; -} - -.c-btn { - background: #11cdd4; - background-image: -webkit-linear-gradient(top, #11cdd4, #11999e); - background-image: -moz-linear-gradient(top, #11cdd4, #11999e); - background-image: -ms-linear-gradient(top, #11cdd4, #11999e); - background-image: -o-linear-gradient(top, #11cdd4, #11999e); - background-image: linear-gradient(to bottom, #11cdd4, #11999e); - -webkit-border-radius: 8; - -moz-border-radius: 8; - border-radius: 8px; - font-family: 'Montserrat', sans-serif; - color: #ffffff; - font-size: 20px; - margin-top: 20px; - padding: 10px 20px 10px 20px; - text-decoration: none; -} - -.c-btn:hover { - background: #30e3cb; - color: white; - background-image: -webkit-linear-gradient(top, #30e3cb, #2bc4ad); - background-image: -moz-linear-gradient(top, #30e3cb, #2bc4ad); - background-image: -ms-linear-gradient(top, #30e3cb, #2bc4ad); - background-image: -o-linear-gradient(top, #30e3cb, #2bc4ad); - background-image: linear-gradient(to bottom, #30e3cb, #2bc4ad); - text-decoration: none; - margin: 0 auto 100px; -} - -.top-cloud{ - position: relative; - left: 440px; - height: 150px; - right: 250px; -} - -.bottom-cloud{ - position: relative; - left: 150px; - bottom: 196px; - height: 150px; -} - -.mountain{ - position: relative; - height: 450px; - top: 10%; - right: 8.5%; -} - -.education{ - margin: 0 100px 100px; - padding: 0 0 0.1px; -} - -.education-row{ - margin: 40px auto 100px; - width: 70%; - text-align: left; +.nav__list{ + grid-template-columns: repeat(3, 1fr); + gap: 2rem; } -.skill-row{ - margin: 40px auto 75px; - width: 80%; - text-align: left; +.nav__link{ + display: flex; + flex-direction: column; + align-items: center; + font-size: var(--small-font-size); + color: var(--title-color); + font-weight: var(--font-medium); } -.oriental-img{ - width: 155px; - float: left; - margin-right: 30px; +.nav__link:hover{ + color: var(--first-color); } -.miss-hill-img{ - width: 157px; - float: right; - margin-left: 30px; +.nav__icon{ + font-size: 1.2rem; } -.sanskriti-img{ - width: 157px; - float: left; - padding: 0 28px 0 0; +.nav__close{ + position: absolute; + right: 1.3rem; + bottom: .5rem; + font-size: 1.5rem; + cursor: pointer; + color: var(--first-color); +} + +.nav__close:hover{ + color: var(--first-color-alt); } +/* show menu */ -.development-img{ - width: 270px; - float: left; - margin-right: 30px; - padding: 85px 0; +.show-menu{ + bottom: 0; } -.PCB-img{ - width: 250px; - padding: 20px 65px 60px 30px; - margin-right: 49px; - float: left; - /* margin-left: 30px; */ +/* Active link */ +.active-link{ + color: var(--first-color); } +/* Change background header */ +.scroll-header{ + box-shadow: 0 -1px 4px rgb(0, 0, 0, .15); +} -.footer-link{ - color: #11999E; - font-family: 'Merriweather', serif; - padding: 10px 20px; - text-decoration: none; +/*==================== HOME ====================*/ +.home__container{ + gap: 1rem; } -.footer-link:hover{ - color: #EAF6F6; +.home__content{ + grid-template-columns: .5fr 3fr; + padding-top: 3.5rem; + align-items: center; } -.copyright{ - color: #EAF6F6; - font-size: 0.75rem; - padding: 20px 0 0; - margin-block-end: 0; +.home__social{ + display: grid; + grid-template-columns: max-content; + row-gap: 1rem; } -.top-container{ - background-color: #E4F9F5; - padding-top: 65px; - height: 889px; +.home__social-icon{ + font-size: 1.5rem; + color: var(--first-color); + } -.middle-container{ - padding: 190px 100px 200px; +.home__social-icon:hover{ + color: var(--first-color-alt); } -.bottom-container{ - background-color: #66BFBF; - padding: 50px 0 20px; +.home__blob{ + fill: var(--first-color); + width: 200px; } -.second-last-container{ - margin: 0 100px 250px; +.home__blob-img{ + width: 215px; } -.icons{ - padding: 2px 20px 2px; +.home__data{ + grid-column: 1/3; } -.icons:hover{ - opacity: 0.2; +.home__title{ + font-size: var(--big-font-size); } -.container { - width: 450px; - height: 6px; - padding: 0; - margin: 0; - background-color: #ddd; - position: relative; - left: 470px; - bottom: 20px; - border-radius: 5px; +.home__subtitle{ + font-size: var(--h3-font-size); + color: var(--text-color); + font-weight: var(--font-medium); + margin-bottom: var(--mb-0-75); } -.skills { - text-align: right; - padding-top: 2px; - padding-bottom: 3px; - color: white; +.home__description{ + margin-bottom: var(--mb-2); } +.home__scroll{ + display: none; +} -.round-circle{ - width: 13px; - height: 13px; - border-radius: 10px; - position: relative; - bottom: 5.7px; +.home__scroll-button{ + color: var(--first-color); + transition: .3s; } -.Javascript { - width: 70%; - height: 6px; - background-color: #005f99; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; +.home__scroll-button:hover{ + transform: translateY(.25rem); } -.round-Javascript{ - background-color: #005f99; - position: relative; - left: 307px; +.home__scroll-mouse{ + font-size: 2rem;; } -.python { - width: 80%; - height: 6px; - background-color: #66BFBF; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; +.home__scroll-name{ + font-size: var(--small-font-size); + color: var(--title-color); + font-weight: var(--font-medium); + margin-right: var(--mb-0-25); } -.round-python{ - background-color: #66BFBF; - position: relative; - left: 350px; +.home__scroll-arrow{ + font-size: 1.25rem; +} +/*==================== BUTTONS ====================*/ +.button{ + display: inline-block; + background-color: var(--first-color); + color: #fff; + padding: 1rem; + border-radius: .5rem; + font-weight: var(--font-medium); } -.html-css { - width: 75%; - height: 6px; - background-color: #b39ceb; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; +.button:hover{ + background-color: var(--first-color-alt); } -.round-html-css{ - background-color: #b39ceb; - position: relative; - left: 335px; +.button__icon{ + font-size: 1.25rem; + margin-left: var(--mb-0-5); + transition: .3s; } -.express { - width: 71%; - height: 6px; - background-color: #2196F3; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; +.button--flex{ + display: inline-flex; + align-items: center; } -.round-express{ - background-color: #2196F3; - position: relative; - left: 317px; + + +/*==================== ABOUT ====================*/ +.about__img{ + width: 200px; + border-radius: .5rem; + justify-self: center; + align-self: center; } -.node { - width: 68%; - height: 6px; - background-color: #FF449F; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; +.about__description{ + text-align: center; + margin-bottom: var(--mb-2-5); } -.round-node{ - background-color: #FF449F; - position: relative; - left: 295px; +.about__info{ + display: flex; + justify-content: space-evenly; + margin-bottom: var(--mb-2-5); } -.mongo { - width: 65%; - height: 6px; - background-color: #04AA6D; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; +.about__info-title{ + font-size: var(--h2-font-size); + font-weight: var(--font-semi-bold); + color: var(--title-color); } -.round-mongo{ - background-color: #04AA6D; - position: relative; - left: 290px; +.about__info-name{ + font-size: var(--smaller-font-size); } -.embedded { - width: 70%; - height: 6px; - background-color: #005f99; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; +.about__info-title, +.about__info-name{ + display: block; + text-align: center; +} + +.about__buttons{ + display: flex; + justify-content: center ; +} +/*==================== SKILLS ====================*/ + +.skills__container{ + row-gap: 0; +} + +.skills__header{ + display: flex; + justify-content: center; + margin-bottom: var(--mb-2-5); + cursor: pointer; + align-items: center; +} + +.skills__icon, +.skills__arrow{ + font-size: 2rem; + color: var(--first-color); +} + +.skills__icon{ + margin-right: var(--mb-0-75); +} + +.skills__title{ + font-size: var(--h3-font-size); } -.PCB { - width: 85%; - height: 6px; - background-color: #b39ceb; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; +.skills__subtitle{ + font-size: var(--small-font-size); + color: var(--text-color-light); } -.round-PCB{ - background-color: #b39ceb; - position: relative; - left: 380px; +.skills__list{ + row-gap: 1.5rem; + padding-left: 2.7rem; } -.round-embedded{ - background-color: #005f99; - position: relative; - left: 310px; +.skills__arrow{ + margin-left: auto; + transition: .4s; } -.easyeda { +.skills__title{ + display: flex; + justify-content: space-between; + margin-bottom: var(--mb-0-5); +} + +.skills__bar, +.skills__percentage{ + height: 5px; + border-radius: .25rem; +} + +.skills__bar{ + background-color: var(--first-color-lighter); +} + +.skills__percentage{ + display: block; + background-color: var(--first-color); +} + +.skills__html{ width: 80%; - height: 6px; - background-color: #FF449F; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; } -.round-easyeda{ - background-color: #FF449F; - position: relative; - left: 350px; +.skills__css{ + width: 70%; } -.micro{ - width: 68%; - height: 6px; - background-color: #2196F3; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; +.skills__js{ + width: 40%; } -.round-micro{ - background-color: #2196F3; - position: relative; - left: 295px; +.skills__java{ + width: 60%; } -.spacing{ - margin-top: 25px; +.skills__spring-boot{ + width: 50%; } -.card{ - display: inline-block; - margin: 20px 20px; - text-align: left; - font-family: 'Montserrat'; - line-height: 1.5; +.skills__python{ + width: 70%; } -.card .card-body .card-text{ - line-height: 1.5; +.skills__close .skills__list{ + height: 0; + overflow: hidden; } -.rak-space{ - width: 101%; +.skills__open .skills__list{ + height: max-content; + margin-bottom: var(--mb-2-5); } -.card-title{ - width: 103%; +.skills__open .skills__arrow{ + transform: rotate(-180deg); } -.btn{ - margin: 12px 0 5px; +/*==================== QUALIFICATION ====================*/ + +.qualification__tabs{ + display: flex; + justify-content: space-evenly; + margin-bottom: var(--mb-2); } -.custom-btn{ - z-index: 1; +.qualification__button{ + font-size: var(--h3-font-size); + font-weight: var(--font-medium); + cursor: pointer; } -#navbar{ - padding: 0 20px; - position: fixed; - z-index: 1; - top: -100px; - width: 100%; - transition: top 0.8s; - } +.qualification__button:hover{ + color: var(--first-color); +} -.nav-sign-size{ - width: 22%; - position: relative; - right: 550px; - top: -2px +.qualification__icon{ + font-size: 1.8rem; + margin-right: var(--mb-0-25); } -.nav-resume-size p{ - display: inline-block; - font-family: 'Shadows Into Light', cursive; - font-size: 1.2rem; - padding: 3px 5px 20px; - color: black; - position: absolute; - top: 15px; - right: 135px; +.qualtifaction__data{ + display: grid; + grid-template-columns: 1fr max-content 1fr; + column-gap: 1.5rem; } -.nav-resume-size:hover p{ - border-bottom: 3px solid; - border-color: #66BFBF; +.qualification__title{ + font-size: var(--normal-font-size); + font-weight: var(--font-medium); } -.nav-blog-size p{ +.qualification__subtitle{ display: inline-block; - font-family: 'Shadows Into Light', cursive; - font-size: 1.2rem; - padding: 3px 5px 20px; - color: black; - position: absolute; - top: 15px; - right: 406px; + font-size: var(--small-font-size); + margin-bottom: var(--mb-1); } -.nav-blog-size:hover p{ - border-bottom: 3px solid; - border-color: #66BFBF; +.qualification__calendar{ + font-size: var(--smaller-font-size); + color: var(--text-color-light) } -.nav-github-size p{ +.qualification__rounder{ display: inline-block; - font-family: 'Shadows Into Light', cursive; - font-size: 1.2rem; - padding: 3px 5px 20px; - color: black; - position: absolute; - top: 15px; - right: 325px; + width: 13px; + height: 13px; + background-color: var(--first-color); + border-radius: 50%; } -.nav-github-size:hover p{ - border-bottom: 3px solid; - border-color: #66BFBF; +.qualification__line{ + display: block; + width: 1px; + height: 100%; + background-color: var(--first-color); + transform: translate(6px, -7px); } -.nav-linkedin-size p{ - display: inline-block; - font-family: 'Shadows Into Light', cursive; - font-size: 1.2rem; - padding: 3px 5px 20px; - color: black; - position: absolute; - top: 15px; - right: 230px; +.qualification [data-content]{ + display: none; +} + +.qualification__active[data-content]{ + display: block; +} + +.qualification__button.qualification__active{ + color: var(--first-color); +} + + +/*==================== PORTFOLIO ====================*/ + + +/*==================== CONTACT ME ====================*/ + +.contact__container{ + row-gap: 3rem; } -.nav-linkedin-size:hover p{ - border-bottom: 3px solid; - border-color: #66BFBF; +.contact__information{ + display: flex; + margin-bottom: var(--mb-2) } -.c-cards{ - width: 18rem; - transition: transform .2s; +.contact__icon{ + font-size: 2rem; + color: var(--first-color); + margin-right: var(--mb-0-75); } -.c-cards:hover{ - -ms-transform: scale(1.050); - -webkit-transform: scale(1.050); - transform: scale(1.050); +.contact__title{ + font-size: var(--h3-font-size); + font-weight: var(--font-medium); } -.c-button{ - border-radius: 1px; - border: 1px solid black; - background-color: transparent; - color: black; +.contact__subtitle{ + font-size: var(--small-font-size); + color: var(--text-color-light); } -.c-button:hover{ - background-color: black; - border: 1px solid black; - color: white; +.contact__content{ + background-color: var(--input-color); + border-radius: .5rem; + padding: .75rem 1rem .25rem; } -.fa-stack-overflow{ - position: relative; - top: 6px; - color: #222426; +.contact__label{ + font-size: var(--smaller-font-size); + color: var(--title-color); } -.c-style{ - margin-bottom: 100px; +.contact__input{ + width: 100%; + background-color: var(--input-color); + color: var(--text-color); + font-family: var(--body-font); + font-size: var(--normal-font-size); + border: none; + outline: none; + padding: .25rem .5rem .5rem 0rem; +} +/*==================== FOOTER ====================*/ +.footer{ + padding-top: 2em; } -.eda{ - width: 45px; - height: 45px; +.footer__container{ + row-gap: 3.5rem; } -.icon{ - padding: 2px 4px 2px 10px; +.footer__bg{ + background-color: var(--first-color-second); + padding: 2rem 0 3rem;; } -.icon:hover{ - opacity: 0.2; +.footer__title{ + font-size: var(--h1-font-size); + margin-bottom: var(--mb-0-25); } -.font-aw{ - position: relative; - top: 7px; - color: black; +.footer__subtitle{ + font-size: var(--small-font-size); } -.university{ - position: absolute; - top: 1780px; - right: 1px; - width: 1525px; - height: 840px; - opacity: 0.12; +.footer__links{ + display: flex; + flex-direction: column; + row-gap: 1.5rem; } -.project-back{ - position: absolute; - width: 1515px; - height: 1000px; - right: 2px; - top: 4050px; - -webkit-filter: blur(2px); /* Safari 6.0 - 9.0 */ - filter: blur(2px); +.footer__link:hover{ + color: var(--first-color-lighter); } +.footer__rights{ + font-size: var(--smaller-font-size); + text-align: center; + color: var(--text-color-light); + margin-top: var(--mb-3); +} -.footer-msg{ - font-size: 1.2rem; +.footer__title, +.footer__subtitle, +.footer__link{ + color: #fff; +} +/*========== SCROLL UP ==========*/ +.scrollup{ + position: fixed; + right: 1rem; + bottom: -20%; + background-color: var(--first-color); + opacity: 0.8; + padding: 0 .3rem; + border-radius: 0.4rem; + z-index: var(--z-tooltip); + transition: .4s; } -.c-bold{ - font-weight: bold; +.scrollup:hover{ + background-color: var(--first-color-alt); } -@media screen and (max-width: 800px) and (min-width: 381px){ - body{ - position: relative; - width: 1110px; - } - h1{ - font-size: 6rem; - margin-top: 50px; - } - h2{ - margin-top: 10px; - font-size: 2rem; - } - .mountain{ - height: 440px; - width: 940px; - position: relative; - top: -0.5px; - right: 10px; +.scrollup__icon{ + font-size: 1.5rem; + color: #fff; +} + +/* Show scroll */ +.scrollup__show{ + bottom: 5rem; +} + +/*========== SCROLL BAR ==========*/ +/* ::-webkit-scrollbar{ + width: .60rem; + background-color: var(--scroll-bar-color); + border-radius: 0.5rem; +} */ + +::-webkit-scrollbar-thumb{ + background-color: var(--scroll-thumb-color); + border-radius: 0.5rem; +} + +/*==================== MEDIA QUERIES ====================*/ +/* For small devices */ + +@media screen and (max-width: 350px) { + .container{ + margin-left: var(--mb-1); + margin-right: var(--mb-1); } - .top-cloud{ - left: 350px; - bottom: -30px; - height: 120px; + .nav__menu{ + padding: 2rem .25rem 4rem } - .bottom-cloud{ - left: -300px; - bottom: 30px; - height: 120px; + .nav__list{ + column-gap: 0; } - #navbar{ - height: 100px; + .home__content{ + grid-template-columns: .25fr 3fr; } - .nav-sign-size{ - width: 40%; - position: absolute; - left: -20px; - top: -10px; + .home__blob{ + width: 180px; } - .nav-resume-size p{ - top: 25px; - font-size: 1.4rem; - right: 100px; - padding: 7px 0 20px; + .skills_title{ + font-size: var(--normal-font-size); } - .nav-blog-size p{ - top: 25px; - font-size: 1.4rem; - right: 400px; - padding: 7px 0 20px; + .skills__title{ + font-size: var(--small-font-size); } - .nav-github-size p{ - top: 25px; - font-size: 1.4rem; - right: 300px; - padding: 7px 0 20px; + .qualtifaction__data{ + gap: .4rem; } - .nav-linkedin-size p{ - top: 25px; - font-size: 1.4rem; - right: 200px; - padding: 7px 0 20px 0; + + .qualification__title{ + font-size: var(--small-font-size); } - .top-container{ - padding-top: 65px; - height: 966px; + + .qualification__subtitle{ + font-size: var(--smaller-font-size); } - .education{ - margin: 0 5px; - padding: 0 0 0.1px; +} + +/* For medium devices */ + +@media screen and (min-width: 568px) { + .home__content{ + grid-template-columns: max-content 1fr 1fr; } - .development-img{ - padding: 50px 0; - width: 250px; + + .home__data{ + grid-column: initial; } - .PCB-img{ - width: 200px; - margin: 0 55px 0 25px; - padding: 0 26px 25px; + + .home__img{ + order: 1; + justify-self: center; } - .container { - position: relative; - left: 440px; + + .skills__title{ + font-size: var(--small-font-size); } - .university{ - position: absolute; - width: 1109px; - top: 1900px; - left: 0px; + + .about__container, + .skills__container, + .contact__container, + .footer__container{ + grid-template-columns: repeat(2, 1fr); } - .project-back{ - display: none; + + .qualification__section{ + display: grid; + grid-template-columns: .6fr; + justify-content: center; } } -@media (max-width: 380px){ - +@media screen and (min-width: 768px) { + .container{ + margin-left: auto; + margin-right: auto; + } + body{ - width: 465px; + margin: 0; } - - h1{ - font-size: 4rem; + .section{ + padding: 6rem 0 2rem; } - h2{ - font-size: 1.3rem; + + .section__subtitle{ + margin-bottom: 4rem; } - h4{ - font-size: 1.3rem; + + .header{ + top: 0; + bottom: initial; } - hr{ - border-width: 0.3em; - width: 5%; + + .header, + .main, + .footer__container{ + padding: 0 1rem; } - #navbar{ - height: 95px; + .nav{ + height: calc(var(--header-height) + 1.5rem); + column-gap: 1rem; } - .nav-sign-size{ - width: 50%; - position: relative; - right: -4px; - top: -13px + .nav__icon, + .nav__close, + .nav__toggle{ + display: none; } - .nav-blog-size p{ - top: 38px; - right: 360px; - padding: 8px 0; + .nav__list{ + display: flex; + column-gap: 2em; } - .nav-github-size p{ - top: 38px; - right: 275px; - padding: 8px 0; + .nav__menu{ + margin-left: auto; } - .nav-linkedin-size p{ - top: 38px; - right: 175px; - padding: 8px 0; + + .change-theme{ + margin: 0; } - .nav-resume-size p{ - top: 38px; - right: 75px; - padding: 8px 0; + .home__container{ + row-gap: 5rem; } - .top-container{ - padding-top: 65px; - height: 575px; + .home__content{ + padding-top: 5.5rem; + column-gap: 2rem; } - .mountain{ - height: 225px; - width: 450px; - position: relative; - top: 3%; - right: 2%; + + .home__blob{ + width: 270px; } - .top-cloud{ - left: 150px; - right: 50px; - bottom: 10px; - height: 80px; + .home__scroll{ + display: block; } - .bottom-cloud{ - left: -148px; - bottom: 20px; - height: 80px; + .home__scroll-button{ + margin-left: 3rem; } - .education{ - margin: 0 10px; - padding: 0 0 0.1px; + .about__container{ + column-gap: 5rem; } - .oriental-img{ - position: relative; - margin-right: 50px; - left: 80px; + .about__img{ + width: 350px; } - .miss-hill-img{ - position: relative; - margin-left: 100px; - right: 80px; - } - .sanskriti-img{ - padding: 0 28px 13px 0; - margin: 0 75px 0; - } - .development-img{ - margin-left: 80px; - padding: 10px 0 10px; - width: 200px; - } - .PCB-img{ - width: 200px; - margin: 0 40px 0 75px; - padding: 0 26px 25px; - } - .container { - width: 200px; - left: 143px; - bottom: 20px; - border-radius: 5px; + .about__description{ + text-align: initial; } - .round-circle{ - width: 11px; - height: 11px; - border-radius: 100%; - position: relative; - bottom: 4.9px; - } - .round-Javascript{ - left: 137px; - } - .round-python{ - left: 155px; + .about__info{ + justify-content: space-between; } - .round-html-css{ - left: 147px; + + .about__buttons{ + justify-content: initial; } - .round-express{ - left: 135px; + + .qualification__tabs{ + justify-content: center; } - .round-node{ - left: 130px; + + .qualification__button{ + margin: 0 var(--mb-2); + } + + .footer__bg{ + padding: 3rem 0 3.5rem; } - .round-mongo{ - left: 127px; + + .footer__links{ + flex-direction: row; + column-gap: 2rem; } - .round-PCB{ - left: 165px; + + .footer__copy{ + margin-top: 4.5em; } +} - .round-embedded{ - left: 138px; +/* For large devices */ +@media screen and (min-width: 1024px) { + .header, + .main, + .footer__container{ + padding: 0; } - .round-easyeda{ - left: 150px; + + .home__blob{ + width: 320px; } - .round-micro{ - left: 129px; + + .home__social{ + transform: translateX(-6rem); } - .c-cards{ - width: 15rem; + + .services__container{ + grid-template-columns: repeat(3, 238px); } - .university{ - display: none; + + .contact__form{ + width: 460px; } - .project-back{ - display: none; + + .contact__inputs{ + grid-template-columns: repeat(2, 1fr); } -} + +} \ No newline at end of file diff --git a/files/Resume_harshit_gupta.pdf b/files/Resume_harshit_gupta.pdf new file mode 100644 index 0000000..7588175 Binary files /dev/null and b/files/Resume_harshit_gupta.pdf differ diff --git a/img/about.png b/img/about.png new file mode 100644 index 0000000..2408f96 Binary files /dev/null and b/img/about.png differ diff --git a/img/blob.svg b/img/blob.svg new file mode 100644 index 0000000..29dea02 --- /dev/null +++ b/img/blob.svg @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/img/harshit.png b/img/harshit.png new file mode 100644 index 0000000..73e5263 Binary files /dev/null and b/img/harshit.png differ diff --git a/index.html b/index.html index 0fa5eab..c69ad50 100644 --- a/index.html +++ b/index.html @@ -4,233 +4,490 @@ + Harshit Gupta - - + + - - - - - - - - + + -
- cloud-image. -

I'm Harshit.

-

a web developer & budding youtuber.

- cloud-image. - mountain-image. -
- -
- harshit's image -

Hey, There

-

- I'm an independent web developer who is passionate about web development, I'm an undergraduate student, IoT enthusiast & self-learned programmer. - I am eager to hear about potential career opportunities, so I would be pleased to chat about job openings in the engineering sphere. -

-
- -
- - - -
-

Education

- -
- computer images -

Electronics & Communication Engineering

-

- Pursuing B.Tech from Oriental Institute of Science and Technology, Bhopal M.P, - I am in third year of my engineering with the score of 8.59/10 C.G.P.A. -

-
-
- pcb image -

Higher Secondary Education

-

- I have completed my higher secondary education in 2018, from Miss Hill Higher - Secondary school, Gwalior M.P with a score of 76.4 percentile. -

-
+
+ + + -
+
-

Skills

+ -
- computer images -

Design & Development

+
+
+
+ + -

Python

-
-
-
+
+ + + + + + + + + + + +
+
+

Hi, I'm Harshit

+

Fullstack developer

+

+ Mid level experience in Web development, delevering quality work. +

+ + Contact me +
+
-
-

Javascript

-
-
+ -

HTML/CSS

-
-
-
+
-

Express.js

-
-
-
+ -

Node.js

-
-
-
+
+

About Me

+ My introduction -

MongoDB

-
-
-
+
+ -
+
+

Fullstack developer, with extensive knowledge and years of experience, working in fullstack technologies, delevering quality work.

-
- pcb image -

Electronics

+
+
+ 01+ + Years
experience
+
-

PCB Design

-
-
-
+
+ 03+ + Completed
projects
+
-

EasyEda

-
-
-
+
+ 01 + Company
worked
+
+
-

Embedded C

-
+
-

Micro-controllers

-
-
-
-
-
+ -
+
+

Skills

+ My technical level -
-

Projects

+
- +
+
+ -
- Card image cap -
-
Robotic Hand
-

Robotic hand developed after small research on human hand anatomy.

- More Details -
-
+
+

Frontend developer

+ More than 1 years +
-
- Card image cap -
-
Tech Journal
-

Blogging application for posting projects & technical blogs.

- More Details -
-
+ +
-
- Card image cap -
-
Breadboard Power Supply
-

PCB for breadboard to supply power (Independent from batteries).

- More Details -
-
+
+ +
+
+

HTML

+ 80% +
+ +
+ +
+
+ +
+
+

CSS

+ 70% +
+ +
+ +
+
+ +
+
+

Javascript

+ 40% +
+ +
+ +
+
-
- Card image cap -
-
Home Automation
-

PCB for controling upto 4 electronics appliance over the internet using (IoT).

- More Details -
-
+
+ +
+ +
+ +
+ + +
+

Backend developer

+ More than 1 years +
+ + +
+ +
+ +
+
+

Java

+ 60% +
+ +
+ +
+
+ +
+
+

Spring Boot

+ 50% +
+ +
+ +
+
+ +
+
+

Python

+ 70% +
+ +
+ +
+
+
+ +
-
- Card image cap -
-
Rakshak
-

Home security system, Will notify owner if intruder try's to break through door & window.

- More Details
-
+
- + - +
+

Qualification

+ My journey - +
+
+
+ + Education +
-
-

Want to hire?

- CONTACT ME -
+
+ + Work +
+
+ +
+ + +
+ + + +
+

Electronics and Communication

+ India - Oriental Institute of Science and Technology +
+ + 2018 - 2022 +
+
+ +
+ + +
+
+ + + +
+ +
+ + +
+ +
+

Senior Secondary Education

+ India - Miss Hill Higher Secondary School +
+ + 2017 - 2018 +
+
+
+ + +
+

Secondary Education

+ India - Sanskriti Public School +
+ + 2015 - 2016 +
+
+ +
+ + +
+
+ +
-
+ +
+ + +
+

Product Engineer

+ Tata Consultancy Services - India +
+ + 2022 - Present +
+
+ +
+ + +
+
+ + + +
+ +
+ + +
+ +
+

Product Intern

+ Tata Consultancy Services - India +
+ + Jan 2022 - May 2022 +
+
+
+ +
+ +
- +
+
+ + + + +
+

Contact Me

+ Get in touch + +
+
+ +
+ +
+

Call Me

+ +91 6266478162 +
+
+ +
+ +
+

Email Me

+ harshitofficial28@gmail.com +
+
+ +
+ +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+ +
+ + Send Message + +
+
+
+
+ + + - - - - - - - - + - - -