develop #1

Merged
SabrinaMiranda merged 24 commits from develop into main 2022-12-19 02:38:03 +00:00
12 changed files with 1684 additions and 279 deletions

View File

@ -7,34 +7,205 @@ export default class Footer {
async init() { async init() {
await this.selectors(); await this.selectors();
// this.onUpdate();
/*if (window.location.hash === "#/cart") {
this.onUpdate();
}*/
this.requestAPI();
this.prateleiraItem = await waitElement(".prateleira__ul");
this.events();
this.onUpdate();
//await this.addCarrossel();
this.paymentsIconsHTML();
this.vtexPciIconHTML();
this.developedByLogoHTML();
} }
async selectors() { 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.checkoutVazio = await waitElement(".empty-cart-content");
this.payments = await waitElement(".footerCheckout__payments");
this.vtexPCI = await waitElement(".footerCheckout__vtexpci");
this.developedBy = await waitElement(".footerCheckout__developedBy");
this.cartTitle = await waitElement("#cart-title");
this.prateleira = await waitElement(".footerCheckout__prateleira", {
timeout: 5000,
interval: 1,
});
}
paymentsIconsHTML() {
if (this.payments) {
this.payments.innerHTML = `
<picture class="payments-icons">
<img class="payments-icons__img" src="https://agenciamagma.vteximg.com.br/arquivos/masterCardM3Academy.png" alt="Logo Mastercard"/>
<img class="payments-icons__img" src="https://agenciamagma.vteximg.com.br/arquivos/visaM3Academy.png" alt="Logo Visa"/>
<img class="payments-icons__img" src="https://agenciamagma.vteximg.com.br/arquivos/amexM3Academy.png" alt="Logo American Express"/>
<img class="payments-icons__img" src="https://agenciamagma.vteximg.com.br/arquivos/eloM3Academy.png" alt="Logo Elo"/>
<img class="payments-icons__img" src="https://agenciamagma.vteximg.com.br/arquivos/hiperCardM3Academy.png" alt="Logo Hipercard"/>
<img class="payments-icons__img" src="https://agenciamagma.vteximg.com.br/arquivos/payPalM3Academy.png" alt="Logo PayPal"/>
<img class="payments-icons__img" src="https://agenciamagma.vteximg.com.br/arquivos/boletoM3Academy.png" alt="Logo Boleto"/>
</picture>
`;
}
}
vtexPciIconHTML() {
if (this.vtexPCI) {
this.vtexPCI.innerHTML = `
<picture class="vtexpci-icon">
<img class="vtexpci-icon__img" src="https://agenciamagma.vteximg.com.br/arquivos/vtexPCIM3Academy.png" alt="Ícone Vtex PCI"/>
</picture>
`;
}
}
developedByLogoHTML() {
if (this.developedBy) {
this.developedBy.innerHTML = `
<li>
<a href="https://vtex.com/br-pt/">
<span>Powered By</span>
<picture class="vtex-logo">
<img class="vtex-logo__img" src="https://agenciamagma.vteximg.com.br/arquivos/logoVTEXM3Academy.png" alt="Logo Vtex"/>
</picture>
</a>
</li>
<li>
<a href="https://agenciam3.com/">
<span>Developed By</span>
<picture class="m3-logo">
<img class="m3-logo__img" src="https://agenciamagma.vteximg.com.br/arquivos/logoM3M3Academy.png" alt="Logo M3"/>
</picture>
</a>
</li>
`;
}
}
hashCgange(e) {
if (e.newURL !== "https://m3academy.myvtex.com/checkout/#/cart") {
this.prateleira.classList.add("desativado");
}else {
this.prateleira.classList.remove("desativado");
}
}
events() {
window.addEventListener("hashchange", this.hashCgange.bind(this));
} }
onUpdate() { 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 target = this.checkoutVazio;
let config = { childList: true, attributes: true }; let config = { childList: true, attributes: true };
let observer = new MutationObserver((mutations) => { let observer = new MutationObserver((mutations) => {
mutations.forEach(function (mutation) { mutations.map((mutation) => {
console.log(mutation.type);
});
});
observer.observe(target, config); const status = mutation.target.attributes.style.nodeValue;
if (status == "display:none;") {
this.requestAPI();
} else if (status == "display:block;") {
this.removePrateleira();
}
});
observer.observe(target, config);
});
} }
requestAPI() {
this.prateleira.innerHTML = `
<h3 class="prateleira__title">Você também pode gostar:</h3>
<ul class="prateleira__ul" id="prateleira__ul"></ul>
`;
const api =
"https://m3academy.myvtex.com/api/catalog_system/pub/products/search/?fq=productClusterIds:319";
const products = document.querySelector(".prateleira__ul");
fetch(api)
.then((response) => {
return response.json();
})
.then((data) => {
data.forEach((item) => {
const imgProduct = item.items[0].images[0].imageUrl;
const nameProduct = item.productName;
const linkProduct = item.link;
products.innerHTML += `
<li class="prateleira__li">
<figure class="prateleira__image">
<img src="${imgProduct}" alt="Imagem do Produto" />
</figure>
<div class="prateleira__text">
<h2>${nameProduct}</h2>
<ul>
${item.items.map((name) => `<li>${name.name}</li>`).join("")}
</ul>
<a href="${linkProduct}">
Ver Produto
</a>
</div>
</li>
`;
});
})
.then(() => {
this.addCarrossel();
});
}
removePrateleira() {
this.requestAPI.innerHTML = "";
}
async addCarrossel() { async addCarrossel() {
const elemento = await waitElement("#my-element"); const prateleiraItem = await waitElement("#prateleira__ul");
$(elemento).slick({
$(prateleiraItem).slick({
slidesToShow: 4, slidesToShow: 4,
slidesToScroll: 1, slidesToScroll: 1,
infinite: false,
arrows: true,
responsive: [
{
breakpoint: 1170,
settings: {
slidesToShow: 3,
slidesToScroll: 1,
infinite: false,
arrows: true,
}
},
{
breakpoint: 925,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
infinite: false,
arrows: true,
}
},
{
breakpoint: 635,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
infinite: false,
arrows: true,
}
}
]
}); });
} }
} }

