diff --git a/- fonts.txt b/- fonts.txt new file mode 100644 index 00000000..e645abd8 --- /dev/null +++ b/- fonts.txt @@ -0,0 +1,4 @@ +Font - + +Poppins +https://fonts.google.com/specimen/Poppins \ No newline at end of file diff --git a/- read me.txt b/- read me.txt new file mode 100644 index 00000000..303ac0ad --- /dev/null +++ b/- read me.txt @@ -0,0 +1,8 @@ +IMPORTANT NOTICE: + +Please use this source code as best as possible. Download and save +this source code to your computer. Thank You. + + +------------------- +copyrigth © hellocode \ No newline at end of file diff --git a/assets/css/styles.css b/assets/css/styles.css new file mode 100644 index 00000000..a74ef220 --- /dev/null +++ b/assets/css/styles.css @@ -0,0 +1,617 @@ +/*=============== GOOGLE FONTS ===============*/ +@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap"); +/*=============== VARIABLES CSS ===============*/ +:root { + --header-height: 3rem; + /*========== Colors ==========*/ + --hue: 45; + --sat: 98%; + --first-color: hsl(var(--hue), var(--sat), 60%); + --first-color-light: hsl(var(--hue), var(--sat), 85%); + --first-color-lighten: hsl(var(--hue), var(--sat), 80%); + --first-color-alt: hsl(var(--hue), var(--sat), 53%); + --title-color: hsl(var(--hue), 4%, 15%); + --text-color: hsl(var(--hue), 4%, 35%); + --text-color-light: hsl(var(--hue), 4%, 65%); + --body-color: hsl(var(--hue), 0%, 100%); + --container-color: #FFF; + --scroll-bar-color: hsl(var(--hue), 4%, 85%); + --scroll-thumb-color: hsl(var(--hue), 4%, 75%); + /*========== Font and typography ==========*/ + --body-font: 'Poppins', sans-serif; + --biggest-font-size: 2rem; + --h2-font-size: 1.25rem; + --h3-font-size: 1.125rem; + --normal-font-size: .938rem; + --small-font-size: .813rem; + --smaller-font-size: .75rem; + /*========== Font weight ==========*/ + --font-semi-bold: 600; + --font-bold: 700; + /*========== Margenes ==========*/ + --mb-0-5: .5rem; + --mb-0-75: .75rem; + --mb-1: 1rem; + --mb-1-5: 1.5rem; + --mb-2: 2rem; + /*========== z index ==========*/ + --z-tooltip: 10; + --z-fixed: 100; +} + +@media screen and (min-width: 968px) { + :root { + --biggest-font-size: 3rem; + --h2-font-size: 1.75rem; + --h3-font-size: 1.25rem; + --normal-font-size: 1rem; + --small-font-size: .875rem; + --smaller-font-size: .813rem; + } +} + +/*=============== BASE ===============*/ +*, ::before, ::after { + box-sizing: border-box; + padding: 0; + margin: 0; +} + +html { + scroll-behavior: smooth; +} + +body { + margin: var(--header-height) 0 0 0; + font-family: var(--body-font); + font-size: var(--normal-font-size); + background-color: var(--body-color); + color: var(--text-color); + transition: .5s; +} + +h1, h2, h3 { + font-weight: var(--font-semi-bold); + color: var(--title-color); + line-height: 1.5; +} + +ul { + list-style: none; +} + +a { + text-decoration: none; +} + +img { + max-width: 100%; + height: auto; +} + +/*=============== THEME ===============*/ +/*========== Variables Dark theme ==========*/ +body.dark-theme { + --first-color-light: hsl(var(--hue), var(--sat), 75%); + --title-color: hsl(var(--hue), 4%, 95%); + --text-color: hsl(var(--hue), 4%, 80%); + --body-color: hsl(var(--hue), 8%, 13%); + --container-color: hsl(var(--hue), 8%, 16%); + --scroll-bar-color: hsl(var(--hue), 4%, 32%); + --scroll-thumb-color: hsl(var(--hue), 4%, 24%); +} + +/*========== Button Dark/Light ==========*/ +.change-theme { + position: absolute; + right: 1.5rem; + top: 2.2rem; + color: var(--title-color); + font-size: 1.8rem; + cursor: pointer; +} + +.dark-theme .footer { + background-color: var(--container-color); +} + +/*=============== REUSABLE CSS CLASSES ===============*/ +.section { + padding: 4.5rem 0 1rem; +} + +.section__title, .section__title-center { + font-size: var(--h2-font-size); + color: var(--title-color); + text-align: center; + margin-bottom: var(--mb-1); +} + +.svg__color { + fill: var(--first-color); +} + +.svg__blob { + fill: var(--first-color-light); +} + +.svg__img { + width: 300px; + justify-self: center; +} + +/*=============== LAYOUT ===============*/ +.container { + max-width: 968px; + margin-left: var(--mb-1-5); + margin-right: var(--mb-1-5); +} + +.grid { + display: grid; + gap: 1.5rem; +} + +/*=============== HEADER ===============*/ +.header { + width: 100%; + background-color: var(--body-color); + + top: 0; + left: 0; + z-index: var(--z-fixed); + transition: .5s; +} +.header img { + width: 100px; /* Adjust the width as needed */ + height: 100px; + margin-left: 1px; /* Adjust the margin as needed */ +} + +/*=============== NAV ===============*/ +.nav { + height: var(--header-height); + display: flex; + justify-content: space-between; + align-items: center; +} + +@media screen and (max-width: 767px) { + .nav__menu { + position: fixed; + background-color: var(--container-color); + box-shadow: 0 0 4px rgba(0, 0, 0, 0.1); + padding: 2.5rem 0; + width: 90%; + top: -100%; + left: 0; + right: 0; + margin: 0 auto; + transition: .4s; + border-radius: 2rem; + z-index: var(--z-fixed); + } +} + +.nav__list { + display: flex; + flex-direction: column; + align-items: center; + row-gap: 1.5rem; +} + +.nav__link, .nav__logo, .nav__toggle { + color: var(--title-color); + font-weight: var(--font-semi-bold); +} + +.nav__toggle { + font-size: 1.3rem; + cursor: pointer; +} + +/* Show menu */ +.show-menu { + top: calc(var(--header-height) + 1rem); +} + +/* Active link */ +.active-link { + position: relative; +} + +.active-link::before { + content: ''; + position: absolute; + bottom: -.75rem; + left: 45%; + width: 5px; + height: 5px; + background-color: var(--title-color); + border-radius: 50%; +} + +/* Change background header */ +.scroll-header { + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); +} + +/*=============== HOME ===============*/ +.home__container { + row-gap: 3rem; +} + +.home__title { + font-size: var(--biggest-font-size); + font-weight: var(--font-bold); + margin-bottom: var(--mb-0-75); +} + +.home__description { + margin-bottom: var(--mb-2); +} +.home img { + max-width: 100%; + height: auto; + margin-left: 500px; /* Adjust the margin as needed */ + margin-top: -350px; +} +/*=============== BUTTONS ===============*/ +.button { + display: inline-block; + background-color: var(--first-color); + color: #1A1A1A; + padding: .75rem 1.5rem; + border-radius: 3rem; + font-weight: var(--font-semi-bold); + transition: .3s; +} + +.button:hover { + background-color: var(--first-color-alt); +} + +.button__header { + display: none; +} + +.button-link { + background: none; + padding: 0; + color: var(--title-color); +} + +.button-link:hover { + background-color: transparent; +} + +.button-flex { + display: inline-flex; + align-items: center; + column-gap: .25rem; + padding: .75rem 1rem; +} + +.button__icon { + font-size: 1.5rem; +} + +/*=============== ABOUT ===============*/ +.about__container { + gap: 2.5rem; +} + +.about__data { + text-align: center; +} +.about img { + max-width: 100%; + height: auto; + margin-left: 500px; /* Adjust the margin as needed */ + margin-top: -150px; +} + +/*=============== SECURITY ===============*/ +.security__container { + gap: 2.5rem; +} + +.security__data { + text-align: center; +} + +/*=============== SERVICES ===============*/ +.services__container { + padding-top: 1rem; +} + +.services__data { + display: grid; + row-gap: 1rem; + background-color: var(--container-color); + box-shadow: 0px 2px 6px hsla(var(--hue), 100%, 15%, 0.15); + padding: 2rem 1.5rem; + border-radius: 1rem; + text-align: center; +} + +.services__img { + width: 135px; + justify-self: center; + margin-bottom: var(--mb-0-5); +} + +/*=============== APP ===============*/ +.app__container { + gap: 2.5rem; +} + +.app__data { + text-align: center; +} + +.app__description { + margin-bottom: var(--mb-1-5); +} + +.app__buttons { + display: grid; + grid-template-columns: repeat(2, max-content); + justify-content: center; + gap: .5rem; +} + + +/*=============== CONTACT ===============*/ +.contact__container { + padding-bottom: 3rem; +} + +.contact__description { + text-align: center; +} + +.contact__content { + row-gap: .75rem; +} + +.contact__address { + font-size: var(--small-font-size); + font-weight: var(--font-semi-bold); + color: var(--title-color); +} + +.contact__information { + font-weight: initial; + color: var(--text-color); +} + +/*=============== FOOTER ===============*/ +.footer { + background-color: var(--first-color-lighten); + padding-bottom: 2rem; +} + +.footer__container { + row-gap: 2rem; +} + +.footer__logo, .footer__title { + font-size: var(--h3-font-size); + margin-bottom: var(--mb-0-75); +} + +.footer__logo { + display: inline-block; + font-weight: var(--font-semi-bold); + color: var(--title-color); +} + +.footer__description, .footer__link { + font-size: var(--small-font-size); +} + +.footer__links { + display: grid; + row-gap: .5rem; +} + +.footer__link { + color: var(--title-color); +} + +.footer__social { + display: flex; + column-gap: 1.5rem; +} + +.footer__social-link { + font-size: 1.25rem; + color: var(--title-color); +} + +.footer__copy { + margin-top: 6rem; + text-align: center; + font-size: var(--smaller-font-size); + color: var(--text-color); +} + +/*=============== SCROLL UP ===============*/ +.scrollup { + position: fixed; + background: var(--first-color); + right: 1rem; + bottom: -20%; + display: inline-flex; + padding: .3rem; + border-radius: .25rem; + z-index: var(--z-tooltip); + opacity: .8; + transition: .4s; +} + +.scrollup:hover { + background-color: var(--first-color); + opacity: 1; +} + +.scrollup__icon { + font-size: 1.25rem; + color: var(--title-color); +} + +/* Show Scroll Up*/ +.show-scroll { + bottom: 3rem; +} + +/*=============== SCROLL BAR ===============*/ +::-webkit-scrollbar { + width: .6rem; + border-radius: .5rem; + background-color: var(--scroll-bar-color); +} + +::-webkit-scrollbar-thumb { + background-color: var(--scroll-thumb-color); + border-radius: .5rem; +} + +::-webkit-scrollbar-thumb:hover { + background-color: var(--text-color-light); +} + +/*=============== MEDIA QUERIES ===============*/ +/* For small devices */ +@media screen and (max-width: 360px) { + .svg__img { + width: 100%; + } + .section { + padding: 3.5rem 0 1rem; + } + .services__img { + width: 100px; + } + .app__buttons { + grid-template-columns: max-content; + } +} + +/* For medium devices */ +@media screen and (min-width: 576px) { + .svg__img { + width: 100%; + } + .section__title-center { + text-align: initial; + } + .home__container, + .about__container, + .security__container, + .services__container, + .app__container, + .contact__container, + .footer__container { + grid-template-columns: repeat(2, 1fr); + } + .home__img { + order: 1; + } + .home__container, + .about__container, + .security__container, + .app__container, + .contact__container { + align-items: center; + } + .about__data, + .security__data, + .app__data, + .contact__description { + text-align: initial; + } + .about__img, + .app__img { + order: -1; + } +} + +@media screen and (min-width: 767px) { + body { + margin: 0; + } + .section { + padding: 6rem 0 2rem; + } + .nav { + height: calc(var(--header-height) + 1.5rem); + } + .nav__list { + flex-direction: row; + column-gap: 2.5rem; + } + .nav__toggle { + display: none; + } + .change-theme { + position: initial; + } + .home__container { + padding: 6rem 0 2rem; + } + .app__buttons { + justify-content: initial; + } +} + +/* For large devices */ +@media screen and (min-width: 968px) { + .button__header { + display: block; + } + .svg__img { + width: 470px; + } + .about__container, + .security__container, + .app__container, + .contact__container { + column-gap: 6rem; + } + .services__container { + grid-template-columns: repeat(3, 1fr); + } + .contact__container { + grid-template-columns: 3fr 1.5fr 1.25fr; + } + .footer__container { + grid-template-columns: repeat(5, 1fr); + } + .footer__social { + align-items: flex-start; + } + .footer__social-link { + font-size: 1.45rem; + } +} + +@media screen and (min-width: 1024px) { + .container { + margin-left: auto; + margin-right: auto; + } + .home__img { + width: 540px; + } + .home__description { + padding-right: 5rem; + } + .footer__container { + column-gap: 3rem; + } + .scrollup { + right: 2rem; + } +} diff --git a/assets/img/about.png b/assets/img/about.png new file mode 100644 index 00000000..49154b60 Binary files /dev/null and b/assets/img/about.png differ diff --git a/assets/img/rd.png b/assets/img/rd.png new file mode 100644 index 00000000..885be48c Binary files /dev/null and b/assets/img/rd.png differ diff --git a/assets/img/rd1.png b/assets/img/rd1.png new file mode 100644 index 00000000..b504bf24 Binary files /dev/null and b/assets/img/rd1.png differ diff --git a/assets/img/s1.jpg b/assets/img/s1.jpg new file mode 100644 index 00000000..25e2914f Binary files /dev/null and b/assets/img/s1.jpg differ diff --git a/assets/img/s2.jpg b/assets/img/s2.jpg new file mode 100644 index 00000000..3aa07e95 Binary files /dev/null and b/assets/img/s2.jpg differ diff --git a/assets/img/s3.jpg b/assets/img/s3.jpg new file mode 100644 index 00000000..83680b42 Binary files /dev/null and b/assets/img/s3.jpg differ diff --git a/assets/img/sec.png b/assets/img/sec.png new file mode 100644 index 00000000..fd83ea5d Binary files /dev/null and b/assets/img/sec.png differ diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 00000000..3557fec5 --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,90 @@ +/*=============== SHOW MENU ===============*/ +const showMenu = (toggleId, navId) =>{ + const toggle = document.getElementById(toggleId), + nav = document.getElementById(navId) + + // Validate that variables exist + if(toggle && nav){ + toggle.addEventListener('click', ()=>{ + // We add the show-menu class to the div tag with the nav__menu class + nav.classList.toggle('show-menu') + }) + } +} +showMenu('nav-toggle','nav-menu') + +/*=============== REMOVE MENU MOBILE ===============*/ +const navLink = document.querySelectorAll('.nav__link') + +function linkAction(){ + const navMenu = document.getElementById('nav-menu') + // When we click on each nav__link, we remove the show-menu class + navMenu.classList.remove('show-menu') +} +navLink.forEach(n => n.addEventListener('click', linkAction)) + +/*=============== SCROLL SECTIONS ACTIVE LINK ===============*/ +const sections = document.querySelectorAll('section[id]') + +function scrollActive(){ + const scrollY = window.pageYOffset + + sections.forEach(current =>{ + const sectionHeight = current.offsetHeight, + sectionTop = current.offsetTop - 50, + sectionId = current.getAttribute('id') + + if(scrollY > sectionTop && scrollY <= sectionTop + sectionHeight){ + document.querySelector('.nav__menu a[href*=' + sectionId + ']').classList.add('active-link') + }else{ + document.querySelector('.nav__menu a[href*=' + sectionId + ']').classList.remove('active-link') + } + }) +} +window.addEventListener('scroll', scrollActive) + +/*=============== CHANGE BACKGROUND HEADER ===============*/ +function scrollHeader(){ + const nav = document.getElementById('header') + // When the scroll is greater than 80 viewport height, add the scroll-header class to the header tag + if(this.scrollY >= 80) nav.classList.add('scroll-header'); else nav.classList.remove('scroll-header') +} +window.addEventListener('scroll', scrollHeader) + +/*=============== SHOW SCROLL UP ===============*/ +function scrollUp(){ + const scrollUp = document.getElementById('scroll-up'); + // When the scroll is higher than 560 viewport height, add the show-scroll class to the a tag with the scroll-top class + if(this.scrollY >= 560) scrollUp.classList.add('show-scroll'); else scrollUp.classList.remove('show-scroll') +} +window.addEventListener('scroll', scrollUp) + +/*=============== DARK LIGHT THEME ===============*/ +const themeButton = document.getElementById('theme-button') +const darkTheme = 'dark-theme' +const iconTheme = 'bx-toggle-right' + +// Previously selected topic (if user selected) +const selectedTheme = localStorage.getItem('selected-theme') +const selectedIcon = localStorage.getItem('selected-icon') + +// We obtain the current theme that the interface has by validating the dark-theme class +const getCurrentTheme = () => document.body.classList.contains(darkTheme) ? 'dark' : 'light' +const getCurrentIcon = () => themeButton.classList.contains(iconTheme) ? 'bx-toggle-left' : 'bx-toggle-right' + +// We validate if the user previously chose a topic +if (selectedTheme) { + // If the validation is fulfilled, we ask what the issue was to know if we activated or deactivated the dark + document.body.classList[selectedTheme === 'dark' ? 'add' : 'remove'](darkTheme) + themeButton.classList[selectedIcon === 'bx-toggle-left' ? 'add' : 'remove'](iconTheme) +} + +// Activate / deactivate the theme manually with the button +themeButton.addEventListener('click', () => { + // Add or remove the dark / icon theme + document.body.classList.toggle(darkTheme) + themeButton.classList.toggle(iconTheme) + // We save the theme and the current icon that the user chose + localStorage.setItem('selected-theme', getCurrentTheme()) + localStorage.setItem('selected-icon', getCurrentIcon()) +}) diff --git a/assets/scss/base/_base.scss b/assets/scss/base/_base.scss new file mode 100644 index 00000000..86458bf7 --- /dev/null +++ b/assets/scss/base/_base.scss @@ -0,0 +1,36 @@ +/*=============== BASE ===============*/ +*,::before,::after{ + box-sizing: border-box; + padding: 0; + margin: 0; +} + +html{ + scroll-behavior: smooth; +} + +body{ + margin: var(--header-height) 0 0 0; + font-family: var(--body-font); + font-size: var(--normal-font-size); + background-color: var(--body-color); + color: var(--text-color); + transition: .5s; // For animation dark mode +} + +h1,h2,h3{ + font-weight: var(--font-semi-bold); + color: var(--title-color); + line-height: 1.5; +} + +ul{ + list-style: none; +} +a{ + text-decoration: none; +} +img{ + max-width: 100%; + height: auto; +} diff --git a/assets/scss/components/_about.scss b/assets/scss/components/_about.scss new file mode 100644 index 00000000..061603ef --- /dev/null +++ b/assets/scss/components/_about.scss @@ -0,0 +1,9 @@ +/*=============== ABOUT ===============*/ +.about{ + &__container{ + gap: 2.5rem; + } + &__data{ + text-align: center; + } +} diff --git a/assets/scss/components/_app.scss b/assets/scss/components/_app.scss new file mode 100644 index 00000000..c43abe37 --- /dev/null +++ b/assets/scss/components/_app.scss @@ -0,0 +1,18 @@ +/*=============== APP ===============*/ +.app{ + &__container{ + gap: 2.5rem; + } + &__data{ + text-align: center; + } + &__description{ + margin-bottom: var(--mb-1-5); + } + &__buttons{ + display: grid; + grid-template-columns: repeat(2, max-content); + justify-content: center; + gap: .5rem + } +} diff --git a/assets/scss/components/_buttons.scss b/assets/scss/components/_buttons.scss new file mode 100644 index 00000000..f5a721da --- /dev/null +++ b/assets/scss/components/_buttons.scss @@ -0,0 +1,39 @@ +/*=============== BUTTONS ===============*/ +.button{ + display: inline-block; + background-color: var(--first-color); + color: #1A1A1A; // Use color black for yellow + padding: .75rem 1.5rem; + border-radius: 3rem; + font-weight: var(--font-semi-bold); + transition: .3s; + + &:hover{ + background-color: var(--first-color-alt); + } + + &__header{ + display: none; + } + + &-link{ + background: none; + padding: 0; + color: var(--title-color); + + &:hover{ + background-color: transparent; + } + } + + &-flex{ + display: inline-flex; + align-items: center; + column-gap: .25rem; + padding: .75rem 1rem; + } + + &__icon{ + font-size: 1.5rem; + } +} diff --git a/assets/scss/components/_contact.scss b/assets/scss/components/_contact.scss new file mode 100644 index 00000000..4567fd94 --- /dev/null +++ b/assets/scss/components/_contact.scss @@ -0,0 +1,21 @@ +/*=============== CONTACT ===============*/ +.contact{ + &__container{ + padding-bottom: 3rem; + } + &__description{ + text-align: center; + } + &__content{ + row-gap: .75rem; + } + &__address{ + font-size: var(--small-font-size); + font-weight: var(--font-semi-bold); + color: var(--title-color); + } + &__information{ + font-weight: initial; + color: var(--text-color); + } +} diff --git a/assets/scss/components/_footer.scss b/assets/scss/components/_footer.scss new file mode 100644 index 00000000..8a4e36d9 --- /dev/null +++ b/assets/scss/components/_footer.scss @@ -0,0 +1,46 @@ +/*=============== FOOTER ===============*/ +.footer{ + background-color: var(--first-color-lighten); + padding-bottom: 2rem; + + &__container{ + row-gap: 2rem; + } + + &__logo, + &__title{ + font-size: var(--h3-font-size); + margin-bottom: var(--mb-0-75); + } + &__logo{ + display: inline-block; + font-weight: var(--font-semi-bold); + color: var(--title-color); + } + &__description, + &__link{ + font-size: var(--small-font-size); + } + &__links{ + display: grid; + row-gap: .5rem; + } + &__link{ + color: var(--title-color); + } + &__social{ + display: flex; + column-gap: 1.5rem; + + &-link{ + font-size: 1.25rem; + color: var(--title-color); + } + } + &__copy{ + margin-top: 6rem; + text-align: center; + font-size: var(--smaller-font-size); + color: var(--text-color); + } +} diff --git a/assets/scss/components/_header.scss b/assets/scss/components/_header.scss new file mode 100644 index 00000000..ebdcaeaf --- /dev/null +++ b/assets/scss/components/_header.scss @@ -0,0 +1,77 @@ +/*=============== HEADER ===============*/ +.header{ + width: 100%; + background-color: var(--body-color); + position: fixed; + top: 0; + left: 0; + z-index: var(--z-fixed); + transition: .5s; // For animation dark mode +} + +/*=============== NAV ===============*/ +.nav{ + height: var(--header-height); + display: flex; + justify-content: space-between; + align-items: center; + + &__menu{ + @media screen and (max-width: 767px){ + position: fixed; + background-color: var(--container-color); + box-shadow: 0 0 4px rgba(0,0,0,.1); + padding: 2.5rem 0; + width: 90%; + top: -100%; + left: 0; + right: 0; + margin: 0 auto; + transition: .4s; + border-radius: 2rem; + z-index: var(--z-fixed); + } + } + &__list{ + display: flex; + flex-direction: column; + align-items: center; + row-gap: 1.5rem; + } + &__link, + &__logo, + &__toggle{ + color: var(--title-color); + font-weight: var(--font-semi-bold); + } + &__toggle{ + font-size: 1.3rem; + cursor: pointer; + } +} + +/* Show menu */ +.show-menu{ + top: calc(var(--header-height) + 1rem); +} + +/* Active link */ +.active-link{ + position: relative; + + &::before{ + content: ''; + position: absolute; + bottom: -.75rem; + left: 45%; + width: 5px; + height: 5px; + background-color: var(--title-color); + border-radius: 50%; + } +} + +/* Change background header */ +.scroll-header{ + box-shadow: 0 1px 4px rgba(0,0,0,.1); +} diff --git a/assets/scss/components/_home.scss b/assets/scss/components/_home.scss new file mode 100644 index 00000000..b936872f --- /dev/null +++ b/assets/scss/components/_home.scss @@ -0,0 +1,14 @@ +/*=============== HOME ===============*/ +.home{ + &__container{ + row-gap: 3rem; + } + &__title{ + font-size: var(--biggest-font-size); + font-weight: var(--font-bold); + margin-bottom: var(--mb-0-75); + } + &__description{ + margin-bottom: var(--mb-2); + } +} diff --git a/assets/scss/components/_mediaqueries.scss b/assets/scss/components/_mediaqueries.scss new file mode 100644 index 00000000..8a9349b2 --- /dev/null +++ b/assets/scss/components/_mediaqueries.scss @@ -0,0 +1,161 @@ +/*=============== MEDIA QUERIES ===============*/ +/* For small devices */ +@media screen and (max-width: 360px){ + .svg__img{ + width: 100%; + } + + .section{ + padding: 3.5rem 0 1rem; + } + + .services__img{ + width: 100px; + } + + .app__buttons{ + grid-template-columns: max-content; + } +} + +/* For medium devices */ +@media screen and (min-width: 576px){ + .svg__img{ + width: 100%; + } + + .section__title-center{ + text-align: initial; + } + + .home__container, + .about__container, + .security__container, + .services__container, + .app__container, + .contact__container, + .footer__container{ + grid-template-columns: repeat(2, 1fr); + } + + .home__img{ + order: 1; + } + + .home__container, + .about__container, + .security__container, + .app__container, + .contact__container{ + align-items: center; + } + + .about__data, + .security__data, + .app__data, + .contact__description{ + text-align: initial; + } + + .about__img, + .app__img{ + order: -1; + } +} + +@media screen and (min-width: 767px){ + body{ + margin: 0; + } + + .section{ + padding: 6rem 0 2rem; + } + + .nav{ + height: calc(var(--header-height) + 1.5rem); + + &__list{ + flex-direction: row; + column-gap: 2.5rem; + } + &__toggle{ + display: none; + } + } + + .change-theme{ + position: initial; + } + + .home__container{ + padding: 6rem 0 2rem; + } + + .app__buttons{ + justify-content: initial; + } +} + +/* For large devices */ +@media screen and (min-width: 968px){ + .button__header{ + display: block; + } + + .svg__img{ + width: 470px; + } + + .about__container, + .security__container, + .app__container, + .contact__container{ + column-gap: 6rem; + } + + .services__container{ + grid-template-columns: repeat(3, 1fr); + } + + .contact__container{ + grid-template-columns: 3fr 1.5fr 1.25fr; + } + + .footer{ + &__container{ + grid-template-columns: repeat(5, 1fr); + } + &__social{ + align-items: flex-start; + + &-link{ + font-size: 1.45rem; + } + } + } +} + +@media screen and (min-width: 1024px){ + .container{ + margin-left: auto; + margin-right: auto; + } + + .home{ + &__img{ + width: 540px; + } + &__description{ + padding-right: 5rem; + } + } + + .footer__container{ + column-gap: 3rem; + } + + .scrollup{ + right: 2rem; + } +} diff --git a/assets/scss/components/_scroll.scss b/assets/scss/components/_scroll.scss new file mode 100644 index 00000000..ec88467e --- /dev/null +++ b/assets/scss/components/_scroll.scss @@ -0,0 +1,44 @@ +/*=============== SCROLL UP ===============*/ +.scrollup{ + position: fixed; + background: var(--first-color); + right: 1rem; + bottom: -20%; + display: inline-flex; + padding: .3rem; + border-radius: .25rem; + z-index: var(--z-tooltip); + opacity: .8; + transition: .4s; + + &:hover{ + background-color: var(--first-color); + opacity: 1; + } + + &__icon{ + font-size: 1.25rem; + color: var(--title-color); + } +} + +/* Show Scroll Up*/ +.show-scroll{ + bottom: 3rem; +} + +/*=============== SCROLL BAR ===============*/ +::-webkit-scrollbar{ + width: .6rem; + border-radius: .5rem; + background-color: var(--scroll-bar-color); + + &-thumb{ + background-color: var(--scroll-thumb-color); + border-radius: .5rem; + + &:hover{ + background-color: var(--text-color-light); + } + } +} diff --git a/assets/scss/components/_security.scss b/assets/scss/components/_security.scss new file mode 100644 index 00000000..1364b8fe --- /dev/null +++ b/assets/scss/components/_security.scss @@ -0,0 +1,9 @@ +/*=============== SECURITY ===============*/ +.security{ + &__container{ + gap: 2.5rem; + } + &__data{ + text-align: center; + } +} diff --git a/assets/scss/components/_services.scss b/assets/scss/components/_services.scss new file mode 100644 index 00000000..74cc90c3 --- /dev/null +++ b/assets/scss/components/_services.scss @@ -0,0 +1,20 @@ +/*=============== SERVICES ===============*/ +.services{ + &__container{ + padding-top: 1rem; + } + &__data{ + display: grid; + row-gap: 1rem; + background-color: var(--container-color); + box-shadow: 0px 2px 6px hsla(var(--hue), 100%, 15%, 0.15); + padding: 2rem 1.5rem; + border-radius: 1rem; + text-align: center; + } + &__img{ + width: 135px; + justify-self: center; + margin-bottom: var(--mb-0-5); + } +} diff --git a/assets/scss/config/_variables.scss b/assets/scss/config/_variables.scss new file mode 100644 index 00000000..669201e1 --- /dev/null +++ b/assets/scss/config/_variables.scss @@ -0,0 +1,58 @@ +/*=============== GOOGLE FONTS ===============*/ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap'); + +/*=============== VARIABLES CSS ===============*/ +:root{ + --header-height: 3rem; + + /*========== Colors ==========*/ + --hue: 45; // Yellow: 45 | Red: 4 | Orange: 18 | Green: 118 + --sat: 98%; // Yellow: 98% | Red: 90% | Orange: 85% | Green: 50% + --first-color: hsl(var(--hue), var(--sat), 60%); + --first-color-light: hsl(var(--hue), var(--sat), 85%); + --first-color-lighten: hsl(var(--hue), var(--sat), 80%); + --first-color-alt: hsl(var(--hue), var(--sat), 53%); + --title-color: hsl(var(--hue), 4%, 15%); + --text-color: hsl(var(--hue), 4%, 35%); + --text-color-light: hsl(var(--hue), 4%, 65%); + --body-color: hsl(var(--hue), 0%, 100%); + --container-color: #FFF; + --scroll-bar-color: hsl(var(--hue), 4%, 85%); + --scroll-thumb-color: hsl(var(--hue), 4%, 75%); + + + /*========== Font and typography ==========*/ + --body-font: 'Poppins', sans-serif; + + --biggest-font-size: 2rem; + --h2-font-size: 1.25rem; + --h3-font-size: 1.125rem; + --normal-font-size: .938rem; + --small-font-size: .813rem; + --smaller-font-size: .75rem; + + // Responsive typography + @media screen and (min-width: 968px){ + --biggest-font-size: 3rem; + --h2-font-size: 1.75rem; + --h3-font-size: 1.25rem; + --normal-font-size: 1rem; + --small-font-size: .875rem; + --smaller-font-size: .813rem; + } + + /*========== Font weight ==========*/ + --font-semi-bold: 600; + --font-bold: 700; + + /*========== Margenes ==========*/ + --mb-0-5: .5rem; + --mb-0-75: .75rem; + --mb-1: 1rem; + --mb-1-5: 1.5rem; + --mb-2: 2rem; + + /*========== z index ==========*/ + --z-tooltip: 10; + --z-fixed: 100; +} diff --git a/assets/scss/layout/_layout.scss b/assets/scss/layout/_layout.scss new file mode 100644 index 00000000..b12442fa --- /dev/null +++ b/assets/scss/layout/_layout.scss @@ -0,0 +1,36 @@ +/*=============== REUSABLE CSS CLASSES ===============*/ +.section{ + padding: 4.5rem 0 1rem; + + &__title, &__title-center{ + font-size: var(--h2-font-size); + color: var(--title-color); + text-align: center; + margin-bottom: var(--mb-1); + } +} + +.svg{ + &__color{ + fill: var(--first-color); + } + &__blob{ + fill: var(--first-color-light); + } + &__img{ + width: 300px; + justify-self: center; + } +} + +/*=============== LAYOUT ===============*/ +.container{ + max-width: 968px; + margin-left: var(--mb-1-5); + margin-right: var(--mb-1-5); +} + +.grid{ + display: grid; + gap: 1.5rem; +} diff --git a/assets/scss/styles.scss b/assets/scss/styles.scss new file mode 100644 index 00000000..4919af13 --- /dev/null +++ b/assets/scss/styles.scss @@ -0,0 +1,16 @@ +// Import of partial files +@import 'config/variables'; +@import 'base/base'; +@import 'theme/theme'; +@import 'layout/layout'; +@import 'components/header'; +@import 'components/home'; +@import 'components/buttons'; +@import 'components/about'; +@import 'components/security'; +@import 'components/services'; +@import 'components/app'; +@import 'components/contact'; +@import 'components/footer'; +@import 'components/scroll'; +@import 'components/mediaqueries'; diff --git a/assets/scss/theme/_theme.scss b/assets/scss/theme/_theme.scss new file mode 100644 index 00000000..85540d41 --- /dev/null +++ b/assets/scss/theme/_theme.scss @@ -0,0 +1,25 @@ +/*=============== THEME ===============*/ +/*========== Variables Dark theme ==========*/ +body.dark-theme{ + --first-color-light: hsl(var(--hue), var(--sat), 75%); + --title-color: hsl(var(--hue), 4%, 95%); + --text-color: hsl(var(--hue), 4%, 80%); + --body-color: hsl(var(--hue), 8%, 13%); + --container-color: hsl(var(--hue), 8%, 16%); + --scroll-bar-color: hsl(var(--hue), 4%, 32%); + --scroll-thumb-color: hsl(var(--hue), 4%, 24%); +} + +/*========== Button Dark/Light ==========*/ +.change-theme { + position: absolute; + right: 1.5rem; + top: 2.2rem; + color: var(--title-color); + font-size: 1.8rem; + cursor: pointer; +} + +.dark-theme .footer{ + background-color: var(--container-color); +} diff --git a/dex.html b/dex.html new file mode 100644 index 00000000..7efc5fdc --- /dev/null +++ b/dex.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + RAPIDOC|Delivery + + + + + +
+ +
+
+
+

