Merge pull request 'feature/challenge' (#2) from feature/challenge into main

Reviewed-on: #2
This commit is contained in:
Bernardo Cunha Ernani Waldhelm 2022-12-18 23:19:39 +00:00
commit d76cf792df
18 changed files with 12082 additions and 366 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

View File

@ -7,34 +7,189 @@ export default class Footer {
async init() {
await this.selectors();
// this.onUpdate();
await this.onUpdate();
this.footerList();
}
async selectors() {
//Para verificar se o carrinho está vazio e remover a prateleira de produtos:
// vocês devem olhar a doc fornecida no Desafio para aprender a usar o waitElement
this.checkoutVazio = await waitElement(".empty-cart-content");
this.footerCheckoutPayments = await waitElement(".footerCheckout__payments");
this.footerCheckoutVtexPci = await waitElement(".footerCheckout__vtexpci");
this.footerCheckoutDeveloped = await waitElement(".footerCheckout__developedBy");
this.footerPrateleira = await waitElement(".footerCheckout__prateleira");
}
onUpdate() {
async prateleiraFooterHTML() {
this.footerPrateleira.innerHTML += `
<h2 class="footerCheckout__prateleira__title"> Você também pode gostar: </h2>
<ul class="footerCheckout__prateleira__list"></ul>`;
const data = await fetch(
"https://m3academy.myvtex.com/api/catalog_system/pub/products/search/?fq=productClusterIds:319"
).then((response) => response.json());
data.forEach((product, i) => {
const name = product.productName;
const link = product.link;
const urlImg = product.items[0].images[0].imageUrl;
const footerPrateleiraList = document.querySelector(
".footerCheckout__prateleira__list"
);
footerPrateleiraList.innerHTML += `
<li class="footerCheckout__prateleira__item">
<img class="footerCheckout__prateleira__img" src="${urlImg}" alt="Imagem do Produto">
<h3 class="footerCheckout__prateleira__name">
${name}
</h3>
<ul class="footerCheckout__prateleira__sizes">
${product.items
.map((name) => {
return `<li> ${name.name} </li>`;
})
.join("")}
</ul>
<a class="footerCheckout__prateleira__see-more" href="${link}">
VER PRODUTO
</a>
</li> `;
});
this.addCarrossel();
}
async addCarrossel() {
const element = await waitElement(".footerCheckout__prateleira__list");
$(element).slick({
dots: false,
infinite: true,
speed: 300,
slidesToShow: 4,
slidesToScroll: 1,
responsive: [
{
breakpoint: 1025,
settings: {
slidesToShow: 3,
slidesToScroll: 1,
},
},
{
breakpoint: 376,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
},
},
],
});
}
footerList() {
// Adicionando nova structure no footer
this.footerCheckoutPayments.innerHTML = `
<ul class="footerCheckout__payments">
<li class="footerCheckout__payments__cards">
<img alt="Método de Pagamento Master Card"
src="https://agenciamagma.vteximg.com.br/arquivos/masterCardM3Academy.png"
/>
</li>
<li class="footerCheckout__payments__cards">
<img alt="Método de Pagamento Visa"
src="https://agenciamagma.vteximg.com.br/arquivos/visaM3Academy.png"
/>
</li>
<li class="footerCheckout__payments__cards">
<img alt="Método de Pagamento Amex"
src="https://agenciamagma.vteximg.com.br/arquivos/amexM3Academy.png"
/>
</li>
<li class="footerCheckout__payments__cards">
<img alt="Método de Pagamento Elo"
src="https://agenciamagma.vteximg.com.br/arquivos/eloM3Academy.png"
/>
</li>
<li class="footerCheckout__payments__cards">
<img alt="Método de Pagamento HiperCard"
src="https://agenciamagma.vteximg.com.br/arquivos/hiperCardM3Academy.png"
/>
</li>
<li class="footerCheckout__payments__cards">
<img alt="Método de Pagamento Paypal"
src="https://agenciamagma.vteximg.com.br/arquivos/payPalM3Academy.png"
/>
</li>
<li class="footerCheckout__payments__cards">
<img alt="Método de Pagamento Boleto"
src="https://agenciamagma.vteximg.com.br/arquivos/boletoM3Academy.png"
/>
</li>
</ul>
</li>
`;
this.footerCheckoutVtexPci.innerHTML = `
<li class="footerCheckout__stamps__vtex">
<img alt="VTEX" src="https://agenciamagma.vteximg.com.br/arquivos/vtexPCIM3Academy.png">
</li>`;
this.footerCheckoutDeveloped.innerHTML = `
<li>
<a href="https://vtex.com/br-pt/">
<span> Powered By </span>
</a>
</li>
<li>
<a href="https://agenciam3.com/">
<span>Developed By</span>
</a>
</li>
`;
}
async onUpdate() {
//Função qeu fará a verificação se o carrinho está vazio para remover a prateleira de produtos:
// vocês devem olhar a doc fornecida no Desafio para aprender a usar a MutationObserver
// sempre que o carrinho estiver vazio o elemento chcekoutVazio fica display: none e isso pode ser usado como atributo para a MutationObserver
let target = this.checkoutVazio;
let config = { childList: true, attributes: true };
let observer = new MutationObserver((mutations) => {
mutations.forEach(function (mutation) {
console.log(mutation.type);
});
});
observer.observe(target, config);
}
async addCarrossel() {
const elemento = await waitElement("#my-element");
$(elemento).slick({
slidesToShow: 4,
slidesToScroll: 1,
let myCart = document.querySelector("#cart-title");
let target = this.checkoutVazio;
let observer = new MutationObserver((mutations) => {
mutations.forEach(() => {
if (target.style.display == "none") {
this.footerPrateleira.classList.remove("desable");
myCart.classList.remove("desable");
this.prateleiraFooterHTML();
} else {
this.footerPrateleira.classList.add("desable");
myCart.classList.add("desable");
this.footerPrateleira.innerHTML = "";
}
});
window.addEventListener("hashchange", () => {
if (window.location.hash == "#/cart") {
if (target.style.display == "none") {
myCart.classList.remove("desable");
this.footerPrateleira.classList.remove("desable");
this.footerPrateleira.innerHTML = "";
this.prateleiraFooterHTML();
} else {
myCart.classList.add("desable");
}
} else {
this.footerPrateleira.classList.add("desable");
myCart.classList.add("desable");
this.footerPrateleira.innerHTML = "";
}
});
//monitorar display none -> target.style.display === "none"
});
observer.observe(this.checkoutVazio, {
attributes: true,
});
}
}

View File

@ -8,14 +8,268 @@ export default class Header {
async init() {
await this.selectors();
console.log(this.item);
// console.log(this.item);
this.progressBarHTML();
await this.progressBarProgress();
}
async selectors() {
this.item = await waitElement("#my-element", {
this.item = await waitElement("#progressBar", {
//#my-element pode ser a class ou o id do elemento html qeu vocÊ quer pegar
timeout: 5000, // vai esperar 5 segundos antes de rejeitar a promise
interval: 1000, // vai verificar a cada 1 segundo se o elemento existe
});
this.header = await waitElement(".headerCheckout");
this.progressBar = await waitElement("#progressBar");
}
progressBarHTML() {
// Adicionando structure barra progress
if (this.progressBar && window.innerWidth > 1024) {
//<img src="imgs/amex.png">
this.progressBar.innerHTML = `
<ul>
<li>
<div class="containerLi-primeira">
<div>
<p class="progress-bar-text">
Meu Carrinho
</p>
<p id="progress-bar-circle-1" class="progress-bar-circle-1 active"> </p>
<p class="progress-bar-line-1"> </p>
</div>
</div>
</li>
<li class="central">
<div class="containerLi-segunda">
<div>
<p class="progress-bar-text">
Dados Pessoais
</p>
<p id="progress-bar-circle-2" class="progress-bar-circle-2"> </p>
</div>
</div>
</li>
<li>
<div class="containerLi-terceira">
<div>
<p class="progress-bar-text">
Pagamento
</p>
<p id="progress-bar-circle-3" class="progress-bar-circle-3"> </p>
<p class="progress-bar-line-2"> </p>
</div>
</div>
</li>
</ul>
`;
}
if (this.progressBar && window.innerWidth <= 1024) {
this.progressBar.innerHTML = "";
}
}
async progressBarProgress() {
if (this.progressBar && window.innerWidth > 1024) {
const progressBarLista = document.querySelectorAll("#progressBar ul li");
progressBarLista.forEach((li) => {
if (window.location.href === "https://m3academy.myvtex.com/checkout/#/cart") {
if (li.children[0].children[0].children["progress-bar-circle-1"]) {
li.children[0].children[0].children["progress-bar-circle-1"].classList.add(
"active"
);
}
if (li.children[0].children[0].children["progress-bar-circle-2"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-2"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-2"
].classList.remove("active");
}
}
if (li.children[0].children[0].children["progress-bar-circle-3"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-3"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-3"
].classList.remove("active");
}
}
} else if (
window.location.href == "https://m3academy.myvtex.com/checkout/#/email" ||
window.location.href == "https://m3academy.myvtex.com/checkout/#/profile" ||
window.location.href == "https://m3academy.myvtex.com/checkout/#/shipping"
) {
if (li.children[0].children[0].children["progress-bar-circle-1"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-1"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-1"
].classList.remove("active");
}
}
if (li.children[0].children[0].children["progress-bar-circle-2"]) {
li.children[0].children[0].children["progress-bar-circle-2"].classList.add(
"active"
);
}
if (li.children[0].children[0].children["progress-bar-circle-3"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-3"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-3"
].classList.remove("active");
}
}
} else if (
window.location.href === "https://m3academy.myvtex.com/checkout/#/payment"
) {
if (li.children[0].children[0].children["progress-bar-circle-1"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-1"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-1"
].classList.remove("active");
}
}
if (li.children[0].children[0].children["progress-bar-circle-2"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-2"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-2"
].classList.remove("active");
}
}
if (li.children[0].children[0].children["progress-bar-circle-3"]) {
li.children[0].children[0].children["progress-bar-circle-3"].classList.add(
"active"
);
}
}
// visualizando mudança no hash
window.addEventListener("hashchange", () => {
if (window.location.hash == "#/cart") {
if (li.children[0].children[0].children["progress-bar-circle-1"]) {
li.children[0].children[0].children[
"progress-bar-circle-1"
].classList.add("active");
}
if (li.children[0].children[0].children["progress-bar-circle-2"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-2"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-2"
].classList.remove("active");
}
}
if (li.children[0].children[0].children["progress-bar-circle-3"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-3"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-3"
].classList.remove("active");
}
}
} else if (
window.location.hash == "#/email" ||
window.location.hash == "#/profile" ||
window.location.hash == "#/shipping"
) {
if (li.children[0].children[0].children["progress-bar-circle-1"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-1"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-1"
].classList.remove("active");
}
}
if (li.children[0].children[0].children["progress-bar-circle-2"]) {
li.children[0].children[0].children[
"progress-bar-circle-2"
].classList.add("active");
}
if (li.children[0].children[0].children["progress-bar-circle-3"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-3"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-3"
].classList.remove("active");
}
}
} else if (window.location.hash == "#/payment") {
if (li.children[0].children[0].children["progress-bar-circle-1"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-1"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-1"
].classList.remove("active");
}
}
if (li.children[0].children[0].children["progress-bar-circle-2"]) {
if (
li.children[0].children[0].children[
"progress-bar-circle-2"
].classList.contains("active")
) {
li.children[0].children[0].children[
"progress-bar-circle-2"
].classList.remove("active");
}
}
if (li.children[0].children[0].children["progress-bar-circle-3"]) {
li.children[0].children[0].children[
"progress-bar-circle-3"
].classList.add("active");
}
}
});
});
}
}
}