View File

@ -8,14 +8,150 @@ export default class Header {
async init() { async init() {
await this.selectors(); await this.selectors();
console.log(this.item); this.progressBarHTML();
await this.progressBarChange();
} }
async selectors() { async selectors() {
this.item = await waitElement("#my-element", { this.progressBar = 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 progressBarHTML() {
}); if (this.progressBar && window.innerWidth > 1024) {
this.progressBar.innerHTML = `
<ul>
<li>
<div class="container-li">
<div>
<p class="progress-bar-text">Meu Carrinho</p>
<p id="progress-bar-circle-1" class="progress-bar-circle-1"></p>
<p class="progress-bar-line-1"></p>
</div>
</div>
</li>
<li class="progress-bar-center">
<div class="container-li">
<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="container-li">
<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>
`;
} else if (this.progressBar && window.innerWidth <= 1024) {
this.progressBar.innerHTML = "";
}
}
async progressBarChange() {
if (this.progressBar && window.innerWidth > 1024) {
const progressBarList = document.querySelectorAll("#progressBar ul li");
progressBarList.forEach((li) => {
const progressBarCircle1 = li.children[0].children[0].children["progress-bar-circle-1"];
const progressBarCircle2 = li.children[0].children[0].children["progress-bar-circle-2"];
const progressBarCircle3 = li.children[0].children[0].children["progress-bar-circle-3"];
if (window.location.href === "https://m3academy.myvtex.com/checkout/#/cart") {
if (progressBarCircle1) {
progressBarCircle1.classList.add("active");
}
if (progressBarCircle2) {
progressBarCircle2.classList.remove("active");
}
if (progressBarCircle3) {
progressBarCircle3.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 (progressBarCircle1) {
progressBarCircle1.classList.remove("active");
}
if (progressBarCircle3) {
progressBarCircle3.classList.remove("active");
}
if (progressBarCircle2) {
progressBarCircle2.classList.add("active");
}
} else if (window.location.href === "https://m3academy.myvtex.com/checkout/#/payment") {
if (progressBarCircle1) {
progressBarCircle1.classList.remove("active");
}
if (progressBarCircle2) {
progressBarCircle2.classList.remove("active");
}
if (progressBarCircle3) {
progressBarCircle3.classList.add("active");
}
}
window.addEventListener("hashchange", () => {
if (window.location.hash == "#/cart") {
if (progressBarCircle1) {
progressBarCircle1.classList.add("active");
}
if (progressBarCircle2) {
progressBarCircle2.classList.remove("active");
}
if (progressBarCircle3) {
progressBarCircle3.classList.remove("active");
}
} else if (window.location.hash == "#/email" || window.location.hash == "#/profile" || window.location.hash == "#/shipping") {
if (progressBarCircle1) {
progressBarCircle1.classList.remove("active");
}
if (progressBarCircle3) {
progressBarCircle3.classList.remove("active");
}
if (progressBarCircle2) {
progressBarCircle2.classList.add("active");
}
} else if (window.location.hash == "#/payment") {
if (progressBarCircle1) {
progressBarCircle1.classList.remove("active");
}
if (progressBarCircle2) {
progressBarCircle2.classList.remove("active");
}
if (progressBarCircle3) {
progressBarCircle3.classList.add("active");
}
}
});
});
}
} }
} }

View File

@ -3,3 +3,4 @@
@import "./partials/header"; @import "./partials/header";
@import "./partials/footer"; @import "./partials/footer";
@import "./checkout/checkout.scss"; @import "./checkout/checkout.scss";
@import "./partials/prateleira";

View File

@ -1,13 +1,29 @@
.checkout-container { .checkout-container {
.client-pre-email { .client-pre-email {
border-color: $color-gray4; border-color: $color-black2;
font-family: $font-family; font-family: $font-family;
padding-top: 8px; padding-top: 14px;
.client-pre-email-h label {
margin-top: 0;
}
.link-cart { .link-cart {
a { a {
color: $color-black; color: $color-black2;
font-size: 14px; font-family: $font-family-secundary;
font-style: normal;
font-weight: normal;
font-size: 14px;
line-height: 16px;
text-transform: uppercase;
@include mq(xg, min) {
font-size: 28px;
line-height: 33px;
}
&:hover { &:hover {
color: lighen($color-black, 10); color: lighen($color-black, 10);
@ -20,68 +36,151 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
margin-top: 65px;
h3 { h3 {
margin-bottom: 16px; margin-bottom: 16px;
width: 825px;
span { @include mq(xg, min) {
color: #303030; width: 1631px;
font-size: 24px; }
}
small { span,
color: $color-gray4; small {
} font-family: $font-family-secundary;
font-style: normal;
font-weight: normal;
font-size: 20px;
line-height: 23px;
text-transform: uppercase;
color: $color-black2;
margin-bottom: 21px;
@include mq(xg, min) {
font-size: 40px;
line-height: 47px;
margin-bottom: 23px;
}
}
} }
} }
.client-email { .client-email {
margin: 0 0 16px; margin: 0 0 24px 0;
width: 580px;
@include mq(xg, min) {
width: 990px;
}
input { input {
box-shadow: none; box-shadow: none;
color: $color-black; color: $color-black2;
font-family: $font-family; font-family: $font-family;
padding: 0 16px; padding: 15px 14px;
border: 2px solid $color-gray3; border: 1px solid $color-black2;
box-sizing: border-box; box-sizing: border-box;
border-radius: 5px; border-radius: 5px;
width: 443px;
height: 50px;
font-style: normal;
font-weight: normal;
font-size: 12px;
line-height: 16px;
@media (max-width: 490px) { @include mq(xg, min) {
width: auto; width: 765px;
} height: 50px;
font-size: 24px;
line-height: 33px;
}
} }
button { button {
background-color: $color-black; background-color: $color-blue2;
border-radius: 5px; border-radius: 0px 8px 8px 0px;
border: none; border: none;
font-family: $font-family; font-family: $font-family;
height: 54px; color: $color-black2;
right: 0; font-style: normal;
font-weight: 700;
font-size: 14px;
line-height: 19px;
letter-spacing: 0.05em;
text-transform: uppercase;
height: 52px;
width: 126px;
right: 8px;
top: 0; top: 0;
outline: none;
padding: 12px 14px;
position: relative;
cursor: pointer;
@include mq(xg, min) {
font-size: 28px;
line-height: 30px;
width: 219px;
padding: 12px 17px;
}
@media (max-width: 490px) { @media (max-width: 490px) {
height: 48px; height: 48px;
margin: 0; margin: 0;
position: absolute; position: absolute;
} }
&:hover {
background-color: $color-blue3;
}
&:active {
background-color: $color-blue4;
}
} }
span.help.error { span.help.error {
color: red; color: $color-red;
font-style: normal;
font-weight: 700;
font-size: 12px;
line-height: 16px;
@include mq(xg, min) {
font-size: 24px;
line-height: 33px;
}
} }
} }
.emailInfo { .emailInfo {
padding: 16px; padding: 16px;
background-color: $color-white; background-color: $color-white;
border: 1px solid $color-gray4; border: 1px solid $color-black2;
border-radius: 0; border-radius: 5px;
width: 400px;
height: 150px;
margin-bottom: 92px;
@include mq(xg, min) {
width: 776px;
height: 238px;
}
h3 { h3 {
color: #303030; color: $color-black2 !important;
font-family: $font-family;
margin: 0 0 8px 0; margin: 0 0 8px 0;
font-style: normal;
font-weight: 700;
font-size: 12px;
line-height: 16px;
@include mq(xg, min) {
font-size: 24px;
line-height: 33px;
}
} }
ul { ul {
@ -89,13 +188,27 @@
li { li {
span { span {
color: $color-black; color: $color-black2 !important;
font-family: $font-family;
font-style: normal;
font-weight: 700;
font-size: 12px;
line-height: 16px;
@include mq(xg, min) {
font-size: 24px;
line-height: 33px;
}
} }
i::before { i::before {
color: $color-black; color: $color-blue2;
font-size: 1rem; font-size: 1rem;
opacity: 1; opacity: 1;
@include mq(xg, min) {
font-size: 2rem !important;
}
} }
} }
} }
@ -104,6 +217,10 @@
color: $color-black; color: $color-black;
font-size: 6rem; font-size: 6rem;
opacity: 0.5; opacity: 0.5;
@include mq(xg, min) {
font-size: 11rem !important;
}
} }
} }
} }
@ -113,18 +230,44 @@
.client-profile-data { .client-profile-data {
.accordion-group { .accordion-group {
border-radius: 0; border-radius: 0;
border: 1px solid $color-gray4; border: 1px solid $color-gray3;
font-family: $font-family; font-family: $font-family;
padding: 16px; padding: 16px;
border-radius: 8px;
box-shadow: none;
.accordion-heading { .accordion-heading {
span { .accordion-toggle {
color: #303030; font-family: $font-family;
margin-bottom: 8px; font-style: normal;
padding: 0; font-weight: 400;
font-size: 16px;
line-height: 19px;
color: $color-black;
padding: 0
}
.accordion-toggle-active {
span {
font-size: 0;
&::after {
content: "Identificação";
font-family: $font-family-secundary;
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 19px;
color: $color-black;
margin-top: 24px;
padding: 0;
}
}
}
span {
i::before { i::before {
fill: #303030; fill: #303030;
display: none;
} }
} }
@ -147,6 +290,7 @@
.client-notice { .client-notice {
color: $color-black; color: $color-black;
display: none;
} }
p { p {
@ -163,7 +307,7 @@
} }
.help.error { .help.error {
color: red; color: $color-red;
} }
} }
@ -182,18 +326,33 @@
button.submit { button.submit {
border: none; border: none;
border-radius: 5px; border-radius: 8px;
background: $color-black; background: $color-blue2;
margin-top: 8px; margin-top: 44px;
outline: none; outline: none;
transition: all 0.2s linear; transition: all 0.2s linear;
width: 100%;
height: 42px;
padding: 12px 74px;
font-family: $font-family;
font-style: normal;
font-weight: 700;
font-size: 14px;
line-height: 19px;
letter-spacing: 0.05em;
text-transform: uppercase;
white-space: nowrap;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
&:hover { &:hover {
background: lighten($color-black, 5); background: $color-blue3;
} }
&:active { &:active {
background: darken($color-black, 5); background: $color-blue4;
} }
} }
@ -274,7 +433,6 @@
border-color: #303030; border-color: #303030;
color: #303030; color: #303030;
} }
.vtex-omnishipping-1-x-deliveryChannelsToggle { .vtex-omnishipping-1-x-deliveryChannelsToggle {
background-color: #d8c8ac; background-color: #d8c8ac;
border: 1px solid #d8c8ac; border: 1px solid #d8c8ac;
@ -282,8 +440,42 @@
.vtex-omnishipping-1-x-deliveryOptionActive { .vtex-omnishipping-1-x-deliveryOptionActive {
text-shadow: 1.3px 1px lighten($color-black, 50); text-shadow: 1.3px 1px lighten($color-black, 50);
color: #000;
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 19px;
text-transform: uppercase;
} }
} }
} }
} }
.shipping-method-toggle-delivery {
background-color: white !important;
border: 1px solid $color-black !important;
}
.vtex-omnishipping-1-x-deliveryOptionInactive {
width: 50%;
color: #c4c4c4;
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 19px;
text-transform: uppercase;
}
/*.shipping-data,
.payment-data {
.accordion-heading {
.accordion-toggle {
&::after {
content: url("https://agenciamagma.vteximg.com.br/arquivos/lapisM3Academy.png");
cursor: pointer;
}
}
}
}*/
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,7 @@
.row-fluid .full-cart, .row-fluid .orderform-template {
margin-bottom: 0;
}
.empty-cart { .empty-cart {
font-family: $font-family; font-family: $font-family;
&-content { &-content {
@ -9,28 +13,86 @@
} }
} }
&-message {
display: none;
}
&-title { &-title {
font-size: 20px; font-family: $font-family;
font-weight: 700;
font-size: 18px;
line-height: 25px;
text-align: center;
text-transform: uppercase;
color: $color-black2;
margin-top: 170px;
margin-bottom: 0;
@include mq(xg, min) {
font-size: 48px;
line-height: 65px;
}
@include mq(xm, min) {
font-size: 24px;
line-height: 33px;
}
@include mq(xsp, max) {
font-size: 16px;
}
} }
&-links { &-links {
.link-choose-products { .link-choose-products {
background: $color-black; background: transparent;
border: none; border: 1px solid $color-black2;
border-radius: 5px; border-radius: 0px;
transition: ease-in 0.22s all;
outline: none; outline: none;
font-family: $font-family; transition: ease-in 0.22s all;
font-style: normal; margin: 22px 0 262px 0;
font-weight: 500; padding: 16px 26px;
font-size: 14px; cursor: pointer;
line-height: 16px; font-size: 0;
text-align: center;
letter-spacing: 0.05em;
color: $color-white;
text-transform: uppercase;
&:hover { &::after {
content: "Continuar comprando";
font-family: $font-family-secundary;
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 16px;
text-align: center;
letter-spacing: 0.05em;
color: $color-black2;
text-transform: uppercase;
vertical-align: top;
vertical-align: bottom;
@include mq(xg, min) {
font-size: 28px;
line-height: 33px;
}
@include mq(xsp, max) {
font-size: 12px;
}
}
@include mq(xg, min) {
padding: 16px 121px;
}
@include mq(xm, min) {
padding: 16px 65px;
margin: 32px 0 264px 0;
}
@include mq(xsp, max) {
padding: 16px 20px;
}
&:hover {
background: lighten($color-black, 5); background: lighten($color-black, 5);
} }
} }

View File

@ -3,18 +3,22 @@
@import "./checkout-pagamento"; @import "./checkout-pagamento";
@import "./checkout-autenticacao"; @import "./checkout-autenticacao";
* {
box-sizing: border-box;
}
html { html {
height: 100%; height: 100%;
min-height: 100%; min-height: 100%;
} }
footer .footerCheckout__wrapper { header {
width: 94.9734%; width: 100%;
margin: auto auto 0 auto; border-bottom: 1px solid $color-black2;
} }
footer .footerCheckout__prateleira, footer .footerCheckout__prateleira,
header { header {
width: 79.53125%;
margin: 0 auto; margin: 0 auto;
} }
@ -49,7 +53,15 @@ body {
} }
.container-order-form, .container-order-form,
.container-cart { .container-cart {
width: 80%; width: 96.875%;
@include mq(xm, min) {
width: 80%;
}
@include mq(xpp, max) {
width: 91.4666%;
}
} }
} }
@ -68,18 +80,29 @@ body {
#cart-title, #cart-title,
#orderform-title { #orderform-title {
color: $color-gray2; color: $color-black;
font-family: $font-family; font-family: $font-family;
font-weight: 500; font-weight: 700;
font-size: 36px; font-size: 24px;
line-height: 42px; line-height: 33px;
margin: 40px 0 30px; margin: 17px 0 17px;
letter-spacing: 0.1em; letter-spacing: 0.05em;
text-transform: uppercase; text-transform: uppercase;
@include mq(md, max) { @include mq(xg, min) {
margin-left: 30px; font-size: 48px;
line-height: 65px;
margin-bottom: 18px;
} }
@include mq(xm, min) {
margin: 17px 0 16px;
}
}
#orderform-title {
color: $color-black2;
margin-bottom: 17px;
} }
.dropdown { .dropdown {

View File

@ -99,6 +99,12 @@
.slick-arrow { .slick-arrow {
font-size: 0; font-size: 0;
position: absolute; position: absolute;
border: none;
top: 170px;
@include mq(xg, min) {
top: 280px;
}
} }
.slick-prev { .slick-prev {
background: url("https://agenciamagma.vteximg.com.br/arquivos/arrow-left-mini-M3Academy.svg") background: url("https://agenciamagma.vteximg.com.br/arquivos/arrow-left-mini-M3Academy.svg")
@ -107,8 +113,11 @@
left: 10px; left: 10px;
} }
.slick-next { .slick-next {
background: url("https://agenciamagma.vteximg.com.br/arquivos/arrow-left-mini-M3Academy.svg")
no-repeat center center;
z-index: 4; z-index: 4;
right: 10px; right: 10px;
transform: rotateY(180deg);
} }
.slick-arrow.slick-hidden { .slick-arrow.slick-hidden {
display: none; display: none;

View File

@ -1,47 +1,124 @@
/* _footer.scss */ /* _footer.scss */
.footerCheckout { .footerCheckout {
border-top: none;
color: $color-gray2;
&__wrapper { &__wrapper {
width: 100%;
border-top: 1px solid $color-black2;
align-items: center; align-items: center;
display: flex; display: flex;
justify-content: space-between; padding: 22px 0;
@include mq(xg, min) {
padding: 30px 0;
}
@include mq(xm, min) {
padding: 16px 0;
}
}
.container {
width: 96.875%;
display: grid;
grid-template-columns: 1fr;
margin: auto auto 0 auto;
@include mq(xm, min) {
display: flex;
width: 94.9734%;
align-items: center;
justify-content: space-between;
}
} }
&__address { &__address {
color: $color-gray2; color: $color-black;
font-family: $font-family; font-family: $font-family;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;
font-size: 10px; font-size: 10px;
line-height: 12px; line-height: 14px;
text-transform: capitalize; text-transform: capitalize;
max-width: 40%; grid-area: 2;
margin: 16px 0 16px 0;
@include mq(xg, min) {
font-size: 20px;
line-height: 27px;
}
@include mq(xm, min) {
margin-right: auto;
@include mq(md, max) {
margin-bottom: 24px;
max-width: 100%;
} }
} }
&__stamps { &__stamps {
align-items: center; align-items: center;
display: flex; display: flex;
justify-self: center;
list-style: none; list-style: none;
margin: 0;
grid-area: 1;
@include mq(md, max) { @include mq(xm, min) {
align-self: center; justify-self: center;
margin-bottom: 12px; }
.payments-icons {
display: flex;
gap: 4px;
@include mq(xm, min) {
gap: 13px;
}
@include mq(xppp, max) {
gap: 1px;
}
&__img {
width: auto;
height: 20px;
@include mq(xg, min) {
height: 39px;
}
@include mq(xppp, max) {
height: 17px;
}
}
} }
&__divider { &__divider {
background-color: $color-gray4; background-color: $color-gray6;
display: inline-block; display: inline-block;
height: 24px; height: 24px;
margin: 0 8px; margin: 0 8px;
width: 1px; width: 1px;
margin: 0 10px 0 4px;
@include mq(xm, min) {
margin: 0 10px 0 13px;
}
@include mq(xppp, max) {
margin: 0 4px 0 1px;
}
}
.vtexpci-icon {
&__img {
width: auto;
height: 33px;
@include mq(xg, min) {
height: 64px;
}
@include mq(xppp, max) {
height: 29px;
}
}
} }
} }
@ -50,25 +127,62 @@
display: flex; display: flex;
list-style-type: none; list-style-type: none;
margin: 0; margin: 0;
grid: 3;
@include mq(xm, min) {
margin-left: auto;
}
li:last-child { li:last-child {
margin-left: 16px; margin-left: 10px;
} }
a { a {
align-items: center; align-items: center;
color: $color-gray2; color: $color-black;
display: flex; display: flex;
font-family: $font-family; font-family: $font-family;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;
font-size: 10px; font-size: 9px;
line-height: 12px; line-height: 12px;
text-decoration: none; text-decoration: none;
@include mq(xg, min) {
font-size: 18px;
line-height: 25px;
}
span { span {
margin-right: 8px; margin-right: 10px;
}
}
.vtex-logo {
&__img {
width: 44px;
height: auto;
@include mq(xg, min) {
width: 87px;
}
}
}
.m3-logo {
&__img {
width: 26px;
height: auto;
@include mq(xg, min) {
width: 55px;
}
} }
} }
} }
.desativado {
display: none !important;
}
} }

View File

@ -1,22 +1,186 @@
/* _header.scss */ /* _header.scss */
.headerCheckout { .headerCheckout {
.container { .container {
width: auto !important; width: 96.875%;
padding: 16px 0 !important;
@include mq(xm, min) {
width: 79.53125%;
padding: 29px 0 !important;
}
@include mq(xp, max) {
width: 91.4666%;
}
#progressBar {
width: 440px;
@include mq(xg, min) {
width: 1081px;
}
ul {
list-style-type: none;
display: flex;
align-items: center;
justify-content: space-between;
margin: 0 !important;
}
li {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
}
li .container-li {
width: 100%;
display: flex;
flex-direction: column;
justify-content: center;
position: relative;
}
li:first-child .container-li {
align-items: flex-start;
}
li:last-child .container-li {
align-items: flex-end;
}
li .progress-bar-center {
width: auto;
}
li .progress-bar-center .container-li {
align-items: center;
margin-left: 7px;
}
li .container-li div {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: auto;
}
li .container-li div .progress-bar-text {
font-family: $font-family-secundary;
line-height: 14px;
font-size: 12px;
font-weight: 400;
color: $color-black2;
margin-bottom: 9px;
@include mq(xg, min) {
line-height: 28px;
font-size: 24px;
margin-bottom: 15px;
}
}
#progress-bar-circle-1,
#progress-bar-circle-2,
#progress-bar-circle-3 {
width: 12px;
height: 12px;
border: 1px solid $color-black2;
background-color: $color-white;
border-radius: 50%;
z-index: map-get($z-index, level2 );
@include mq(xg, min) {
width: 24px;
height: 24px;
}
}
#progress-bar-circle-1.active,
#progress-bar-circle-2.active,
#progress-bar-circle-3.active {
border: none;
background-color: $color-black2;
}
.progress-bar-line-1,
.progress-bar-line-2 {
position: absolute;
width: 176px;
height: 1px;
border-top: 1px solid $color-black2;
bottom: 5px;
@include mq(xg, min) {
width: 449px;
bottom: 10px;
}
}
.progress-bar-line-1 {
left: 25%;
@include mq(xg, min) {
left: 21.5%;
}
}
.progress-bar-line-2 {
right: 25%;
@include mq(xg, min) {
right: 21.5%;
}
}
}
} }
&__wrapper { &__wrapper {
align-items: center;
display: flex; display: flex;
align-items: center;
justify-content: space-between; justify-content: space-between;
@include mq(xm, min) {
display: grid;
grid-template-columns: 2fr 1fr 2fr;
align-items: center;
}
} }
&__logo { &__logo {
display: block;
max-width: 155px;
width: 100%;
@include mq(xg, min) {
min-width: 382px;
}
@include mq(xpp, max) {
min-width: 45.2%;
}
img { img {
height: 52px; width: 100%;
width: auto; height: auto;
} }
} }
&__safeBuy { &__safeBuy {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 8px;
min-width: 119px;
@include mq(xm, min) {
width: 100%;
}
span { span {
align-items: center; align-items: center;
display: flex; display: flex;
@ -25,12 +189,21 @@
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;
font-size: 12px; font-size: 12px;
line-height: 14px; line-height: 16px;
color: $color-gray; color: $color-black;
@include mq(xg, min) {
line-height: 33px;
font-size: 24px;
}
} }
i { img {
margin-right: 8px; width: 12px;
@include mq(xg, min) {
width: 29px;
}
} }
} }
} }

