Compare commits

..

No commits in common. "main" and "feature/whatsESeta" have entirely different histories.

37 changed files with 265 additions and 412 deletions

View File

@ -1,33 +1,45 @@
// /* fonts */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500;700;900&display=swap");
// @import url("https://fonts.googleapis.com/css2?family=Tenor+Sans&display=swap");
// @import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700;800&display=swap");
$font-family: "Roboto", sans-serif;
// $font-family-secundary: "Tenor Sans", sans-serif;
/* Colors */
$color-black: #000000;
$color-black1: #292929;
$color-black2: #100D0E;
$color-black: #292929;
$color-black2: #000000;
$color-white: #fff;
$color-gray: #B9B7B7;
$color-gray: #6c6c6c;
$color-gray2: #7d7d7d;
$color-gray3: #f0f0f0;
$color-gray4: #8d8d8d;
$color-gray5: #e5e5e5;
$color-gray6: #C4C4C4;
$color-gray7: #e0e0e0;
$color-gray8: #303030;
$color-green: #008000;
$color-blue: #4267b2;
$color-blue2: #00C8FF;
;
$color-green: #4caf50;
$color-black: #000;
$color-black-800: #100d0e;
$color-white: #fff;
$color-white-100: #f0f0f0;
$color-white-500: #e5e5e5;
$color-gray: #c4c4c4;
$color-gray-300: #b9b7b7;
$color-gray-500: #7d7d7d;
$color-gray-700: #303030;
$color-gray-800: #292929;
$color-red: #ff0000;
/* Grid breakpoints */
// Mains breakpoints
$full: 2500px;
$tablets: 1024px;
$phone: 490px;
/* Grid breakpoints */
$grid-breakpoints: (
xs: 0,
@ -35,8 +47,7 @@ $grid-breakpoints: (
sm: 576px,
md: 768px,
lg: 992px,
xl: 1200px,
xxl:2500px) !default;
xl: 1200px) !default;
$z-index: (
level1: 5,

View File

@ -1,4 +1,6 @@
import React from "react";
import { IconLink } from "../utils/IconLink";
import { ListItem } from "../utils/ListItem";
import homeIcon from "./assets/svgs/home.svg"
import arrowRight from "./assets/svgs/arrow-right.svg"
@ -15,7 +17,7 @@ export const BreadCrumb = () => {
{pathname !== "/" && (
<ul className={styles["breadNav"]}>
<li className={styles["navItem"]}>
<Link to="/institucional/sobre">
<Link to="/institucional">
<img src={homeIcon} alt="Icone de home" />
</Link>
</li>

View File

@ -1,5 +1,3 @@
@import "../../variaveis";
.breadNav {
display: flex;
gap: 12px;
@ -7,13 +5,13 @@
margin: 0 100px;
padding: 30px 16px;
@media (max-width:$tablets) {
@media (max-width:1024px) {
margin: 0 16px;
}
a {
img {
@media (min-width:$full) {
@media (min-width:2500px) {
min-width: 31.25px;
min-height: 31.25px;
}
@ -27,7 +25,7 @@
align-items: center;
img {
@media (min-width:$full) {
@media (min-width:2500px) {
width: 100%;
height: 100%;
min-width: 8.9px;
@ -41,18 +39,18 @@
}
.routeName {
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 14px;
color: $color-gray6;
color: #C4C4C4;
text-transform: uppercase;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 24px;
line-height: 28px;

View File

@ -4,6 +4,7 @@ interface AccordionProps {
children: ReactNode
}
{/* Recebe List Items como filho */ }
export const AccordionElement = ({ children }: AccordionProps) => {
return (
<>

View File

@ -1,7 +1,8 @@
import React, { useState } from "react";
import styleAccordion from "./Accordion.module.scss";
import styleAccordion from "./styles/Accordion.module.scss";
import { ListItem } from "../../utils/ListItem";
import { AccordionElement } from "./AccordionElement";
import {
Accordion,
@ -26,13 +27,13 @@ export const AccordionFooter = () => {
</AccordionItem>
<AccordionItem title="Fale Conosco">
<span className={styleAccordion["contact__us"]}>
<ListItem link="tel:+551141599505" title={"Atendimento ao Consumidor"} />
<ListItem title={"Atendimento ao Consumidor"} />
</span>
<ListItem link="tel:+551141599505" title={"(11) 4159-9504"} />
<ListItem title={"(11) 4159-9504"} />
<span className={styleAccordion["contact__us"]}>
<ListItem link="tel:+5511994338825" title={"Atendimento Online"} />
<ListItem title={"Atendimento Online"} />
</span>
<ListItem link="tel:+5511994338825" title={"(11) 99433-8825"} />
<ListItem title={"(11) 99433-8825"} />
</AccordionItem>
</Accordion>

View File

@ -6,7 +6,7 @@ import {
AccordionHeader,
AccordionItem as HAccordionItem,
} from "react-headless-accordion";
import styleAccordion from "./Accordion.module.scss";
import styleAccordion from "./styles/Accordion.module.scss";
interface AccordionItemFooterProps {

View File

@ -1,8 +1,6 @@
@import "../../../variaveis";
h5 {
margin: 0;
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
font-size: 14px;
@ -10,9 +8,9 @@ h5 {
text-transform: uppercase;
color: $color-gray8;
color: #303030;
@media (min-width: $full) {
@media (min-width:2500px) {
font-size: 28px;
line-height: 33px;
}
@ -28,13 +26,13 @@ h5 {
height: 100%;
@media (min-width:$full) {
@media (min-width:2500px) {
max-width: 1531px;
}
@media (max-width:$tablets) {
@media (max-width:1024px) {
flex-direction: column;
width: 99.875%;
max-width: 992px;
@ -42,7 +40,7 @@ h5 {
height: auto;
}
@media (max-width:$phone) {
@media (max-width:490px) {
width: 96.875%;
@ -105,16 +103,16 @@ h5 {
li {
a {
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 14px;
text-transform: capitalize;
color: $color-gray8;
color: #303030;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 24px;
line-height: 28px;
}
@ -130,8 +128,8 @@ h5 {
font-size: 12px;
line-height: 14px;
@media (min-width:$full),
(max-width:$tablets) {
@media (min-width:2500px),
(max-width:1024px) {
max-width: none;
}
@ -139,7 +137,7 @@ h5 {
a {
font-weight: 500;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 24px;
line-height: 28px;
}

View File

@ -8,7 +8,7 @@ export const ButtonWhatsapp = () => {
<a
href="https://wa.me/11994338825"
href="https://wa.me/75982170090"
target="_blank"
className={buttons["link"]}
>

View File

@ -1,25 +1,27 @@
@import "../../../variaveis";
.wrapper__buttons {
display: flex;
flex-direction: column;
height: 137px;
position: fixed;
bottom: 255px;
bottom: 25%;
right: 16px;
@media (max-width:2499px) {
height: 73px;
position: fixed;
bottom: 225px;
bottom: 35%;
right: 16px;
}
@media (max-width:$tablets) {
@media (max-width:1024px) {
height: 73px;
bottom: 60px;
right: 22px;
}
}
.link {
@ -38,7 +40,7 @@
width: 66px;
height: 66px;
background-color: $color-gray6;
background-color: #C4C4C4;
border-radius: 100%;
display: flex;
align-items: center;

View File

@ -1,13 +0,0 @@
<svg width="66" height="137" viewBox="0 0 66 137" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M66 104C66 122.225 51.2254 137 33 137C14.7746 137 0 122.225 0 104C0 85.7746 14.7746 71 33 71C51.2254 71 66 85.7746 66 104Z" fill="#C4C4C4"/>
<path d="M44.7428 107.396C44.741 107.696 44.6177 107.995 44.373 108.226L44.3728 108.226C43.8668 108.704 43.037 108.703 42.5311 108.226L42.5232 108.235L42.5311 108.226L33.3457 99.5599L33.0712 99.3009L32.7967 99.5599L23.6118 108.226C23.1055 108.703 22.2757 108.703 21.7698 108.226L21.7697 108.226C21.5257 107.996 21.4025 107.697 21.4 107.398C21.4019 107.098 21.5251 106.799 21.7698 106.568L21.7698 106.568L32.1506 96.7738C32.4013 96.5373 32.7333 96.4158 33.0712 96.4158C33.4093 96.4158 33.7415 96.5376 33.9922 96.774L44.3728 106.568L44.3729 106.568C44.6171 106.798 44.7403 107.097 44.7428 107.396Z" fill="white" stroke="white" stroke-width="0.8"/>
<g clip-path="url(#clip0_3751_655)">
<path d="M33.0083 0H32.9917C14.7964 0 0 14.8005 0 33C0 40.2188 2.3265 46.9095 6.28237 52.3421L2.16975 64.6016L14.8541 60.5468C20.0723 64.0035 26.2969 66 33.0083 66C51.2036 66 66 51.1954 66 33C66 14.8046 51.2036 0 33.0083 0Z" fill="#4CAF50"/>
<path d="M52.21 46.6001C51.4139 48.8483 48.2542 50.7128 45.7338 51.2573C44.0095 51.6244 41.7573 51.9173 34.1755 48.774C24.4777 44.7563 18.2324 34.9016 17.7457 34.2623C17.2795 33.6229 13.8269 29.0441 13.8269 24.3086C13.8269 19.5731 16.2318 17.2673 17.2012 16.2773C17.9973 15.4646 19.3132 15.0934 20.5754 15.0934C20.9838 15.0934 21.3509 15.114 21.6809 15.1305C22.6503 15.1718 23.137 15.2295 23.7764 16.7599C24.5725 18.678 26.5113 23.4135 26.7423 23.9003C26.9774 24.387 27.2125 25.047 26.8825 25.6864C26.5732 26.3464 26.3009 26.6393 25.8142 27.2003C25.3274 27.7613 24.8654 28.1903 24.3787 28.7925C23.9332 29.3164 23.4299 29.8774 23.9909 30.8468C24.5519 31.7955 26.4907 34.9594 29.3452 37.5004C33.0288 40.7798 36.0153 41.8275 37.0837 42.273C37.8798 42.603 38.8285 42.5246 39.4102 41.9059C40.1485 41.1098 41.0602 39.7898 41.9883 38.4904C42.6483 37.5581 43.4815 37.4426 44.356 37.7726C45.247 38.082 49.9619 40.4126 50.9313 40.8953C51.9007 41.382 52.54 41.613 52.7752 42.0214C53.0062 42.4298 53.0062 44.3479 52.21 46.6001Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_3751_655">
<rect width="66" height="66" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,5 +1,3 @@
@import "../../../variaveis";
.newsLetter {
width: 100%;
padding: 16px 0;
@ -12,7 +10,7 @@
width: 37.03125%;
margin: 0 auto;
@media (max-width:$tablets) {
@media (max-width:1024px) {
row-gap: 16px;
// margin: 0 16px;
width: 96.875%;
@ -23,7 +21,7 @@
width: 94%;
}
@media (max-width:$phone) {
@media (max-width:490px) {
width: 91.42%;
}
@ -31,7 +29,7 @@
.newsLetter__title {
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
font-size: 18px;
@ -40,18 +38,18 @@
font-variant: small-caps;
text-transform: uppercase;
color: $color-gray8;
color: #303030;
margin: 0;
margin-bottom: 8px;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 36px;
line-height: 42px;
}
@media (max-width:$tablets) {
@media (max-width:1024px) {
font-size: 14px;
line-height: 16px;
}
@ -64,7 +62,7 @@
justify-content: space-between;
column-gap: 10px;
@media (max-width:$tablets) {
@media (max-width:1024px) {
row-gap: 16px;
flex-direction: column;
}
@ -75,7 +73,7 @@
// max-width: 340px;
height: 42px;
border-radius: 4px;
border: 1px solid $color-gray5;
border: 1px solid #E5E5E5;
outline: none;
padding: 0 16px;
@ -83,20 +81,20 @@
font-size: 14px;
line-height: 16px;
color: $color-gray6;
color: #C4C4C4;
&::placeholder {
color: $color-gray6;
color: #C4C4C4;
}
@media (min-width:$full) {
@media (min-width:2500px) {
height: 59px;
min-width: 668px;
font-size: 28px;
line-height: 33px;
}
@media (max-width:$tablets) {
@media (max-width:1024px) {
max-width: 96.875%;
}
@ -111,14 +109,14 @@
width: 91.875%;
}
@media (max-width:$phone) {
@media (max-width:490px) {
width: 90.4%;
}
}
&__submit {
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
font-size: 12px;
@ -131,7 +129,7 @@
color: $color-white;
color: #FFFFFF;
width: 100%;
max-width: 126px;
@ -140,18 +138,18 @@
outline: none;
border: none;
background: $color-black;
background: #000000;
box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
border-radius: 4px;
@media (min-width:$full) {
@media (min-width:2500px) {
min-width: 246px;
height: 59px;
font-size: 24px;
line-height: 28px;
}
@media (max-width:$tablets) {
@media (max-width:1024px) {
max-width: none;
}

View File

@ -6,7 +6,7 @@
color: $color-gray2;
bottom: 0;
width: 100%;
background-color: $color-black;
background-color: #000;
&__wrapper {
@ -16,7 +16,7 @@
align-items: center;
margin: 0 100px;
@media (max-width: $tablets) {
@media (max-width: 1024px) {
flex-direction: column;
align-items: flex-start;
margin: 0 16px;
@ -25,7 +25,7 @@
}
&__address {
color: $color-white;
color: #fff;
font-family: $font-family;
font-style: normal;
font-weight: 400;
@ -35,7 +35,7 @@
width: 100%;
max-width: 269px;
@media(min-width:$full) {
@media(min-width:2500px) {
font-size: 20px;
line-height: 27px;
max-width: none;
@ -43,7 +43,7 @@
min-width: 537px;
}
@media(max-width:$tablets) {
@media(max-width:1024px) {
margin-bottom: 16px;
order: 2;
}
@ -62,13 +62,13 @@
column-gap: 11px;
@media (min-width: $full) {
@media (min-width: 2500px) {
min-width: 690px;
}
@media (max-width: $tablets) {
@media (max-width: 1024px) {
justify-content: flex-start;
margin: 0;
margin-bottom: 23px;
@ -82,17 +82,17 @@
width: 36px;
height: 20.2px;
@media(min-width:$full) {
@media(min-width:2500px) {
width: 70px;
height: 39.27px;
}
@media (max-width: $tablets) {
@media (max-width: 1024px) {
width: 35px;
height: 20.13px;
}
@media (max-width: $phone) {
@media (max-width: 490px) {
width: 30px;
height: 17px;
@ -126,7 +126,7 @@
width: 53px;
height: 33px;
@media(min-width:$full) {
@media(min-width:2500px) {
width: 103.52px;
height: 64.44px;
}
@ -144,11 +144,11 @@
margin: 0;
@media(min-width:$full) {
@media(min-width:2500px) {
min-width: 388.98px;
}
@media(max-width:$tablets) {
@media(max-width:1024px) {
order: 3;
padding: 0;
}
@ -157,7 +157,7 @@
width: 100%;
min-width: 108.5px;
@media(min-width:$full) {
@media(min-width:2500px) {
min-width: 189PX;
}
}
@ -175,7 +175,7 @@
line-height: 12px;
@media(min-width:$full) {
@media(min-width:2500px) {
font-size: 18px;
line-height: 25px;
}
@ -186,7 +186,7 @@
width: 28.66px;
height: 15.65px;
@media(min-width:$full) {
@media(min-width:2500px) {
width: 55.98px;
height: 30.55px;
}
@ -206,10 +206,10 @@
font-size: 10px;
line-height: 12px;
text-decoration: none;
color: $color-white;
color: #fff;
text-transform: capitalize;
@media(min-width:$full) {
@media(min-width:2500px) {
font-size: 18px;
line-height: 25px;
}
@ -218,7 +218,7 @@
margin-right: 8px;
width: 100%;
@media(min-width:$full) {
@media(min-width:2500px) {
margin-right: 10px;
min-width: 100px;
}
@ -231,7 +231,7 @@
width: 44.92px;
height: 16px;
@media(min-width:$full) {
@media(min-width:2500px) {
width: 87.73px;
height: 31.24px;
}

View File

@ -1,5 +1,3 @@
@import "../../../variaveis";
.wrapper {
@media (max-width:1025px) {
padding: 0 16px;
@ -12,7 +10,7 @@
max-width: 215px;
padding: 0;
@media (min-width: $full) {
@media (min-width: 2500px) {
max-width: 390px;
}
@ -24,7 +22,7 @@
width: 35px;
height: 35px;
@media (min-width: $full) {
@media (min-width: 2500px) {
width: 70px;
height: 70px;
}
@ -45,7 +43,7 @@
text-transform: lowercase;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 28x;
line-height: 33px;
}

View File

@ -15,23 +15,23 @@ export const SocialMedia = () => {
<div className={styleSocialMedia["wrapper"]}>
<div className={styleSocialMedia["wrapper__social__media"]}>
<IconLink link={"https://web.facebook.com/digitalm3"}
<IconLink link={"/"}
sourceImg={facebook}
altText="Logo da rede social "
/>
<IconLink link={"https://www.instagram.com/m3.ecommerce/"}
<IconLink link={"/"}
sourceImg={instagram}
altText="Logo da rede social "
/>
<IconLink link={"https://twitter.com/eCommerce_Br/status/1443210495784366089"}
<IconLink link={"/"}
sourceImg={twitter}
altText="Logo da rede social "
/>
<IconLink link={"https://www.youtube.com/@m3e-commerce796"}
<IconLink link={"/"}
sourceImg={youtube}
altText="Logo da rede social "
/>
<IconLink link={"https://www.linkedin.com/company/m3ecommerce/"}
<IconLink link={"/"}
sourceImg={linkedin}
altText="Logo da rede social "
/>

View File

@ -1,5 +1,3 @@
@import "../../../variaveis";
.footer {
width: 100%;
@ -12,11 +10,11 @@
padding: 50px 0;
position: relative;
@media (min-width:$full) {
@media (min-width:2500px) {
height: 239px;
}
@media (max-width: $tablets) {
@media (max-width: 1024px) {
flex-direction: column;
width: 96.875%;
max-width: 992px;

View File

@ -3,7 +3,7 @@ import { HeaderTop } from "./HeaderDesk/HeaderTop";
import { HeaderBottom } from "./HeaderDesk/HeaderBottom";
import { HeaderMobile } from "./HeaderMobile/HeaderMobile";
import styleHeader from './Header.module.scss';
import styleHeader from './styles/Header.module.scss';
export const Header = () => {
return (

View File

@ -1,5 +1,5 @@
import React from "react";
import styleHeader from '../Header.module.scss';
import styleHeader from '../styles/Header.module.scss';
import { Link } from "react-router-dom"
export const HeaderBottom = () => {
@ -7,10 +7,10 @@ export const HeaderBottom = () => {
<div className={styleHeader["header__bottom"]}>
<nav className={styleHeader["navBar__items"]}>
<Link className={styleHeader["list__items__link"]} to="/institucional/sobre">
<Link className={styleHeader["list__items__link"]} to="/cursos">
Cursos
</Link>
<Link className={styleHeader["list__items__link"]} to="/institucional/sobre">
<Link className={styleHeader["list__items__link"]} to="/saiba-mais">
Saiba Mais
</Link>
<Link className={styleHeader["list__items__link"]} to="/institucional/sobre">

View File

@ -3,28 +3,28 @@ import logo from "../assets/svgs/logo.svg";
import search from "../assets/svgs/search.svg";
import cart from "../assets/svgs/cart.svg";
import styleHeader from '../Header.module.scss';
import styleHeader from '../styles/Header.module.scss';
import { Link } from "react-router-dom";
export const HeaderTop = () => {
return (
<div className={styleHeader["header__top"]}>
<div className={styleHeader["container__header__top"]}>
<Link to="/institucional/sobre" className={styleHeader["container__logo"]}>
<Link to="/" className={styleHeader["container__logo"]}>
< img src={logo} alt="Logo M3" className={styleHeader["container__logo__img"]} />
</Link>
<form className={styleHeader["container__search"]}>
<input className={styleHeader["container__search__input"]} type="text" placeholder="Buscar..." />
<Link className={styleHeader["container__search__link"]} to="/institucional/sobre">
<a className={styleHeader["container__search__link"]} href="/">
<img className={styleHeader["container__search__link__img"]} src={search} alt="Icone de busca" />
</Link>
</a>
</form>
<div className={styleHeader["container__menu"]} >
<span className={styleHeader["container__menu__enter"]}>
<Link to="/institucional/sobre">Entrar</Link>
<a href="/">Entrar</a>
</span>
<span className={styleHeader["container__menu__cart"]}>
<Link to="/institucional/sobre" >
<Link to="/" >
<img src={cart} alt="icone de cart" />
</Link>
</span>

View File

@ -2,7 +2,7 @@ import React from "react";
import { Link } from "react-router-dom";
import closeIcon from "../assets/svgs/icon-close.svg";
import styleHeader from '../Header.module.scss';
import styleHeader from '../styles/Header.module.scss';
interface MenuMobile {
isOpenMenu: boolean;
@ -29,14 +29,16 @@ export const BurguerMenu = ({ isOpenMenu, setisOpenMenu }: MenuMobile) => {
</span>
</div>
</div>
{/* Esse nav vai viraar um componente */}
<nav className={styleHeader["navBar__items"]}>
<Link className={styleHeader["list__items__link"]} to="/institucional/sobre">
{/* esse "a" vai virar um componente */}
<Link className={styleHeader["list__items__link"]} to="/cursos">
Cursos
</Link>
<Link className={styleHeader["list__items__link"]} to="/institucional/sobre">
<Link className={styleHeader["list__items__link"]} to="/saiba-mais">
Saiba Mais
</Link>
<Link className={styleHeader["list__items__link"]} to="/institucional/sobre">
<Link className={styleHeader["list__items__link"]} to="/institucional/">
Institucional
</Link>
</nav>

View File

@ -4,7 +4,7 @@ import search from "../assets/svgs/search.svg";
import cart from "../assets/svgs/cart.svg";
import burguerIcon from "../assets/svgs/burger-icon.svg";
import styleHeader from '../Header.module.scss';
import styleHeader from '../styles/Header.module.scss';
import { BurguerMenu } from "./BurguerMenu";
@ -23,13 +23,13 @@ export const HeaderMobile = () => {
</div>
<div className={styleHeader["container__menu"]} >
<span className={styleHeader["container__menu_cart"]}>
<a href="/institucional/sobre" ><img src={cart} alt="icone de cart" /></a>
<a href="/" ><img src={cart} alt="icone de cart" /></a>
</span>
</div>
</div>
<form className={styleHeader["container__search__mobile"]}>
<input className={styleHeader["container__search__input"]} type="text" placeholder="Buscar..." />
<a className={styleHeader["container__search__link"]} href="/institucional/sobre">
<a className={styleHeader["container__search__link"]} href="/">
<img src={search} alt="Icone de busca" />
</a>
</form>

View File

@ -1,22 +1,19 @@
@import "../../variaveis";
li {
list-style: none;
}
a {
text-decoration: none;
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
font-size: 14px;
line-height: 16px;
text-transform: uppercase;
color: $color-white;
color: #FFFFFF;
position: relative;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 28px;
line-height: 33px;
}
@ -37,12 +34,12 @@ a {
// AREA HEADER TOP
&__top {
background-color: $color-black;
background-color: #000;
display: flex;
height: 75px;
border-bottom: 1px solid $color-gray6;
border-bottom: 1px solid #C4C4C4;
@media (min-width:$full) {
@media (min-width:2500px) {
height: 100px;
}
@ -63,7 +60,7 @@ a {
width: 100%;
max-width: 162px;
@media (min-width:$full) {
@media (min-width:2500px) {
max-width: 265.62px;
}
@ -72,7 +69,7 @@ a {
width: 100%;
height: 25.86px;
@media (min-width:$full) {
@media (min-width:2500px) {
height: 50.5px;
}
}
@ -86,7 +83,7 @@ a {
justify-content: center;
max-width: 264px;
@media (min-width:$full) {
@media (min-width:2500px) {
max-width: none;
width: 24.44444%;
height: 57px;
@ -100,14 +97,14 @@ a {
padding-left: 16px;
border-radius: 5px;
color: $color-gray6;
font-family: $font-family;
color: #C4C4C4;
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 16px;
@media (min-width:$full) {
@media (min-width:2500px) {
width: 100%;
height: 57px;
font-size: 28px;
@ -115,14 +112,14 @@ a {
}
&::placeholder {
color: $color-gray6;
font-family: $font-family;
color: #C4C4C4;
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 16px;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 28px;
line-height: 33px;
}
@ -130,7 +127,7 @@ a {
&:focus {
transition: 0.35s ease;
color: $color-black;
color: #000;
&::-webkit-input-placeholder {
transition: opacity 0.45s ease;
@ -150,7 +147,7 @@ a {
&:focus {
transition: 0.35s ease;
color: $color-black;
color: #000;
&::-webkit-input-placeholder {
transition: opacity 0.45s ease;
@ -177,7 +174,7 @@ a {
top: 7px;
right: 32px;
@media (min-width:$full) {
@media (min-width:2500px) {
top: 14px;
right: 64px;
@ -196,7 +193,7 @@ a {
max-width: 136px;
justify-content: space-between;
@media (min-width:$full) {
@media (min-width:2500px) {
max-width: 214.68px;
@ -205,16 +202,15 @@ a {
&__enter {
a {
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 16px;
text-transform: uppercase;
color: #FFFFFF;
color: $color-white;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 28px;
line-height: 33px;
}
@ -224,7 +220,7 @@ a {
&__cart {
a {
img {
@media (min-width:$full) {
@media (min-width:2500px) {
width: 54.68px;
height: 54.68px;
}
@ -235,7 +231,7 @@ a {
}
.search-container {
width: $phone;
width: 490px;
display: block;
margin: 0 auto;
}
@ -255,11 +251,11 @@ a {
width: 100%;
height: 44px;
@media (min-width:$full) {
@media (min-width:2500px) {
height: 61px;
}
background-color: $color-black;
background-color: #000;
display: flex;
align-items: center;
@ -290,13 +286,13 @@ a {
align-items: center;
padding: 0;
@media (min-width:$full) {
@media (min-width:2500px) {
max-width: 588.62px;
justify-content: space-between;
}
@media (max-width:$tablets) {
@media (max-width:1024px) {
display: flex;
align-items: initial;
flex-direction: column;
@ -315,14 +311,14 @@ a {
bottom: 0;
width: 0;
height: 2px;
background: $color-white;
background: #FFFFFF;
transition: all .45s;
}
@media (max-width:$tablets) {
color: $color-gray6;
@media (max-width:1024px) {
color: #C4C4C4;
}
&:hover::before {
@ -334,7 +330,7 @@ a {
// AREA HEADER MOBILE
&__mobile {
background-color: $color-black;
background-color: #000;
display: flex;
flex-direction: column;
height: auto;
@ -357,13 +353,13 @@ a {
width: 94%;
}
@media (max-width:$phone) {
@media (max-width:490px) {
width: 91.466666666666666666666666666667%;
}
.container__hamburguer {
background-color: $color-white;
background-color: lightgray;
width: 30px;
height: 30px;
}
@ -376,7 +372,7 @@ a {
justify-content: center;
margin: 0 16px;
max-width: 992px;
background-color: $color-white;
background-color: #FFFFFF;
border-radius: 5px;
@media (max-width:768px) {
@ -384,7 +380,7 @@ a {
width: 94%;
}
@media (max-width:$phone) {
@media (max-width:490px) {
width: 91.466666666666666666666666666667%;
}
@ -399,8 +395,8 @@ a {
&::placeholder {
color: $color-gray6;
font-family: $font-family;
color: #C4C4C4;
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-size: 14px;
@ -409,7 +405,7 @@ a {
&:focus {
transition: 0.35s ease;
color: $color-black;
color: #000;
&::-webkit-input-placeholder {
transition: opacity 0.45s ease;
@ -470,10 +466,10 @@ a {
top: 0;
width: 96.484375%;
height: 585px;
background-color: $color-white;
background-color: #FFFFFF;
z-index: 8;
@media (max-width:$phone) {
@media (max-width:490px) {
width: 90.4%;
}
@ -492,7 +488,7 @@ a {
}
.header__menu {
background-color: $color-black;
background-color: #000;
height: 78px;
display: flex;
align-items: center;

View File

@ -1,25 +0,0 @@
import { Outlet } from "react-router-dom"
import { Footer } from "../Footer/Footer"
import { Header } from "../Header/Header"
import { BreadCrumb } from "../BreadCrumb/BreadCreumb"
import styles from "./styles.module.scss"
export const Layout = () => {
return (
<div className={styles["container"]}>
<Header />
<BreadCrumb />
<main className={styles["main"]}>
<Outlet />
</main>
<Footer />
</div >
)
}

View File

@ -1,57 +0,0 @@
@import "../../variaveis";
.container {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
@media (min-width:3000px) {
height: 100vh;
flex: 1;
}
}
.main {
display: flex;
height: auto;
margin: 0 100px;
flex-direction: column;
@media (min-width: 3000px) {
min-height: 897px;
flex: 1;
height: 100vh;
}
@media (max-width:$tablets) {
margin: 0 16px;
// z-index: -9;
}
h1 {
text-align: center;
font-family: $font-family;
font-style: normal;
font-weight: 400;
font-size: 24px;
line-height: 28px;
letter-spacing: 0.1em;
text-transform: uppercase;
color: $color-black1;
@media (min-width:$full) {
font-size: 48px;
line-height: 56px;
}
}
}

View File

@ -9,7 +9,7 @@ interface IconLink {
export const IconLink = ({ link, sourceImg, altText }: IconLink) => {
return (
<li>
<a href={link} target="_blank">
<a href={link}>
<img src={sourceImg} alt={altText} />
</a>
</li>

View File

@ -1,6 +1,7 @@
import { Outlet } from "react-router-dom"
import { Footer } from "../components/Footer/Footer"
import { Header } from "../components/Header/Header"
import { BreadCrumb } from "../components/BreadCrumb/BreadCreumb"
import styles from "./styles.module.scss"
@ -9,10 +10,16 @@ import styles from "./styles.module.scss"
export const Home = () => {
return (
<div className={styles["container"]}>
<h1>HOME</h1>
<Header />
<BreadCrumb />
<main className={styles["main"]}>
<Outlet />
</main>
<Footer />
</div >
)
}

View File

@ -1,16 +1,14 @@
@import "../../variaveis";
.formulario {
display: flex;
flex-direction: column;
padding: 16px;
font-family: $font-family;
font-family: "Roboto";
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 16px;
@media (min-width: $full) {
@media (min-width: 2500px) {
font-size: 28px;
line-height: 32px;
@ -27,18 +25,18 @@
input {
padding: 14px 20px;
border: 1px solid $color-black2;
border: 1px solid #100D0E;
border-radius: 25px;
font-family: $font-family;
font-family: "Roboto";
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 16px;
color: $color-black;
color: #000;
outline: none;
@media (min-width: $full) {
@media (min-width: 2500px) {
font-size: 28px;
line-height: 33px;
@ -47,9 +45,9 @@
}
&::placeholder {
color: $color-gray;
color: gray;
@media (min-width: $full) {
@media (min-width: 2500px) {
font-size: 28px;
line-height: 33px;
@ -60,43 +58,24 @@
}
.invalid {
border: 1px solid $color-red;
border: 1px solid red;
}
.error {
display: flex;
justify-content: end;
font-family: $font-family;
font-family: "Roboto";
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 14px;
color: red;
color: $color-red;
@media (min-width: $full) {
font-size: 24px;
line-height: 28px;
}
}
.success {
font-family: $font-family;
font-style: normal;
font-weight: 400;
font-size: 12px;
line-height: 14px;
/* identical to box height */
color: $color-green;
margin-top: 12.56px;
@media (min-width: $full) {
@media (min-width: 2500px) {
font-size: 24px;
line-height: 28px;
@ -106,12 +85,11 @@
button {
padding: 17px;
background: $color-black;
background: #000;
border-radius: 25px;
color: #fff;
color: $color-white;
@media (min-width: $full) {
@media (min-width: 2500px) {
padding: 14.5px;
font-size: 32px;
line-height: 38px;
@ -124,24 +102,19 @@
justify-content: center;
align-items: center;
.obrigatorio__form {
color: $color-red;
}
label {
order: 2;
text-decoration: underline;
}
input {
order: 3;
width: 18px;
height: 18px;
border: 1px solid $color-black;
border: 1px solid #000;
border-radius: 3px;
margin: 0 4px;
@media (min-width: $full) {
@media (min-width: 2500px) {
width: 36.4px;
height: 35.15px;
@ -149,7 +122,7 @@
}
}
@media (max-width: $tablets) {
@media (max-width: 1024px) {
h2 {
text-align: center;
}

View File

@ -1,9 +1,9 @@
import { Formik, Form, Field, ErrorMessage } from "formik";
import ContactFormSchema from "../../schema/ContactFormSchema";
import { Article } from "./Article";
import style from "./Contact.module.scss";
import style from "./Contato.module.scss";
import InputMask from 'react-input-mask';
import React, { useState } from "react";
interface IFormikValues {
name: string;
email: string;
@ -24,24 +24,18 @@ const initialValues = {
checkbox: false,
};
let listContact: Array<IFormikValues> = []
const formSubmit = (values: IFormikValues) => {
console.log(values);
};
export const Contato = () => {
export const Contact = () => {
const [isValidateForm, setisValidateForm] = useState(false);
return (
<Article title="Preencha o formulario" className={style["title-contact"]}>
<Formik
onSubmit={formSubmit}
initialValues={initialValues}
onSubmit={(values: IFormikValues, actions) => {
listContact.push(values);
actions.resetForm();
console.log(values);
({ ...values }) && setisValidateForm(true);
}}
validationSchema={ContactFormSchema}
>
{({ errors, touched }) => (
@ -87,10 +81,9 @@ export const Contact = () => {
<Field
id="data"
name="data" as={InputMask} mask="99.99.9999"
type="string"
placeholder="00.00.0000"
className={errors.data && touched.data && style["invalid"]}
className={touched.data && style["invalid"]}
/>
<label className={style["label__form"]} htmlFor="telefone">Telefone:</label>
<span className={style["error"]}>
@ -98,7 +91,7 @@ export const Contact = () => {
</span>
<Field
id="telefone"
name="telefone" as={InputMask} mask="(99) 99999-9999"
name="telefone"
type="tel"
placeholder="(00) 00000-0000"
className={errors.telefone && touched.telefone && [style["invalid"]]}
@ -111,7 +104,6 @@ export const Contact = () => {
<Field id="instagram" name="instagram" placeholder="@seuuser" />
<div className={style["checkbox_wrapper"]}>
<span className={style["obrigatorio__form"]}>*</span>
<label className={style["label__form"]} htmlFor="checkbox">Declaro que li e aceito</label>
<span className={style["error"]}>
<ErrorMessage name="checkbox" className={style["form-ivalid-feedback"]} />
@ -125,12 +117,9 @@ export const Contact = () => {
</div>
<button type="submit">CADASTRE-SE</button>
{isValidateForm && (
<span className={style["success"]}>*Formulario enviado com sucesso!</span>
)}
</Form>
)}
</Formik>
</Article >
</Article>
);
};

View File

@ -3,7 +3,7 @@ import { Article } from './Article';
export const Delivery = () => {
export const Entrega = () => {
return (
<Article title='Entrega'>
<p>

View File

@ -3,7 +3,7 @@ import { Article } from './Article';
export const FormOfPayment = () => {
export const FormaDePagamento = () => {
return (
<Article title='Forma de Pagamento'>
<p>

View File

@ -1,6 +1,3 @@
@import "../../variaveis";
.wrapper__sideBar {
display: flex;
gap: 30px;
@ -8,7 +5,7 @@
// max-height: 465px;
margin: 80px 0 70px;
@media (max-width:$tablets) {
@media (max-width:1024px) {
flex-direction: column;
margin: 40px 0 80px;
max-height: none;
@ -18,20 +15,20 @@
h2 {
margin: 0;
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
font-size: 24px;
line-height: 28px;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 48px;
line-height: 56px;
}
}
nav {
@media (min-width:$full) {
@media (min-width:2500px) {
max-width: 590px;
width: 100%;
}
@ -42,7 +39,7 @@
.sideBar {
display: flex;
flex-direction: column;
border-right: 1px solid $color-black;
border-right: 1px solid #000;
width: 100%;
min-width: 302px;
height: 100%;
@ -51,21 +48,16 @@
margin: 0;
@media (min-width:$full) {
@media (min-width:2500px) {
min-width: 590px;
max-height: 465px;
}
@media (max-width:$tablets) {
@media (max-width:1024px) {
min-width: none;
border-right: none;
}
@media (max-width:$phone) {
min-width: 0;
}
@ -74,15 +66,15 @@
display: flex;
align-items: center;
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
text-transform: inherit;
padding: 10px 16px;
color: $color-gray2;
color: #7D7D7D;
@media (min-width:$full) {
@media (min-width:2500px) {
height: 58px;
padding: 0 16px;
@ -90,14 +82,14 @@
&.ativo {
background-color: $color-black;
color: $color-white;
background-color: #000;
color: #fff;
font-weight: 700;
font-size: 16px;
line-height: 19px;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 28px;
line-height: 33px;
}
@ -114,27 +106,27 @@
height: 100%;
h2 {
@media (max-width:$tablets) {
@media (max-width:1024px) {
text-align: center;
}
}
p {
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-size: 13px;
line-height: 15px;
margin-bottom: 0;
color: $color-gray2;
color: #7D7D7D;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 26px;
line-height: 30px;
}
@media (max-width:$tablets) {
@media (max-width:1024px) {
text-align: justify;
}
}

View File

@ -1,9 +1,9 @@
import React from "react";
import { NavLink, Outlet } from "react-router-dom";
import styleInstitucional from "./Instituitional.module.scss"
export const Institucional = () => {
import styleInstitucional from "./Institucional.module.scss"
export const Instituicional = () => {
return (
<>

View File

@ -3,7 +3,7 @@ import { Article } from './Article';
export const SecurityAndPrivacy = () => {
export const SegurancaEPrivacidade = () => {
return (
<Article title='Seguranca e Privacidade'>
<p>

View File

@ -3,7 +3,7 @@ import { Article } from './Article';
export const About = () => {
export const Sobre = () => {
return (
<Article title='Sobre'>
<p>

View File

@ -3,7 +3,7 @@ import { Article } from './Article';
export const ExchangeAndEvolution = () => {
export const TrocaEDevolucao = () => {
return (
<Article title='Troca e Devolucao'>
<p>

View File

@ -1,18 +1,9 @@
@import "../variaveis";
.container {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
@media (min-width:3000px) {
height: 100vh;
flex: 1;
}
}
.main {
@ -27,13 +18,9 @@
@media (min-width: 3000px) {
min-height: 897px;
height: 100vh;
flex: 1;
border: 1px solid blue;
}
@media (max-width:$tablets) {
@media (max-width:1024px) {
margin: 0 16px;
// z-index: -9;
@ -41,7 +28,7 @@
h1 {
text-align: center;
font-family: $font-family;
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-size: 24px;
@ -49,9 +36,9 @@
letter-spacing: 0.1em;
text-transform: uppercase;
color: $color-black1;
color: #292929;
@media (min-width:$full) {
@media (min-width:2500px) {
font-size: 48px;
line-height: 56px;
}

View File

@ -1,34 +1,28 @@
import { Routes as ReactRouterRoutes, Route, Navigate } from "react-router-dom"
import { Routes as ReactRouterRoutes, Route } from "react-router-dom"
import { Home } from "./pages/Home"
import { Contact } from "./pages/Intitucional/Contact"
import { Delivery } from "./pages/Intitucional/Delivery"
import { FormOfPayment } from "./pages/Intitucional/FormOfPayment"
import { Institucional } from "./pages/Intitucional"
import { SecurityAndPrivacy } from "./pages/Intitucional/SecurityAndPrivacy"
import { About } from "./pages/Intitucional/About"
import { ExchangeAndEvolution } from "./pages/Intitucional/ExchangeAndEvolution"
import { Layout } from "./components/Layout"
import { Contato } from "./pages/Intitucional/Contato"
import { Entrega } from "./pages/Intitucional/Entrega"
import { FormaDePagamento } from "./pages/Intitucional/FormaDePagamento"
import { Instituicional } from "./pages/Intitucional/Instituicional"
import { SegurancaEPrivacidade } from "./pages/Intitucional/SegurancaEPrivacidade"
import { Sobre } from "./pages/Intitucional/Sobre"
import { TrocaEDevolucao } from "./pages/Intitucional/TrocaEDevolucao"
export const Routes = () => {
return (
<ReactRouterRoutes>
<Route path="/" element={<Layout />}>
<Route index element={<Navigate to="/institucional/sobre" replace />} />
<Route path="institucional" element={<Institucional />}>
<Route path="sobre" element={<About />} />
<Route path="forma-de-pagamento" element={<FormOfPayment />} />
<Route path="entrega" element={<Delivery />} />
<Route path="troca-e-devolucao" element={<ExchangeAndEvolution />} />
<Route path="seguranca-e-privacidade" element={<SecurityAndPrivacy />} />
<Route path="contato" element={<Contact />} />
<Route path="/" element={< Home />}>
< Route path="institucional/sobre" element={<Instituicional />}>
<Route path="sobre" element={<Sobre />} />
<Route path="forma-de-pagamento" element={<FormaDePagamento />} />
<Route path="entrega" element={<Entrega />} />
<Route path="troca-e-devolucao" element={<TrocaEDevolucao />} />
<Route path="seguranca-e-privacidade" element={<SegurancaEPrivacidade />} />
<Route path="contato" element={<Contato />} />
</Route>
</Route>
</ReactRouterRoutes >
)

View File

@ -2,6 +2,7 @@ import * as Yup from "yup";
import {
cpfRegex,
dateRegex,
instaRegex,
phoneRegex
} from "./ContactValidations";
@ -25,5 +26,5 @@ export default Yup.object().shape({
.required("*Campo Obrigatório")
.max(new Date(),'Data de nascimento inválida'),
checkbox: Yup.boolean().oneOf([true], ""),
checkbox: Yup.boolean().oneOf([true], "*"),
});