View File

@ -1,5 +1,7 @@
@import './common/reset.scss';
@import "./utils/all";
@import "./lib/slick";
@import "./partials/header";
@import "./partials/footer";
@import "./partials/prateleira";
@import "./checkout/checkout.scss";

File diff suppressed because it is too large Load Diff

View File

@ -4,8 +4,26 @@ body .container-main.container-order-form .orderform-template.active {
margin-left: unset;
margin-right: 0;
float: right;
@media #{$mq-mobile}, #{$mq-tablet} {
width: 100%;
}
}
.orderform-template-holder {
width: 66.1132%;
@media #{$mq-tablet}, #{$mq-mobile} {
width: 100%;
display: flex;
flex-direction: column;
}
.client-profile-data, .shipping-data, .payment-data {
@media #{$mq-tablet}, #{$mq-mobile} {
width: 97%;
margin-left: 0;
float: left;
}
}
}
}

View File

@ -1,3 +1,7 @@
.link-choose-products{
margin: 0;
}
.empty-cart {
font-family: $font-family;
&-content {
@ -10,29 +14,75 @@
}
&-title {
font-size: 20px;
font-style: normal;
font-weight: 700;
font-size: 48px;
line-height: 65px;
text-align: center;
text-transform: uppercase;
margin-bottom: 32px;
margin-top: 170px;
@media #{$mq-desktop}{
font-size: 24px;
line-height: 33px;
}
@media #{$mq-tablet}, #{$mq-mobile} {
font-size: 18px;
line-height: 25px;
margin-bottom: 22px;
}
}
&-message {
display: none;
}
&-links {
.link-choose-products {
background: $color-black;
border: none;
border-radius: 5px;
transition: ease-in 0.22s all;
outline: none;
font-family: $font-family;
font-style: normal;
font-weight: 500;
font-size: 14px;
line-height: 16px;
text-align: center;
letter-spacing: 0.05em;
color: $color-white;
text-transform: uppercase;
background: transparent;
border: 1px solid $color-black-1;
width: 638px;
height: 32px;
font-size: 0;
padding: 16px 121px;
@media #{$mq-desktop} {
padding: 16px 65px;
width: 327px;
height: 14px;
}
@media #{$mq-tablet}, #{$mq-mobile} {
padding: 16px 26px;
width: 250px;
height: 14px;
}
&::before {
content: 'Continuar Comprando';
margin: 0 auto;
font-family: $font-family-secundary;
font-style: normal;
font-weight: 400;
font-size: 28px;
line-height: 33px;
text-align: center;
text-transform: uppercase;
color: $color-black-1;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
font-size: 14px;
line-height: 16px;
}
}
}
&:hover {
background: lighten($color-black, 5);
}
}
}
}