View File

@ -1 +1,143 @@
/* _prateleira.scss */ /* _prateleira.scss */
.footerCheckout__prateleira {
width: 79.375%;
@include mq(xg, min) {
width: 79.76%;
}
.prateleira {
&__title {
font-family: $font-family-secundary;
font-style: normal;
font-weight: 400;
font-size: 24px;
line-height: 38px;
color: $color-black2;
text-align: center;
@include mq(xg, min) {
font-size: 48px;
line-height: 76px;
}
}
&__ul {
display: flex;
justify-content: center;
margin: 0;
gap: 16px;
@include mq(xg, min) {
gap: 19px;
}
}
&__li {
width: 242px;
display: flex;
flex-direction: column;
align-items: center;
@include mq(xg, min) {
width: 485px;
}
}
&__image {
width: 242px;
height: auto;
margin-bottom: 20px;
margin-inline-start: 0px;
margin-inline-end: 0px;
@include mq(xg, min) {
width: 485px;
margin-bottom: 21px;
}
}
&__text {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
h2 {
font-family: $font-family;
font-style: normal;
font-weight: 400;
font-size: 13px;
line-height: 18px;
color: $color-black2;
text-align: center;
margin: 0;
@include mq(xg, min) {
font-size: 26px;
line-height: 35px;
}
}
a {
background-color: $color-blue2;
border-radius: 8px;
font-family: $font-family;
font-style: normal;
font-weight: 700;
font-size: 13px;
line-height: 18px;
color: $color-white;
letter-spacing: 0.05em;
width: 242px;
height: 42px;
padding: 12px 72px;
text-align: center;
white-space: nowrap;
text-transform: uppercase;
cursor: pointer;
margin-bottom: 56px;
@include mq(xg, min) {
width: 485px;
height: 59px;
font-size: 26px;
line-height: 35px;
padding: 12px 0 12px 0;
}
}
ul {
display: flex;
width: fit-content;
gap: 10px;
margin: 20px 0 20px 0;
li {
background-color: $color-blue2;
border-radius: 8px;
display: flex;
align-items: center;
font-family: $font-family;
font-style: normal;
font-weight: 700;
font-size: 13px;
line-height: 18px;
color: $color-white;
letter-spacing: 0.05em;
padding: 5px;
text-align: center;
text-transform: uppercase;
@include mq(xg, min) {
height: 45px;
font-size: 26px;
line-height: 35px;
padding: 8px 5px;
}
}
}
}
}
}