RAPIDOC|Delivery
Order Medicines

+

Order your Medicine at any time and we will deliver them right to where you are.

+ + Get Started +home +
+
+
+ + +
+
+
+

Find Out A Little More
About Us

+

We are a company dedicated to the distribution of products by delivery + to your home or to the place where you are, with the best quality of delivery. +

+ about +
+
+
+ + +
+
+
+

Your Safety Is
Important

+

When your order reaches you, we have the health safety protocols, + so that you are protected from any disease. Watch the video of how the delivery is made. +

+ +
+ about +
+
+ + +
+

Some Services We
Offer

+
+
+

Payment Done

+ imog +

Pay with a Visa or PayPal card and without much ado.

+
+ Learn More +
+
+ +
+

Find Your Product

+ imog +

We offer sale of products through the Internet.

+
+ Learn More +
+
+ +
+

Product Received

+ imog +

In our app you can see the delay time of your order.

+
+ Learn More +
+
+
+
+ + +
+
+
+

Watch Your Delivery
At Any Time

+

With our app you can view the route of your order, from our local headquarters to the + place where you are. Look for the app now!

+ + +
+ home1 +
+ +
+ + +
+
+
+

Contact Us From
Here

+

You can contact us from here, you can write to us, + call us or visit our service center, we will gladly assist you.

+
+ +
    +
  • Email: delivery@email.com
  • +
  • Location: New Delhi
  • +
+ + +
+
+
+ + + + + + + + + + + diff --git a/index.html b/index.html index 9f148835..acd150c6 100644 --- a/index.html +++ b/index.html @@ -125,16 +125,28 @@ - - - -
-
-

Chatbot

- close + + +
+
+ +
+ +
+ +