View File

@ -8,14 +8,27 @@ html {
min-height: 100%;
}
footer .footerCheckout__wrapper {
width: 94.9734%;
margin: auto auto 0 auto;
}
footer .footerCheckout__prateleira,
header {
// footer .footerCheckout__wrapper {
// width: 94.9734%;
// margin: auto auto 0 auto;
// }
footer .footerCheckout__prateleira{
width: 79.53125%;
margin: 0 auto;
margin: 0 auto 54px;
@media #{$mq-mobile} {
width: 90%;
}
}
header{
width: 79.53125%;
@media #{$mq-mobile} {
width: 90%;
}
}
body {
@ -50,6 +63,10 @@ body {
.container-order-form,
.container-cart {
width: 80%;
@media #{$mq-mobile} {
width: 90%;
}
}
}
@ -66,16 +83,39 @@ body {
color: $color-black !important;
}
#cart-title,
#orderform-title {
color: $color-gray2;
#cart-title {
margin: 18px 0;
text-align: left;
font-family: $font-family;
font-weight: 500;
font-size: 36px;
line-height: 42px;
margin: 40px 0 30px;
letter-spacing: 0.1em;
font-weight: 700;
font-size: 48px;
line-height: 65px;
letter-spacing: 0.05em;
text-transform: uppercase;
color: $color-black;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
font-size: 24px;
line-height: 33px;
}
}
#orderform-title {
color: $color-black-1;
font-family: $font-family;
font-style: normal;
font-weight: 700;
font-size: 48px;
line-height: 65px;
display: flex;
align-items: center;
text-align: center;
text-transform: uppercase;
padding: 17px 0;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
font-size: 24px;
line-height: 33px;
}
@include mq(md, max) {
margin-left: 30px;

View File

@ -0,0 +1,51 @@
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
html {
height: 100%;
min-height: 100%;
}
body {
display: flex;
flex-direction: column;
min-height: 100%;
}
footer {
margin-top: auto;
}

View File

@ -18,7 +18,7 @@
position: relative;
overflow: hidden;
display: block;
margin: 0;
margin: 0 -8px;
padding: 0;
&:focus {
@ -62,10 +62,20 @@
}
}
.slick-slide {
margin: 0 8px;
float: left;
height: 100%;
min-height: 1px;
outline: none;
@media (width: 2500px) {
width: 485px !important;
}
@media (width: 1280px) {
width: 242px !important;
}
[dir="rtl"] & {
float: right;
}
@ -99,16 +109,43 @@
.slick-arrow {
font-size: 0;
position: absolute;
top: 50%;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
border: none;
cursor: pointer;
width: 26px;
height: 56px;
@media #{$mq-desktop} {
width: 14px;
height: 30px;
}
}
.slick-prev {
background: url("https://agenciamagma.vteximg.com.br/arquivos/arrow-left-mini-M3Academy.svg")
no-repeat center center;
background: url("https://agenciamagma.vteximg.com.br/arquivos/arrow-left-M3Academy.svg")
no-repeat center center;
z-index: 4;
left: 10px;
right: 98%;
transform-origin: left;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
background: url("https://agenciamagma.vteximg.com.br/arquivos/arrow-left-mini-M3Academy.svg")
no-repeat center center;
}
}
.slick-next {
background: url("https://agenciamagma.vteximg.com.br/arquivos/arrow-right-M3Academy.svg")
no-repeat center center;
z-index: 4;
right: 10px;
left: 97.5%;
transform-origin: right;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
background: url("https://agenciamagma.vteximg.com.br/arquivos/arrow-right-mini-M3Academy.svg")
no-repeat center center;
}
}
.slick-arrow.slick-hidden {
display: none;

View File

@ -1,24 +1,55 @@
/* _footer.scss */
.footerCheckout {
border-top: none;
color: $color-gray2;
position: static;
bottom: 0;
width: 100%;
&__wrapper {
align-items: center;
display: flex;
justify-content: space-between;
border-top: 1px solid $color-black;
.container {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
padding: 16px 32px;
&::after, &::before{
content: none;
}
@media #{$mq-tablet}, #{$mq-mobile} {
flex-direction: column;
align-items: flex-start;
padding: 16px!important;
}
}
}
&__address {
color: $color-gray2;
color: $color-black;
font-family: $font-family;
font-style: normal;
font-weight: normal;
font-size: 10px;
line-height: 12px;
font-size: 20px;
line-height: 27px;
text-transform: capitalize;
max-width: 40%;
@media #{$mq-desktop}, #{$mq-mobile}, #{$mq-tablet} {
font-size: 10px;
line-height: 14px;
}
@media #{$mq-mobile}, #{$mq-tablet} {
order: 2;
margin: 16px 0;
}
@include mq(md, max) {
margin-bottom: 24px;
max-width: 100%;
@ -30,45 +61,169 @@
display: flex;
justify-self: center;
list-style: none;
margin: 0;
@include mq(md, max) {
align-self: center;
margin-bottom: 12px;
@media #{$mq-mobile}, #{$mq-tablet} {
order: 1;
}
li {
.footerCheckout__payments {
display: flex;
align-items: center;
justify-content: center;
list-style: none;
@media #{$mq-tablet}, #{$mq-mobile} {
margin-left: -4px;
}
&__cards {
img {
height: 40px;
margin-right: 14px;
@media #{$mq-desktop} {
height: 20px;
}
@media #{$mq-tablet}, #{$mq-mobile} {
margin-right: 5px;
height: 20px;
}
}
}
}
}
&__divider {
background-color: $color-gray4;
background-color: $color-gray-6;
display: inline-block;
height: 24px;
height: 43px;
margin: 0 8px;
width: 1px;
@media #{$mq-desktop} {
height: 24px;
}
}
&__vtex {
display: flex;
align-items: center;
justify-content: center;
img {
width: 104px;
height: 65px;
margin-left: 10px;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile}{
width: 53px;
height: 33px;
}
}
}
}
&__developedBy {
align-items: center;
display: flex;
justify-content: end;
align-items: center;
list-style-type: none;
margin: 0;
width: 33%;
gap: 11px;
li:last-child {
margin-left: 16px;
@media #{$mq-mobile}, #{$mq-tablet} {
order: 3;
justify-content: flex-start;
}
a {
align-items: center;
color: $color-gray2;
display: flex;
font-family: $font-family;
font-style: normal;
font-weight: normal;
font-size: 10px;
line-height: 12px;
text-decoration: none;
span {
margin-right: 8px;
li:first-child {
width: auto;
a {
display: flex;
&::after {
content: '';
background: url('https://agenciamagma.vteximg.com.br/arquivos/logoVTEXM3Academy.png') no-repeat center center;
background-size: 100%;
display: block;
height: 32px;
width: 88px;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
width: 44.92px;
height: 16px;
}
}
span {
display: flex;
align-items: center;
font-family: $font-family;
font-style: normal;
font-weight: 400;
margin-right: 10.6px;
font-size: 18px;
line-height: 25px;
color: $color-black;
white-space: nowrap;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
font-size: 9px;
line-height: 12px;
margin-right: 10.97px;
}
}
}
}
li:last-child {
a {
display: flex;
&::after {
content: '';
background: url('https://agenciamagma.vteximg.com.br/arquivos/logoM3M3Academy.png') no-repeat center center;
background-size: 100%;
display: block;
width: 55.98px;
height: 30.56px;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
width: 28.66px;
height: 15.65px;
}
}
span {
display: flex;
align-items: center;
font-family: $font-family;
font-style: normal;
font-weight: 400;
margin-right: 10.6px;
font-size: 18px;
line-height: 25px;
color: $color-black;
white-space: nowrap;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
font-size: 9px;
line-height: 12px;
margin-right: 10.97px;
}
}
}
}
}
.desable {
display: none;
}
}