View File

@ -6,6 +6,7 @@ $font-family-secundary:"Tenor Sans", sans-serif;
/* Colors */ /* Colors */
$color-black: #292929; $color-black: #292929;
$color-black2: #000000;
$color-white: #fff; $color-white: #fff;
@ -14,19 +15,34 @@ $color-gray2: #7d7d7d;
$color-gray3: #f0f0f0; $color-gray3: #f0f0f0;
$color-gray4: #8d8d8d; $color-gray4: #8d8d8d;
$color-gray5: #e5e5e5; $color-gray5: #e5e5e5;
$color-gray6: #C4C4C4;
$color-gray7: #989898;
$color-gray8: #EDEDED;
$color-blue: #4267b2; $color-blue: #4267b2;
$color-blue2: #00C8FF; //button
$color-blue3: #3fd4fd; //buttom hover
$color-blue4: #11bae9; //buttom active
$color-green: #4caf50; $color-green: #495e49;
$color-green2: #298541;
$color-red: #FF0000; //error
/* Grid breakpoints */ /* Grid breakpoints */
$grid-breakpoints: ( $grid-breakpoints: (
xs: 0, xs: 0,
cstm: 400, xsp: 325px,
xppp: 350px,
xpp: 376px,
cstm: 400px,
sm: 576px, sm: 576px,
xp: 599px,
md: 768px, md: 768px,
lg: 992px, lg: 992px,
xl: 1200px xm: 1025px,
xl: 1200px,
xg : 2500px
) !default; ) !default;
$z-index: ( $z-index: (