View File

@ -1,36 +1,248 @@
/* _header.scss */
.headerCheckout {
border-bottom: 1px solid $color-black;
width: 100%;
.container {
width: auto !important;
padding: 30px 236px;
@media #{$mq-desktop} {
padding: 30px 131px;
}
@media #{$mq-tablet}, (max-width: 490px) and (min-width: 301px) {
padding: 16px !important;
}
@media (max-width: 300px) and (min-width: 280px) {
padding: 10px !important;
}
}
&__wrapper {
align-items: center;
display: flex;
justify-content: space-between;
}
&__logo {
img {
height: 52px;
width: auto;
width: 15vw;
max-width: none;
@media #{$mq-desktop} {
width: 12vw;
}
@media #{$mq-tablet}, #{$mq-mobile} {
width: 156px;
height: 33px;
}
}
}
&__safeBuy {
display: flex;
align-items: center;
justify-content: center;
img {
width: 30px;
height: 40px;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
width: 12px;
height: 15px;
}
}
span {
align-items: center;
display: flex;
align-items: center;
margin-left: 8px;
text-transform: uppercase;
font-family: $font-family;
font-style: normal;
font-weight: normal;
font-size: 12px;
line-height: 14px;
color: $color-gray;
font-weight: 400;
font-size: 24px;
line-height: 33px;
color: $color-black;
white-space: nowrap;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
font-size: 12px;
line-height: 16px;
}
}
i {
margin-right: 8px;
}
}
.progress-bar {
width: 872px;
font-family: $font-family-secundary;
@media #{$mq-desktop} {
width: 439px;
}
@media #{$mq-tablet}, #{$mq-mobile} {
display: none;
}
ul {
display: flex;
align-items: flex-start;
justify-content: space-between;
height: 100%;
list-style: none;
margin: 0 !important;
li {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 40%;
.progress-bar-text{
font-size: 24px;
line-height: 28px;
margin-bottom: 22px;
@media #{$mq-desktop} {
font-size: 12px;
line-height: 16px;
margin-bottom: 16px;
}
}
.containerLi-primeira{
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
position: relative;
width: 100%;
.progress-bar-circle-1 {
position: absolute;
transform: translateY(-50%);
left: 10%;
width: 24px;
height: 24px;
background-color: $color-white;
border: 1px solid $color-black;
border-radius: 50%;
z-index: 2;
@media #{$mq-desktop} {
width: 12px;
height: 12px;
left: 20%;
}
&.active {
background: $color-black;
}
}
}
.containerLi-segunda{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
width: 100%;
.progress-bar-circle-2 {
position: absolute;
transform: translateY(-50%);
right: 42%;
width: 24px;
height: 24px;
border-radius: 50%;
background: $color-white;
border: 1px solid $color-black;
z-index: 2;
@media #{$mq-desktop} {
width: 12px;
height: 12px;
}
&.active {
background: $color-black;
}
}
}
.containerLi-terceira{
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-end;
position: relative;
width: 100%;
.progress-bar-circle-3{
position: absolute;
transform: translateY(-50%);
width: 24px;
height: 24px;
right: 7%;
border-radius: 50%;
background: $color-white;
border: 1px solid $color-black;
z-index: 2;
@media #{$mq-desktop} {
width: 12px;
height: 12px;
right: 14%;
}
&.active {
background: $color-black;
}
}
}
.progress-bar-line-1,
.progress-bar-line-2 {
position: absolute;
// bottom: 5px;
width: 111%;
height: 1px;
border-top: 1px solid $color-black;
@media #{$mq-desktop} {
width: 100%;
}
}
.progress-bar-line-1 {
left: 14%;
@media #{$mq-desktop} {
left: 28%;
}
}
.progress-bar-line-2 {
right: 11%;
@media #{$mq-desktop} {
right: 22%;
}
}
}
.central {
width: auto;
white-space: nowrap;
}
}
}
}
.desable {display: none !important;}

View File

@ -1 +1,165 @@
/* _prateleira.scss */
.footerCheckout {
&__prateleira {
&__title {
font-family: $font-family-secundary;
font-style: normal;
font-weight: 400;
font-size: 48px;
line-height: 76px;
text-align: center;
color: $color-black;
margin-bottom: 20px;
@media #{$mq-desktop}, #{$mq-tablet} {
font-size: 24px;
line-height: 38px;
}
@media #{$mq-mobile} {
font-size: 14px;
line-height: 28px;
}
}
&__item {
display: flex !important;
flex-direction: column;
justify-content: space-between;
row-gap: 20px;
@media (max-width: 1281px) and (min-width: 1181px) {
min-height: 423px;
}
@media (max-width: 1180px) and (min-width: 1081px){
min-height: 412px;
}
@media (max-width: 1080px) and (min-width: 1025px) {
min-height: 400px;
}
@media (max-width: 992px) and (min-width: 878px) {
min-height: 412px;
}
@media (max-width: 877px) and (min-width: 750px) {
min-height: 405px;
}
@media (max-width: 749px) and (min-width: 600px) {
min-height: 380px;
}
@media (max-width: 599px) and (min-width: 450px) {
min-height: 340px;
}
@media (max-width: 450px) and (min-width: 376px) {
min-height: 373px;
}
@media (max-width: 375px) and (min-width: 305px) {
min-height: 330px;
}
@media (max-width: 304px) and (min-width: 295px) {
min-height: 356px;
}
@media (max-width: 294px) {
min-height: 373px;
}
}
&__name {
font-family: $font-family;
font-size: 26px;
line-height: 36px;
text-align: center;
color: $color-black;
display: flex;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
font-size: 13px;
line-height: 18px;
}
}
&__sizes {
display: flex;
align-items: center;
justify-content: center;
list-style: none;
column-gap: 5px;
row-gap: 5px;
white-space: nowrap;
overflow-x: auto;
@media (max-width: 1280px), #{$mq-tablet}, #{$mq-mobile} {
flex-wrap: wrap;
}
&::-webkit-scrollbar {
width: 3.5px;
height: 3.5px;
}
&::-webkit-scrollbar-track {
background-color: $color-gray3;
}
&::-webkit-scrollbar-thumb {
background-color: $color-gray5;
}
li {
display: flex;
align-items: center;
justify-content: center;
padding: 5px;
width: auto;
min-width: 42px;
height: 45px;
background-color: $color-blue-100;
border-radius: 8px;
color: $color-white;
font-weight: 700;
font-size: 26px;
line-height: 35px;
letter-spacing: 0.05em;
list-style: none;
text-transform: uppercase;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
padding: 5px;
min-width: 26px;
height: 18px;
font-size: 13px;
line-height: 18px;
}
}
}
&__see-more {
background: $color-blue-100;
display: flex;
align-items: center;
justify-content: center;
padding: 12px;
color: $color-white;
font-size: 26px;
line-height: 35px;
font-weight: 700;
text-align: center;
letter-spacing: 0.05em;
text-transform: uppercase;
border-radius: 8px;
cursor: pointer;
white-space: nowrap;
@media #{$mq-desktop}, #{$mq-tablet}, #{$mq-mobile} {
font-size: 13px;
line-height: 18px;
}
&:hover {
color: $color-white;
text-decoration: none;
}
}
}
}

View File

@ -6,6 +6,7 @@ $font-family-secundary:"Tenor Sans", sans-serif;
/* Colors */
$color-black: #292929;
$color-black-1: #000;
$color-white: #fff;
@ -14,8 +15,12 @@ $color-gray2: #7d7d7d;
$color-gray3: #f0f0f0;
$color-gray4: #8d8d8d;
$color-gray5: #e5e5e5;
$color-gray-6: #C4C4C4;
$color-gray-7: #989898;
$color-gray-8: #ededed;
$color-blue: #4267b2;
$color-blue-100: #00C8FF;
$color-green: #4caf50;
@ -36,3 +41,8 @@ $z-index: (
level4: 20,
level5: 25
) !default;
//media-queries
$mq-desktop: "(min-width: 1025px) and (max-width: 2499px)";
$mq-tablet: "(min-width: 491px) and (max-width: 1024px)";
$mq-mobile: "(min-width: 280px) and (max-width: 490px)";

2
package-lock.json generated
View File

@ -45,6 +45,7 @@
"jquery": "^3.6.0",
"m3-utils": "^0.1.0",
"sass": "^1.38.1",
"slick-carousel": "^1.8.1",
"terser-webpack-plugin": "^5.1.4"
},
"devDependencies": {
@ -19345,6 +19346,7 @@
"m3-utils": "^0.1.0",
"prettier": "^2.3.2",
"sass": "^1.38.1",
"slick-carousel": "^1.8.1",
"terser-webpack-plugin": "^5.1.4",
"webpack": "^5.51.1",
"webpack-merge": "^5.8.0"

9196
yarn.lock Normal file

File diff suppressed because it is too large Load Diff