Merge pull request 'feature/template-checkout' (#1) from feature/template-checkout into main

Reviewed-on: #1
This commit is contained in:
Saulo Klein Nery 2022-12-19 03:18:06 +00:00
commit 89d1aef006
21 changed files with 13555 additions and 521 deletions

View File

@ -3,10 +3,13 @@ import { Container } from "m3-utils";
import "slick-carousel";
import Header from "./components/Header";
import Footer from "./components/Footer";
import Cart from "./components/Cart";
import Email from "./components/Email";
import Shipping from "./components/Shipping";
const m3Checkout = new Container({
appName: "m3-checkout",
components: [CheckoutUI, Header, Footer],
components: [CheckoutUI, Header, Footer, Cart, Email, Shipping],
});
m3Checkout.start();

View File

@ -0,0 +1,43 @@
// import waitForEl from "../helpers/waitForEl";
import { waitElement } from "m3-utils";
export default class Cart {
constructor() {
this.init();
this.events();
}
async init() {
await this.selectors();
this.removeCartTitle();
this.mutationObserver();
}
events() {}
async selectors() {
this.cartTitle = await waitElement("#cart-title");
this.cart = await waitElement(".summary-template-holder .row-fluid");
}
mutationObserver() {
this.observer = new MutationObserver(this.handleMutationObserver.bind(this));
this.config = { childList: true, attributes: true };
this.observer.observe(this.cart, this.config);
}
handleMutationObserver(mutations) {
mutations.forEach((mutation) => {
if (mutation.type === "attributes" && mutation.attributeName === "style") {
if (this.cart.style.display === "flex")
this.cartTitle.classList.remove("hide-cart-title");
else if (this.cart.style.display === "none") this.removeCartTitle();
}
});
}
removeCartTitle() {
if (this.cartTitle.style.display === "block")
this.cartTitle.classList.add("hide-cart-title");
}
}

View File

@ -0,0 +1,53 @@
// import waitForEl from "../helpers/waitForEl";
import { waitElement } from "m3-utils";
export default class Email {
constructor() {
this.init();
this.events();
}
async init() {
await this.selectors();
this.addClasses();
}
events() {
window.addEventListener("hashchange", this.addClasses.bind(this));
}
async selectors() {
this.clientProfileData = await waitElement("#client-profile-data");
this.orderFormTitle = await waitElement("#orderform-title");
this.cartTemplate = await waitElement(".cart-template.mini-cart.span4");
}
addClasses() {
this.addBorderToTitle();
this.addClassToclientProfileData();
this.addDisplayNone();
}
addDisplayNone() {
if (window.location.href === "https://m3academy.myvtex.com/checkout/#/email") {
this.cartTemplate.classList.add("display-none");
} else {
if (this.cartTemplate.classList.contains("display-none"))
this.cartTemplate.classList.remove("display-none");
}
}
addBorderToTitle() {
if (window.location.href === "https://m3academy.myvtex.com/checkout/#/email")
this.orderFormTitle.classList.add("border");
else if (this.orderFormTitle.classList.contains("border"))
this.orderFormTitle.classList.remove("border");
}
addClassToclientProfileData() {
if (window.location.href === "https://m3academy.myvtex.com/checkout/#/email")
this.clientProfileData.classList.add("email-active");
else if (this.clientProfileData.classList.contains("email-active"))
this.clientProfileData.classList.remove("email-active");
}
}

View File

@ -6,35 +6,205 @@ export default class Footer {
}
async init() {
this.imgLinks = "https://agenciamagma.vteximg.com.br/arquivos/";
await this.selectors();
// this.onUpdate();
this.events();
this.buildIconList();
this.buildDevelopedByList();
this.buildSlickItems();
this.onUpdate();
}
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.footerIconList = await waitElement(".footerCheckout__stamps");
this.footerDevelopedByList = await waitElement(".footerCheckout__developedBy");
this.checkoutVazio = await waitElement(".empty-cart-content", {
timeout: 5000,
interval: 1000,
});
this.footerPrateleira = await waitElement(".footerCheckout__prateleira");
}
events() {
window.addEventListener("hashchange", this.onUpdate.bind(this));
}
buildSlickItems() {
const slickItems = fetch(
"https://m3academy.myvtex.com/api/catalog_system/pub/products/search/?fq=productClusterIds:319"
)
.then(function (response) {
return response.json();
})
.then(function (data) {
const slickItems = data.map((item) => {
const div = document.createElement("div");
const ul = document.createElement("ul");
const items = item.items;
items.forEach((item) => {
const li = document.createElement("li");
li.classList.add("prateleira__option");
li.innerHTML = item.name;
ul.appendChild(li);
});
div.classList.add("prateleira__item");
const jpg = item.items[0].images[0].imageUrl;
div.innerHTML = `
<img class="prateleira__image" src="${jpg}" />
<h2 class="prateleira__product-name">${item.productName}</h2>
<ul class="prateleira__options">
${ul.innerHTML}
</ul>
<button class="prateleira__button">VER PRODUTO</button>
`;
return div;
});
return slickItems;
});
const buildSlickItems = () => {
slickItems.then((items) => {
items.forEach((item) => {
this.footerPrateleira.appendChild(item);
});
});
};
buildSlickItems();
}
buildIconList() {
this.footerIconList.innerHTML = `
<li class="footerCheckout__payments-icon">
<img src="${this.imgLinks}masterCardM3Academy.png" alt="Logo Cartão Mastercard"/>
</li>
<li class="footerCheckout__payments-icon">
<img src="${this.imgLinks}visaM3Academy.png" alt="Logo Cartão VISA"/>
</li>
<li class="footerCheckout__payments-icon">
<img src="${this.imgLinks}amexM3Academy.png" alt="Logo Cartão American Express"/>
</li>
<li class="footerCheckout__payments-icon">
<img src="${this.imgLinks}eloM3Academy.png" alt="Logo Cartão Elo"/>
</li>
<li class="footerCheckout__payments-icon">
<img src="${this.imgLinks}hiperCardM3Academy.png" alt="Logo Cartão Hipercard"/>
</li>
<li class="footerCheckout__payments-icon">
<img src="${this.imgLinks}payPalM3Academy.png" alt="Logo Paypal"/>
</li>
<li class="footerCheckout__payments-icon">
<img src="${this.imgLinks}boletoM3Academy.png" alt="Logo Boleto"/>
</li>
<li>
<span class="footerCheckout__stamps__divider"></span>
</li>
<li class="footerCheckout__payments-vtex-icon">
<img src="${this.imgLinks}vtexPCIM3Academy.png" alt="Certificado VTEX PCI"/>
</li>
`;
Object.values(this.footerIconList.children).forEach((li, index) => {
const child = li.children[0].classList.contains("footerCheckout__payments")
? li.children[0]
: null;
if (child === null) return;
if (index === 0)
child.innerHTML = `
<ul class="footerCheckout__payments-list">
</ul>
`;
else
child.innerHTML = `
`;
});
}
buildDevelopedByList() {
Object.values(this.footerDevelopedByList.children).forEach((li, index) => {
const a = li.children[0];
if (index === 0)
a.innerHTML = `
<span>Powered By</span>
<img src="${this.imgLinks}logoVTEXM3Academy.png" alt="Logo VTEX" />
`;
else
a.innerHTML = `
<span>Developed By</span>
<img src="${this.imgLinks}logoM3M3Academy.png" alt="Logo M3" />
`;
});
}
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
this.footerPrateleira.style.display = "none";
if (
window.location.href === "https://m3academy.myvtex.com/checkout/#/cart" &&
this.checkoutVazio.style.display === "none"
)
this.footerPrateleira.style.display = "";
let target = this.checkoutVazio;
let config = { childList: true, attributes: true };
let observer = new MutationObserver((mutations) => {
mutations.forEach(function (mutation) {
console.log(mutation.type);
});
mutations.forEach(
function (mutation) {
console.log(mutation);
if (mutation.type === "attributes" && mutation.attributeName === "style") {
if (target.style.display === "none") {
console.log("carrinho cheio");
if (!this.footerPrateleira.classList.contains("slick-initialized"))
this.addCarrossel();
this.footerPrateleira.style.display = "";
} else {
this.footerPrateleira.style.display = "none";
console.log("carrinho vazio");
}
}
}.bind(this)
);
});
observer.observe(target, config);
}
async addCarrossel() {
const elemento = await waitElement("#my-element");
addCarrossel() {
const elemento = this.footerPrateleira;
$(elemento).slick({
slidesToShow: 4,
slidesToScroll: 1,
responsive: [
{
breakpoint: 1025,
settings: {
slidesToShow: 3,
slidesToScroll: 1,
},
},
{
breakpoint: 768,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
},
},
],
});
}
}

View File

@ -4,18 +4,83 @@ import { waitElement } from "m3-utils";
export default class Header {
constructor() {
this.init();
this.events();
}
async init() {
this.urlLinks = {
cart: "https://m3academy.myvtex.com/checkout/#/cart",
email: "https://m3academy.myvtex.com/checkout/#/email",
profile: "https://m3academy.myvtex.com/checkout/#/profile",
shipping: "https://m3academy.myvtex.com/checkout/#/shipping",
payment: "https://m3academy.myvtex.com/checkout/#/payment",
};
await this.selectors();
console.log(this.item);
this.buildProgressBar();
this.progressBarAction();
}
events() {
window.addEventListener("resize", this.onResize.bind(this));
window.addEventListener("hashchange", this.progressBarAction.bind(this));
}
async selectors() {
this.item = await waitElement("#my-element", {
//#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.progressBar = await waitElement("#progressBar");
}
buildProgressBar() {
if (this.progressBar)
if (window.innerWidth > 1024) {
this.progressBar.innerHTML = `
<ul class="progress-bar__list-item">
<li class="progress-bar__item">
<p>Meu carrinho</p>
<div id="progress-circle1" class="progress-bar__circle"></div>
</li>
<li class="progress-bar__item">
<p>Dados pessoais</p>
<div id="progress-circle2" class="progress-bar__circle"></div>
</li>
<li class="progress-bar__item">
<p>Pagamento</p>
<div id="progress-circle3" class="progress-bar__circle"></div>
</li>
</ul>
<div class="progress-bar__wrap-bar"></div>
`;
} else this.progressBar.innerHTML = "";
}
onResize() {
if (this.progressBar.innerHTML === "" && window.innerWidth > 1024) {
this.buildProgressBar();
this.progressBarAction();
} // cria a barra de progresso
if (this.progressBar.innerHTML !== "" && window.innerWidth <= 1024) this.buildProgressBar(); // destroi a barra de progresso
}
colorCircle(itemList, position) {
itemList.forEach((li) => {
const item = li.children[1];
if (item.id === `progress-circle${position}`) item.classList.add("active");
else if (item.classList.contains("active")) item.classList.remove("active");
});
}
progressBarAction() {
const progressBarList = document.querySelectorAll("#progressBar ul li");
let number = 0;
if (window.location.href === this.urlLinks.cart) number = 1;
if (
window.location.href === this.urlLinks.email ||
window.location.href === this.urlLinks.profile ||
window.location.href === this.urlLinks.shipping
)
number = 2;
if (window.location.href === this.urlLinks.payment) number = 3;
this.colorCircle(progressBarList, number);
}
}

View File

@ -0,0 +1,29 @@
// import waitForEl from "../helpers/waitForEl";
import { waitElement } from "m3-utils";
export default class Shipping {
constructor() {
this.init();
this.events();
}
async init() {
await this.selectors();
this.addShippingClass();
}
events() {
window.addEventListener("hashchange", this.addShippingClass.bind(this));
}
async selectors() {
this.paymentData = await waitElement("#payment-data");
}
addShippingClass() {
if (window.location.href === "https://m3academy.myvtex.com/checkout/#/shipping")
this.paymentData.classList.add("shipping");
else if (this.paymentData.classList.contains("shipping"))
this.paymentData.classList.remove("shipping");
}
}

View File

@ -1,5 +1,8 @@
@import "./utils/all";
@import "./lib/slick";
@import "./checkout/checkout.scss";
@import "./partials/header";
@import "./partials/footer";
@import "./checkout/checkout.scss";
@import "./partials/menu";
@import "./partials/autenticacao";
@import "./partials/prateleira";

View File

@ -1,289 +1,284 @@
.checkout-container {
.client-pre-email {
border-color: $color-gray4;
font-family: $font-family;
padding-top: 8px;
.client-pre-email {
border-color: #8d8d8d;
font-family: $font-family;
height: auto;
.link-cart {
a {
color: $color-black;
font-size: 14px;
.link-cart {
a {
color: $black-400;
font-size: 14px;
&:hover {
color: lighen($color-black, 10);
}
}
}
&:hover {
color: lighen($black-400, 10);
}
}
}
.pre-email {
flex-direction: column;
display: flex;
align-items: center;
justify-content: center;
.pre-email {
flex-direction: column;
display: flex;
align-items: center;
justify-content: center;
h3 {
margin-bottom: 16px;
h3 {
margin-bottom: 16px;
span {
color: #303030;
font-size: 24px;
}
span {
color: #303030;
font-size: 24px;
}
small {
color: $color-gray4;
}
}
}
small {
color: #8d8d8d;
}
}
}
.client-email {
margin: 0 0 16px;
.client-email {
margin: 0 0 16px;
input {
box-shadow: none;
color: $color-black;
font-family: $font-family;
padding: 0 16px;
border: 2px solid $color-gray3;
box-sizing: border-box;
border-radius: 5px;
input {
box-shadow: none;
color: $black-400;
font-family: $font-family;
padding: 0 16px;
border: 2px solid $gray-300;
box-sizing: border-box;
border-radius: 5px;
@media (max-width: 490px) {
width: auto;
}
}
@media (max-width: 490px) {
width: auto;
}
}
button {
background-color: $color-black;
border-radius: 5px;
border: none;
font-family: $font-family;
height: 54px;
right: 0;
top: 0;
button {
background-color: $black-400;
border-radius: 5px;
border: none;
font-family: $font-family;
height: 54px;
right: 0;
top: 0;
@media (max-width: 490px) {
height: 48px;
margin: 0;
position: absolute;
}
}
@media (max-width: 490px) {
height: 48px;
margin: 0;
position: absolute;
}
}
span.help.error {
color: red;
}
}
span.help.error {
color: $red-500;
}
}
.emailInfo {
padding: 16px;
background-color: $color-white;
border: 1px solid $color-gray4;
border-radius: 0;
.emailInfo {
padding: 16px;
background-color: $white-500;
h3 {
color: #303030;
margin: 0 0 8px 0;
}
border-radius: 0;
ul {
margin: 0;
h3 {
color: #303030;
margin: 0 0 8px 0;
}
li {
span {
color: $color-black;
}
ul {
margin: 0;
i::before {
color: $color-black;
font-size: 1rem;
opacity: 1;
}
}
}
li {
span {
color: $black-400;
}
i::before {
color: $color-black;
font-size: 6rem;
opacity: 0.5;
}
}
}
i::before {
color: $black-400;
font-size: 1rem;
opacity: 1;
}
}
}
.shipping-data,
.payment-data,
.client-profile-data {
.accordion-group {
border-radius: 0;
border: 1px solid $color-gray4;
font-family: $font-family;
padding: 16px;
i::before {
color: $black-400;
font-size: 6rem;
opacity: 0.5;
.accordion-heading {
span {
color: #303030;
margin-bottom: 8px;
padding: 0;
@include mq(4k, min) {
font-size: 11rem;
}
}
}
}
i::before {
fill: #303030;
}
}
.shipping-data,
.payment-data,
.client-profile-data {
.accordion-group {
border-radius: 0;
a {
align-items: center;
background-color: #303030;
border-radius: 8px;
border: none;
color: $color-white;
display: flex;
justify-content: center;
padding: 6px 5px 6px 8px;
}
}
font-family: $font-family;
padding: 16px;
.accordion-inner {
padding: 0;
.accordion-heading {
span {
color: #303030;
margin-bottom: 8px;
padding: 0;
/* General configurations */
@include mq(4k, min) {
font-size: 32px;
line-height: 37px;
}
.client-notice {
color: $color-black;
}
i::before {
fill: #303030;
}
}
p {
label {
color: $color-black;
font-weight: 500;
}
a {
align-items: center;
background-color: #303030;
border-radius: 8px;
border: none;
color: $white-500;
display: flex;
justify-content: center;
padding: 6px 5px 6px 8px;
}
}
select,
input {
border-radius: 0;
border: 1px solid $color-gray4;
box-shadow: none;
}
.accordion-inner {
padding: 0;
.help.error {
color: red;
}
}
/* General configurations */
.box-client-info-pj {
.link a#is-corporate-client,
.link a#not-corporate-client {
color: $color-black;
font-weight: 500;
text-decoration: underline;
}
}
.client-notice {
color: $black-400;
}
.state-inscription-box span {
font-weight: 500;
}
p {
label {
color: $black-400;
font-weight: 500;
}
button.submit {
border: none;
border-radius: 5px;
background: $color-black;
margin-top: 8px;
outline: none;
transition: all 0.2s linear;
select,
input {
border-radius: 0;
&:hover {
background: lighten($color-black, 5);
}
box-shadow: none;
}
&:active {
background: darken($color-black, 5);
}
}
.help.error {
color: $red-500;
}
}
/* Shipping configurations */
.box-client-info-pj {
.link a#is-corporate-client,
.link a#not-corporate-client {
color: $black-400;
font-weight: 500;
text-decoration: underline;
}
}
.ship-postalCode small a {
color: #303030;
font-weight: 500;
text-decoration: underline;
}
.state-inscription-box span {
font-weight: 500;
}
.vtex-omnishipping-1-x-deliveryGroup {
p {
color: #303030;
font-size: 14px;
font-weight: 500;
}
button.submit {
display: none;
}
.shp-lean {
border: 1px solid $color-gray4;
border-radius: 0;
/* Shipping configurations */
label {
background-color: $color-white;
box-shadow: none;
color: #303030;
padding: 8px 12px;
.ship-postalCode small a {
color: #303030;
font-weight: 500;
text-decoration: underline;
}
svg path {
fill: #d8c8ac;
}
}
}
}
.vtex-omnishipping-1-x-deliveryGroup {
p {
color: #303030;
font-size: 14px;
font-weight: 500;
}
.delivery-address-title {
color: #303030;
font-size: 14px;
font-weight: 500;
}
.shp-lean {
border-radius: 0;
.shp-summary-group-info {
border-color: $color-gray4;
}
label {
background-color: $white-500;
box-shadow: none;
color: #303030;
padding: 8px 12px;
.address-summary {
background: none;
border-color: $color-gray4;
border-radius: 0;
color: #303030;
padding: 12px;
svg path {
fill: #d8c8ac;
}
}
}
}
@include mq(md, max) {
background-position: 8px 9px;
}
.delivery-address-title {
color: #303030;
font-size: 14px;
font-weight: 500;
}
a {
color: #303030;
font-weight: 500;
text-decoration: underline;
}
}
.shp-summary-group-info {
border-color: #8d8d8d;
}
.shp-summary-group-price,
.shp-summary-package {
color: $color-gray4;
}
.address-summary {
background: none;
border-color: #8d8d8d;
border-radius: 0;
color: #303030;
padding: 12px;
.shp-summary-group-price {
padding-right: 16px;
}
@include mq(md, max) {
background-position: 8px 9px;
}
.shp-summary-package {
padding-left: 16px;
}
a {
color: #303030;
font-weight: 500;
text-decoration: underline;
}
}
.vtex-omnishipping-1-x-summaryChange {
border-color: #303030;
color: #303030;
}
.shp-summary-group-price,
.shp-summary-package {
color: #8d8d8d;
}
.vtex-omnishipping-1-x-deliveryChannelsToggle {
background-color: #d8c8ac;
border: 1px solid #d8c8ac;
}
.shp-summary-group-price {
padding-right: 16px;
}
.vtex-omnishipping-1-x-deliveryOptionActive {
text-shadow: 1.3px 1px lighten($color-black, 50);
}
}
}
}
.shp-summary-package {
padding-left: 16px;
}
.vtex-omnishipping-1-x-summaryChange {
border-color: #303030;
color: #303030;
}
.vtex-omnishipping-1-x-deliveryChannelsToggle {
background-color: #d8c8ac;
border: 1px solid #d8c8ac;
}
.vtex-omnishipping-1-x-deliveryOptionActive {
text-shadow: 1.3px 1px lighten($black-400, 50);
}
}
}
}
}

View File

@ -13,7 +13,7 @@
display: none;
}
.cart {
border: 3px solid $color-gray3;
border: 3px solid $gray-300;
box-sizing: border-box;
border-radius: 5px;
padding: 16px;
@ -25,14 +25,11 @@
border-radius: 0;
}
}
.cart-fixed.affix {
position: relative !important;
}
.cart-fixed {
font-family: $font-family;
width: 100%;
h2 {
background: $color-white;
background: $white-500;
border: none;
color: #303030;
font-size: 14px;
@ -48,7 +45,7 @@
}
.cart {
border: 1px solid $color-gray4;
border: 1px solid #8d8d8d;
ul li {
border-top: none;
@ -58,19 +55,19 @@
&:not(:first-child) {
margin-top: 8px;
padding-top: 8px;
border-top: 1px solid #e5e5e5;
border-top: 1px solid $gray-300;
}
.shipping-date,
.price {
color: #7d7d7d;
color: $gray-600;
}
}
}
.summary-template-holder {
border-top: none;
background: $color-white;
background: $white-500;
}
#go-to-cart-button a {
@ -85,24 +82,24 @@
}
#payment-data-submit {
background: $color-black;
background: $black-400;
border: none;
border-radius: 0;
color: $color-white;
color: $white-500;
outline: none;
transition: all 0.2s linear;
&:hover {
background: lighten($color-black, 5);
background: lighten($black-400, 5);
}
&:active {
background: darken($color-black, 5);
background: darken($black-400, 5);
}
}
}
.lookatme {
background-color: $color-white;
background-color: $white-500;
}
.cart-items {
@ -111,7 +108,7 @@
}
th {
color: $color-black;
color: $black-400;
padding: 0 0 16px;
font-style: normal;
font-weight: bold;
@ -127,35 +124,25 @@
}
.product-image {
height: auto;
height: 60px;
object-fit: cover;
padding: 0;
max-width: 100%;
width: 60px;
@include mq(sm, max) {
width: 72px;
}
img {
height: 60px;
max-width: 100%;
width: auto;
@include mq(sm, max) {
height: 72px;
width: auto;
}
}
}
.product-name {
padding-right: 0;
@include mq(lg, max) {
width: 250px;
}
width: 250px;
a {
color: $color-blue;
color: #4267b2;
font-style: normal;
font-weight: normal;
font-size: 12px;
@ -163,7 +150,7 @@
transition: ease-in 0.22s all;
&:hover {
color: darken($color-blue, 10);
color: darken(#4267b2, 10);
text-decoration: none;
}
@ -179,7 +166,7 @@
}
td.shipping-date {
color: $color-gray2;
color: $gray-600;
font-size: 12px;
line-height: 14px;
@ -200,7 +187,7 @@
}
span.list-price {
color: $color-gray2;
color: $gray-600;
font-size: 12px;
line-height: 14px;
text-decoration-line: line-through;
@ -217,7 +204,7 @@
td.quantity {
align-items: center;
border: 1px solid $color-gray3;
border: 1px solid $gray-300;
border-radius: 0;
box-sizing: border-box;
display: flex;
@ -233,8 +220,8 @@
}
input {
background-color: $color-white;
border: 1px solid $color-gray3;
background-color: $white-500;
border: 1px solid $gray-300;
border-radius: 0;
border-width: 0 1px;
display: block;
@ -242,7 +229,7 @@
margin: 0 !important;
padding: 8px 0;
width: 38px;
color: $color-gray2;
color: $gray-600;
box-shadow: none;
@include mq(lg, max) {
@ -253,7 +240,7 @@
.icon-plus-sign,
.icon-minus-sign {
&::before {
color: $color-black;
color: $black-400;
display: block;
font-weight: 500;
padding: 1px 12px;
@ -300,7 +287,7 @@
font-weight: normal;
font-size: 14px;
line-height: 16px;
color: $color-black;
color: $black-400;
}
}
@ -315,7 +302,7 @@
top: 0;
}
.icon::before {
color: $color-gray4;
color: #8d8d8d;
font-size: 15px;
@include mq(md, max) {
@ -326,7 +313,7 @@
.item-unavailable-message {
background-color: #d8c8ac;
color: $color-white;
color: $white-500;
.icon-warning-sign {
color: #bb4f4f;
@ -356,7 +343,7 @@
font-weight: normal;
font-size: 24px;
line-height: 28px;
color: $color-gray2;
color: $gray-600;
@include mq(md, max) {
margin-top: 0;
@ -364,17 +351,17 @@
}
.srp-description {
color: $color-gray2;
color: $gray-600;
font-size: 12px;
line-height: 18px;
margin: 0 0 12px;
}
button.shp-open-options {
background-color: $color-gray5;
background-color: $gray-300;
border: none;
border-radius: 5px;
color: $color-gray2;
color: $gray-600;
font-size: 16px;
letter-spacing: 0.05em;
line-height: 19px;
@ -384,11 +371,11 @@
transition: all 0.2s linear;
&:hover {
background-color: lighten($color-gray5, 5);
background-color: lighten($gray-300, 5);
}
&:active {
background-color: darken($color-gray5, 5);
background-color: darken($gray-300, 5);
}
}
}
@ -405,10 +392,10 @@
}
.srp-pickup-my-location__button {
background-color: $color-black;
background-color: $black-400;
border: none;
border-radius: 5px;
color: $color-white;
color: $white-500;
outline: none;
width: 100%;
@ -419,11 +406,11 @@
letter-spacing: 0.05em;
&:hover {
background-color: lighten($color-black, 5);
background-color: lighten($black-400, 5);
}
&:active {
background-color: darken($color-black, 5);
background-color: darken($black-400, 5);
}
}
}
@ -432,7 +419,7 @@
margin: 0 0 34px;
&__wrapper {
background-color: $color-white;
background-color: $white-500;
border-radius: 100px;
width: 100%;
font-family: $font-family;
@ -444,19 +431,19 @@
}
&__current {
border: 1px solid $color-blue;
border: 1px solid $black-500;
border-radius: 100px;
}
.blue {
color: $color-blue;
color: $black-500;
}
label {
width: 50%;
&:active {
background-color: #f0f0f0;
background-color: $gray-300;
}
}
}
@ -469,15 +456,15 @@
font-weight: normal;
font-size: 12px;
line-height: 14px;
color: $color-black;
color: $black-400;
margin-bottom: 12px;
}
input {
border: 1px solid $color-gray3;
border: 1px solid $gray-300;
border-radius: 5px;
box-shadow: none;
color: $color-gray3;
color: $gray-300;
font-size: 12px;
height: 36px;
padding: 12px 8px;
@ -485,10 +472,10 @@
}
& ~ button {
background-color: $color-black;
background-color: $black-400;
border: none;
border-radius: 5px;
color: $color-white;
color: $white-500;
font-size: 12px;
height: 36px;
letter-spacing: 1px;
@ -501,11 +488,11 @@
text-transform: uppercase;
&:hover {
background-color: lighten($color-black, 5);
background-color: lighten($black-400, 5);
}
&:active {
background-color: darken($color-black, 5);
background-color: darken($black-400, 5);
}
}
@ -515,12 +502,12 @@
font-weight: normal;
font-size: 10px;
line-height: 12px;
color: $color-blue;
color: #4267b2;
margin-top: 7px;
}
span.help.error {
color: red;
color: $red-500;
font-size: 12px;
position: absolute;
left: 0;
@ -549,7 +536,7 @@
}
.srp-shipping-current-single {
border: 1px solid $color-gray4;
border: 1px solid #8d8d8d;
border-radius: 0;
color: #303030;
margin: 16px 0 0;
@ -561,11 +548,11 @@
}
.srp-delivery-select {
border: 1px solid $color-gray4;
border: 1px solid #8d8d8d;
}
.srp-delivery-select-container {
border: 1px solid $color-gray4;
border: 1px solid #8d8d8d;
border-radius: 0;
.srp-shipping-current-many {
@ -574,16 +561,16 @@
}
&__sla {
color: #7d7d7d;
color: $gray-600;
}
&__price {
color: #7d7d7d;
color: $gray-600;
font-weight: 500;
}
&__arrow svg {
fill: $color-gray4;
fill: #8d8d8d;
}
}
}
@ -608,7 +595,7 @@
font-weight: normal;
font-size: 12px;
line-height: 14px;
color: $color-blue;
color: #4267b2;
text-decoration: none;
}
}
@ -636,7 +623,7 @@
font-weight: normal;
font-size: 12px;
line-height: 14px;
color: $color-gray2;
color: $gray-600;
cursor: none;
}
@ -657,10 +644,10 @@
}
input {
border: 2px solid $color-gray3;
border: 2px solid $gray-300;
border-radius: 5px;
box-shadow: none;
color: $color-gray4;
color: #8d8d8d;
font-size: 12px;
height: 34px;
padding: 0 12px;
@ -673,10 +660,10 @@
}
button {
background: $color-black;
background: $black-400;
border: none;
border-radius: 5px;
color: $color-white;
color: $white-500;
font-size: 12px;
height: 36px;
letter-spacing: 1px;
@ -691,11 +678,11 @@
}
&:hover {
background-color: lighten($color-black, 5);
background-color: lighten($black-400, 5);
}
&:active {
background-color: darken($color-black, 5);
background-color: darken($black-400, 5);
}
}
}
@ -703,7 +690,14 @@
.accordion-group {
tr {
border-color: #e5e5e5;
border-color: $gray-300;
@include mq(4k, min) {
display: flex;
width: 100%;
justify-content: space-between;
align-items: center;
}
td {
&.empty {
@ -716,7 +710,7 @@
font-weight: normal;
font-size: 14px;
line-height: 16px;
color: $color-black;
color: $black-400;
padding: 12px 0;
}
@ -737,7 +731,7 @@
font-weight: normal;
font-size: 18px;
line-height: 21px;
color: $color-black;
color: $black-400;
}
}
}
@ -776,13 +770,13 @@
font-weight: normal;
font-size: 12px;
line-height: 14px;
color: $color-blue;
color: #4267b2;
}
}
.btn-place-order-wrapper {
a {
background: $color-green;
background: #4caf50;
border: none;
border-radius: 5px;
display: block;
@ -791,7 +785,7 @@
padding: 12px 19px;
&:hover {
background-color: darken($color-green, 5);
background-color: darken(#4caf50, 5);
}
&:after {
@ -800,7 +794,7 @@
font-weight: 500;
font-size: 13px;
letter-spacing: 0.05em;
color: $color-white;
color: $white-500;
text-transform: uppercase;
vertical-align: middle;
line-height: 19px;

View File

@ -1,11 +1,779 @@
body .container-main.container-order-form .orderform-template.active {
.mini-cart {
width: 32.3242%;
margin-left: unset;
margin-right: 0;
float: right;
.checkout-container {
.orderform-template {
@include mq(mobile, max) {
flex-direction: column;
}
.orderform-template-holder {
.row-fluid {
position: relative;
@include mq(mobile, max) {
display: flex;
flex-direction: column;
}
.client-profile-data {
@include mq(mobile, max) {
width: 100%;
margin-bottom: 10px;
}
@include mq(4k, min) {
max-width: -webkit-fill-available;
}
.client-profile-data.filled {
max-width: 331px;
@include mq(mobile, max) {
max-width: -webkit-fill-available;
}
.accordion-heading {
.accordion-toggle {
margin-bottom: 25px;
display: flex;
justify-content: space-between;
align-items: center;
.icon-user {
display: none;
}
a {
padding: 0;
width: 20px;
border-radius: 0;
position: static;
height: 20px;
background: url("https://agenciamagma.vteximg.com.br/arquivos/lapisM3Academy.png");
background-size: contain;
background-repeat: no-repeat;
@include mq(4k, min) {
width: 37px;
height: 37px;
}
i {
display: none;
}
}
span {
font-size: 0;
margin: 0;
&::before {
content: "Indentificação";
font-weight: 400;
font-size: 16px;
line-height: 19px;
font-family: $font-family-secundary;
color: $black-400;
@include mq(4k, min) {
font-size: 32px;
line-height: 37px;
}
}
}
}
}
.accordion-body {
.client-profile-summary {
display: flex;
flex-direction: column;
.name {
margin-bottom: 28px;
}
}
.client-profile-email {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
.client-profile-email,
.client-profile-summary {
font-weight: 400;
font-size: 12px;
line-height: 16px;
color: $gray-600;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
}
}
}
.payment-data {
position: static;
@include mq(mobile, max) {
width: 100%;
margin: 0;
}
.accordion-group {
&.active {
padding: 24px 17px 36px;
border: 1px solid #f0f0f0;
border-radius: 8px;
.box-step {
padding-top: 64px;
position: relative;
&::before {
content: "Solicitamos apenas informações necessárias para realização da sua compra, sem compromenter seus dados";
position: absolute;
top: 0;
max-width: 662px;
font-weight: 400;
font-size: 14px;
line-height: 24px;
letter-spacing: -0.01em;
color: #7d7d7d;
@include mq(4k, min) {
font-size: 28px;
line-height: 48px;
max-width: 1241px;
}
}
}
}
.accordion-heading {
.accordion-toggle {
margin-bottom: 12px;
.icon-credit-card {
display: none;
}
}
}
.accordion-body {
.form-step {
display: flex;
.link-gift-card {
display: none;
#show-gift-card-group {
display: none;
}
}
.payment-group {
width: 30%;
margin: 0;
position: static;
@include mq(mobile, max) {
width: 100%;
}
.payment-group-list-btn {
width: 100%;
.payment-group-item {
display: none;
}
#payment-group-creditCardPaymentGroup,
#payment-group-bankInvoicePaymentGroup,
#payment-group-custom204PaymentGroupPaymentGroup,
#payment-group-MercadoPagoPaymentGroup {
display: flex;
align-items: center;
background-color: #f0f0f0;
justify-content: center;
padding: 13px 0;
opacity: 0.3;
border: 1px solid #000000;
border-radius: 6px;
margin: 0;
margin-bottom: 12px;
@include mq(mobile, min) {
&:hover {
opacity: 1;
border: 1px solid #f15a31;
border-radius: 6px;
background-color: rgba(220, 221, 227, 0.3);
}
}
.payment-group-item-text {
background-image: none !important;
padding: 0;
font-weight: 400;
font-size: 14px;
line-height: 24px;
text-align: center;
letter-spacing: -0.01em;
color: #58595b;
background: none;
text-decoration: none;
@include mq(mobile, min) {
&:hover {
opacity: 1;
color: #f15a31;
}
}
@include mq(4k, min) {
font-size: 28px;
line-height: 24px;
}
&::before {
font-weight: 400;
font-size: 14px;
line-height: 24px;
@include mq(mobile, min) {
&:hover {
opacity: 1;
color: #f15a31;
}
}
@include mq(4k, min) {
font-size: 28px;
line-height: 24px;
}
}
}
}
#payment-group-custom204PaymentGroupPaymentGroup {
span {
font-size: 0 !important;
&::before {
content: "Cartão de Débito";
}
}
}
#payment-group-bankInvoicePaymentGroup {
span {
font-size: 0 !important;
&::before {
content: "Boleto à Vista";
}
}
}
#payment-group-MercadoPagoPaymentGroup {
span {
font-size: 0 !important;
&::before {
content: "Boleto Faturado";
}
}
}
}
}
.steps-view {
flex: 1;
margin-left: 40px;
@include mq(mobile, max) {
margin: 0;
width: 100%;
max-width: -webkit-fill-available;
}
}
}
}
}
&.shipping {
position: absolute;
top: auto;
right: 0;
bottom: -17px;
transform: translateY(100%);
}
}
.shipping-data {
@include mq(mobile, max) {
width: 100%;
}
.shipping-data.active {
.accordion-heading {
span {
font-weight: 400;
font-size: 16px;
line-height: 19px;
font-family: $font-family-secundary;
color: $black-400;
margin-bottom: 25px;
@include mq(4k, min) {
font-size: 32px;
line-height: 37px;
}
}
}
.shipping-container {
.vtex-omnishipping-1-x-deliveryChannelsWrapper {
border: 1px solid #f5f5f5;
box-shadow: 0px 0px 5px rgb(0 0 0 / 20%);
border-radius: 100px;
margin-bottom: 25px;
.vtex-omnishipping-1-x-deliveryChannelsToggle {
background: #ffffff;
border: 1px solid #292929;
box-shadow: 2px 2px 4px rgb(0 0 0 / 20%);
border-radius: 100px;
}
#shipping-option-delivery {
.shp-method-option-text {
font-weight: 400;
font-size: 14px;
line-height: 19px;
text-transform: uppercase;
color: black;
text-shadow: none;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
}
#shipping-option-pickup-in-point {
.shp-method-option-text {
font-weight: 400;
font-size: 14px;
line-height: 19px;
text-transform: uppercase;
color: #c4c4c4;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
}
}
.vtex-omnishipping-1-x-addressFormPart1 {
.ship-country {
display: none;
}
.ship-postalCode {
display: flex;
flex-direction: column;
margin-bottom: 0;
label {
font-weight: 700;
font-size: 12px;
line-height: 16px;
color: #7d7d7d;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
input {
width: 100%;
max-width: -webkit-fill-available;
padding: 11px 8px 12px;
border: 1px solid #c4c4c4;
border-radius: 8px;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
height: 61px;
}
}
small {
margin: 10px 0 0 0;
font-weight: 400;
font-size: 12px;
line-height: 16px;
color: #292929;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
}
}
.vtex-omnishipping-1-x-deliveryGroup {
margin-top: 25px;
.vtex-omnishipping-1-x-shippingSectionTitle {
font-weight: 700;
font-size: 14px;
line-height: 19px;
color: #7d7d7d;
margin-bottom: 11px;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
.vtex-omnishipping-1-x-leanShippingGroupList {
margin-bottom: 15px;
border: 1px solid #e0e0e0;
border-radius: 8px;
.vtex-omnishipping-1-x-leanShippingOption {
padding: 14px 12px 12px;
.vtex-omnishipping-1-x-leanShippingIcon {
display: flex;
align-items: center;
justify-content: center;
margin-right: 8px;
width: 18px;
height: 18px;
border: 1px solid #c4c4c4;
border-radius: 3px;
@include mq(4k, min) {
width: 34px;
height: 34px;
}
.vtex-omnishipping-1-x-svg {
display: none;
}
}
.vtex-omnishipping-1-x-leanShippingText {
font-weight: 400;
font-size: 12px;
line-height: 16px;
color: #7d7d7d;
.vtex-omnishipping-1-x-leanShippingTextLabel {
letter-spacing: 0.05em;
color: #7d7d7d;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
.shp-option-text-time {
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
}
.vtex-omnishipping-1-x-optionPrice {
font-weight: 400;
font-size: 12px;
line-height: 16px;
color: #7d7d7d;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
}
.vtex-omnishipping-1-x-leanShippingOptionActive {
.vtex-omnishipping-1-x-leanShippingIcon::before {
content: "";
width: 12px;
height: 12px;
background-color: #00c8ff;
border-radius: 3px;
@include mq(4k, min) {
width: 29px;
height: 29px;
}
}
}
}
}
.vtex-omnishipping-1-x-addressForm {
.vtex-omnishipping-1-x-shippingSectionTitle {
font-weight: 700;
font-size: 12px;
line-height: 16px;
letter-spacing: 0.05em;
color: #7d7d7d;
margin-bottom: 11px;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
.vtex-omnishipping-1-x-addressSummary {
position: relative;
.address-summary {
padding-left: 47px;
border: 1px solid #e0e0e0;
border-radius: 8px;
font-weight: 400;
font-size: 12px;
line-height: 16px;
color: #7d7d7d;
position: relative;
margin-bottom: 15px;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
&::before {
content: "";
width: 21px;
position: absolute;
left: 16px;
top: 50%;
transform: translateY(-50%);
height: 20px;
background-image: url("https://agenciamagma.vteximg.com.br/arquivos/homeM3Academy.png");
background-repeat: no-repeat;
background-size: contain;
@include mq(4k, min) {
width: 41px;
height: 38px;
left: 6px;
}
}
.vtex-omnishipping-1-x-linkEdit {
position: absolute;
right: 15px;
font-weight: 400;
font-size: 12px;
line-height: 16px;
color: #00c8ff;
text-decoration: none;
margin-left: 24px;
}
}
}
.vtex-omnishipping-1-x-address {
margin-bottom: 15px;
div {
display: flex;
flex-direction: column;
p {
margin: 0 0 15px 0;
label {
font-weight: 700;
font-size: 12px;
line-height: 16px;
letter-spacing: 0.05em;
color: #7d7d7d;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
input {
width: 100%;
max-width: -webkit-fill-available;
border: 1px solid #e0e0e0;
border-radius: 8px;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
height: 61px;
padding: 0 0 0 10px;
}
}
}
}
}
}
.vtex-omnishipping-1-x-submitPaymentButton {
.btn-go-to-payment {
display: block;
width: 100%;
background: #00c8ff;
border-radius: 8px;
font-weight: 700;
font-size: 14px;
line-height: 19px;
text-align: center;
letter-spacing: 0.05em;
text-transform: uppercase;
text-shadow: none;
border: none;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
}
}
}
}
}
}
.cart-template {
flex: 1;
position: relative;
.payment-confirmation-wrap {
position: absolute;
top: calc(100% + 20px);
#payment-data-submit {
margin: 0;
background: #298541;
border-radius: 8px;
padding: 12px 0 11px;
i {
display: none;
}
span {
text-transform: uppercase;
font-weight: 700;
font-size: 14px;
line-height: 19px;
text-align: center;
letter-spacing: 0.05em;
}
}
}
}
}
.orderform-template-holder {
width: 66.1132%;
.shipping-summary-placeholder {
.vtex-omnishipping-1-x-SummaryItemGroup {
margin-bottom: 8px;
padding: 11px 0 0;
.vtex-omnishipping-1-x-SummaryItemContent {
position: relative;
padding: 0 0 0 3px;
.vtex-omnishipping-1-x-SummaryItemInfo {
padding: 0;
border: none;
.vtex-omnishipping-1-x-SummaryItemAddress {
margin: 0;
.address-summary {
padding: 0;
position: relative;
width: fit-content;
span {
font-weight: 400;
font-size: 12px;
line-height: 16px;
color: #7d7d7d;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
.neighborhood {
display: none;
}
.neighborhood-delimiter-after {
display: none;
}
.postalCode {
position: absolute;
top: 0;
left: calc(100% + 2px);
width: max-content;
&::before {
content: " - ";
}
}
}
}
.vtex-omnishipping-1-x-summaryPackage {
padding: 0;
}
}
.vtex-omnishipping-1-x-SummaryItemPrice {
padding: 0;
position: absolute;
bottom: 0;
padding: 0;
left: 111px;
@include mq(4k, min) {
left: 222px;
}
&::before {
content: " - ";
}
}
}
}
.vtex-omnishipping-1-x-summaryChange {
display: none;
}
}
}

View File

@ -1,38 +1,33 @@
.empty-cart {
font-family: $font-family;
&-content {
color: $color-black;
text-align: center;
font-family: $font-family;
&-content {
color: $black-400;
text-align: center;
@include mq(md, max) {
padding: 0 16px;
}
}
@include mq(md, max) {
padding: 0 16px;
}
}
&-title {
font-size: 20px;
}
&-title {
font-size: 20px;
}
&-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;
&:hover {
background: lighten($color-black, 5);
}
}
}
&-links {
.link-choose-products {
background: $black-400;
border: none;
border-radius: 5px;
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: $white-500;
text-transform: uppercase;
}
}
}

View File

@ -3,83 +3,13 @@
@import "./checkout-pagamento";
@import "./checkout-autenticacao";
html {
height: 100%;
min-height: 100%;
}
footer .footerCheckout__wrapper {
width: 94.9734%;
margin: auto auto 0 auto;
}
footer .footerCheckout__prateleira,
header {
width: 79.53125%;
margin: 0 auto;
img {
display: block;
}
body {
display: flex;
flex-direction: column;
min-height: 100% !important;
padding-top: 0 !important;
@include mq(md, max) {
padding-left: 0;
}
&.body-cart {
font-family: $font-family;
}
&.body-cart,
&.body-order-form {
@include mq(xl, min) {
padding-top: 0;
}
@include mq(lg, max) {
padding-bottom: 0 !important;
}
@include mq(md, max) {
padding-right: 0;
padding-left: 0;
}
}
.container-order-form,
.container-cart {
width: 80%;
}
}
.btn-success {
background: $color-black;
text-shadow: none;
&:hover {
background: lighten($color-black, 15%);
}
}
.emailInfo h3 {
color: $color-black !important;
}
#cart-title,
#orderform-title {
color: $color-gray2;
font-family: $font-family;
font-weight: 500;
font-size: 36px;
line-height: 42px;
margin: 40px 0 30px;
letter-spacing: 0.1em;
text-transform: uppercase;
@include mq(md, max) {
margin-left: 30px;
}
padding: 0 !important;
margin: 0 !important;
}
.dropdown {
@ -96,7 +26,7 @@ body {
&::before,
&::after {
content: "";
background: $color-gray2;
background: $gray-600;
display: block;
float: right;
height: 2px;

View File

@ -0,0 +1,824 @@
.container-main {
.step,
.accordion-group {
padding: 0;
border: none;
}
.client-profile-data {
height: auto;
&.filled {
height: auto;
border: 1px solid $gray-100;
border-radius: 8px;
height: auto;
}
&.email-active {
height: 392px;
}
.step.active.display-none {
display: none;
}
}
.cart-template.mini-cart.span4 {
&.display-none {
display: none;
}
}
.orderform-template-holder {
margin-bottom: 14px;
width: 100%;
max-width: -webkit-fill-available;
}
#orderform-title {
width: 100%;
max-width: -webkit-fill-available;
margin: 0 130px;
padding: 17px 0;
text-transform: uppercase;
color: $black-500;
font-weight: 700;
font-size: 24px;
line-height: 33px;
@include mq(mobile, max) {
margin: 0;
padding-left: 16px;
}
@include mq(4k, min) {
margin: 0 255px;
font-size: 48px;
line-height: 65px;
}
&.border {
border-bottom: 1px solid $black-500;
}
}
.checkout-container {
.row-fluid.orderform-template {
display: flex;
padding: 0 121px;
margin-bottom: 125px;
@include mq(mobile, max) {
padding: 0 16px;
}
@include mq(4k, min) {
padding: 0 255px;
margin-bottom: 200px;
}
.form-page.client-pre-email.anim-death.anim-current {
position: absolute;
width: 100%;
left: 0;
padding-bottom: 100px;
@include mq(mobile, max) {
padding-bottom: 345px;
}
}
&.dados-pessoais {
padding: 0 128px;
}
.client-pre-email {
border: none;
.link-cart {
margin: 14px 8px 0 0;
small a {
font-family: $font-family-secundary;
font-style: normal;
font-weight: 400;
font-size: 14px;
line-height: 16px;
text-transform: uppercase;
color: $black-500;
@include mq(mobile, max) {
font-size: 10px;
line-height: 12px;
}
@include mq(4k, min) {
font-size: 28px;
line-height: 33px;
}
}
}
.pre-email {
display: flex;
flex-direction: column;
align-items: center;
.client-pre-email-h {
margin: 65px 0 21px;
label {
margin: 0;
span,
small {
font-weight: 400;
font-size: 20px;
line-height: 23px;
text-transform: uppercase;
@include mq(tablet, max) {
font-size: 12px;
line-height: 14px;
}
@include mq(mobile, max) {
font-size: 14px;
line-height: 16px;
}
@include mq(4k, min) {
font-size: 40px;
line-height: 47px;
}
}
small {
color: $black-500;
}
}
}
.client-email.input.text.required.span8.offset2 {
width: 562px;
margin-bottom: 24px;
margin-left: 0;
@include mq(mobile, max) {
width: 100%;
}
@include mq(4k, min) {
width: 970px;
}
.input-block-level {
font-weight: 400;
font-size: 12px;
line-height: 16px;
padding: 15px 14px;
color: $black-500;
border: 1px solid $black-500;
border-radius: 5px 8px 8px 5px;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
.btn.btn-success {
padding: 12px 14px;
background: $blue-500;
border-radius: 0px 8px 8px 0px;
@include mq(mobile, min) {
&:hover {
background-color: $blue-600;
}
&:active {
background-color: $blue-500;
}
}
span {
font-weight: 700;
font-size: 14px;
line-height: 19px;
text-transform: uppercase;
color: $black-500;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
}
.help.error {
margin-top: 3px;
font-weight: 700;
font-size: 12px;
line-height: 16px;
color: $red-500;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
}
}
.emailInfo {
width: 400px;
border: 1px solid $black-500;
border-radius: 5px;
padding: 16px 16px 26px;
max-width: -webkit-fill-available;
@include mq(4k, min) {
width: 776px;
}
h3 {
font-weight: 700;
font-size: 12px;
line-height: 16px;
color: $black-500;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
.unstyled {
li {
.icon-ok::before {
color: $blue-500;
@include mq(4k, min) {
line-height: 33px;
}
}
span {
font-weight: 700;
font-size: 12px;
line-height: 16px;
color: $black-500;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
}
}
}
}
.step.accordion-group.client-profile-data.active {
border: 1px solid $gray-300;
max-width: -webkit-fill-available;
padding: 24px 17px 44px;
border-radius: 8px;
margin-bottom: 0;
height: auto;
.accordion-heading {
.accordion-toggle {
margin-bottom: 36px;
span {
font-size: 0;
&::before {
content: "Identificação";
font-weight: 400;
font-size: 16px;
line-height: 19px;
color: $black-400;
@include mq(4k, min) {
font-size: 32px;
line-height: 37px;
}
}
}
i {
display: none;
}
}
}
.accordion-body {
p {
&.client-email {
width: 100%;
margin-bottom: 16px;
@include mq(mobile, max) {
position: absolute;
bottom: 100%;
}
}
&.client-document {
margin: 0;
width: 46%;
@include mq(mobile, max) {
width: 100%;
}
&::placeholder {
font-weight: 400;
font-size: 14px;
line-height: 19px;
color: $gray-450;
}
}
&.client-last-name {
@include mq(mobile, max) {
margin-right: 15px !important;
max-width: -webkit-fill-available;
}
}
&.client-first-name,
&.client-last-name {
display: flex;
flex-direction: column;
margin: 0;
width: 46%;
@include mq(mobile, max) {
width: 100%;
}
}
&.client-last-name {
@include mq(1029, max) {
justify-content: center;
}
@include mq(1029, min) {
justify-content: flex-start;
}
}
label {
font-weight: 400;
font-size: 14px;
line-height: 19px;
color: $gray-600;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
input {
border: 1px solid $gray-250;
border-radius: 5px;
height: 15px;
font-weight: 400;
font-size: 14px;
line-height: 19px;
padding: 13px 11px 12px;
width: 100%;
max-width: -webkit-fill-available;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
height: 61px;
}
}
}
.box-client-info-pf {
display: flex;
flex-wrap: wrap;
gap: 15px;
@include mq(mobile, max) {
margin: 64px 0 0px;
display: grid;
grid-template-columns: repeat(2, 50%);
width: 100%;
position: relative;
}
.client-notice {
display: none;
}
div {
width: 46%;
p {
width: 100%;
}
@include mq(mobile, max) {
width: 100%;
max-width: -webkit-fill-available;
margin-right: 15px;
}
}
}
.box-client-info-pj {
display: none;
}
.newsletter {
margin-top: 12px;
margin-bottom: 44px;
.newsletter-text {
font-weight: 400;
font-size: 12px;
line-height: 16px;
color: $gray-700;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
}
.checkbox.newsletter-label {
input {
width: 12px;
border: 1px solid $gray-800;
border-radius: 3px;
@include mq(4k, min) {
width: 34px;
height: 34px;
}
}
span {
font-weight: 400;
font-size: 12px;
line-height: 16px;
}
}
.submit.btn-submit-wrapper {
margin: 0;
button {
display: block;
background: $blue-500;
border-radius: 8px;
border: none;
font-weight: 700;
font-size: 14px;
text-transform: uppercase;
line-height: 19px;
padding: 12px 0 11px 0;
text-shadow: none;
width: 100%;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
}
}
}
.span6.pull-right.shipping-data {
margin-left: 0;
border: 1px solid $gray-300;
border-radius: 8px;
margin-bottom: 17px;
padding: 24px 17px 28px;
.step.accordion-group.shipping-data {
margin: 0;
padding: 0;
.accordion-toggle.collapsed {
margin-bottom: 14px;
display: flex;
align-items: center;
justify-content: space-between;
font-weight: 400;
font-size: 16px;
line-height: 19px;
font-family: $font-family-secundary;
color: $black-400;
@include mq(4k, min) {
font-size: 32px;
line-height: 37px;
}
i {
display: none;
}
.link-box-edit {
padding: 0;
width: 20px;
border-radius: 0;
position: static;
height: 20px;
background: url("https://agenciamagma.vteximg.com.br/arquivos/lapisM3Academy.png");
background-size: contain;
background-repeat: no-repeat;
@include mq(4k, min) {
width: 37px;
height: 37px;
}
}
}
.shipping-summary-info {
font-weight: 400;
font-size: 14px;
line-height: 19px;
font-family: $font-family;
color: $gray-700;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
}
}
.span6.pull-right.payment-data {
margin-left: 0;
border: 1px solid $gray-300;
border-radius: 8px;
margin-bottom: 17px;
padding: 24px 17px 28px;
.accordion-group {
padding: 0;
}
.accordion-toggle.collapsed {
margin-bottom: 15px;
display: flex;
justify-content: space-between;
align-items: center;
i {
display: none;
}
span {
font-weight: 400;
font-size: 16px;
line-height: 19px;
font-family: $font-family-secundary;
color: $black-400;
@include mq(4k, min) {
font-size: 32px;
line-height: 37px;
}
}
.payment-edit-link {
display: block !important;
a {
width: 20px;
padding: 0;
height: 20px;
background: url("https://agenciamagma.vteximg.com.br/arquivos/lapisM3Academy.png");
background-size: contain;
border-radius: 0;
position: static;
background-repeat: no-repeat;
@include mq(4k, min) {
width: 37px;
height: 37px;
}
i {
display: none;
}
}
}
}
.notification {
font-weight: 400;
font-size: 14px;
line-height: 19px;
font-family: $font-family;
color: $gray-700;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
}
.cart-template.mini-cart.span4 {
margin-left: 16px;
min-width: 250px;
border: 1px solid $gray-300;
border-radius: 8px;
height: 427px;
@include mq(mobile, max) {
margin: 0;
width: 100%;
}
@include mq(1100, min) {
min-width: 331px;
}
.cart-fixed.cart-fixed-transition {
position: static !important;
height: auto !important;
padding: 24px 0px 22px;
.summary-cart-template-holder {
height: auto !important;
}
h2 {
font-weight: 400;
display: block;
font-size: 16px;
line-height: 19px;
padding: 0;
margin-bottom: 34px;
margin-left: 17px;
text-align: left;
@include mq(4k, min) {
font-size: 32px;
line-height: 37px;
}
}
.cart {
border: 0;
padding: 0;
.cart-items.unstyled.clearfix {
padding: 0 17px;
.hproduct {
display: flex;
align-items: center;
.url {
margin-right: 7px;
.photo {
@include mq(4k, min) {
width: 116px;
}
}
}
.product-name {
font-weight: 400;
font-size: 12px;
line-height: 14px;
color: $black-500;
font-family: $font-family-secundary;
font-weight: 400;
font-size: 12px;
max-width: 115px;
overflow: hidden;
white-space: normal;
line-height: 16px;
@include mq(4k, min) {
font-size: 24px;
line-height: 28px;
max-width: 227px;
}
}
.quantity {
display: none;
}
.description {
flex: 1;
margin: 0;
min-width: max-content;
font-weight: 400;
font-size: 12px;
line-height: 16px;
color: $black-400;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
.shipping-date {
display: none;
}
}
}
}
}
.link-cart {
margin: 19px 17px 0;
margin-bottom: 10px;
a {
font-weight: 400;
font-size: 12px;
line-height: 16px;
text-decoration: none;
color: $black-500;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
}
.summary-template-holder {
padding-top: 19px;
.totalizers-list {
tr {
border-top: 1px solid $gray-250;
border-bottom: 1px solid $gray-250;
.info {
float: inherit;
padding: 25px 0 25px 17px;
}
.monetary {
padding: 25px 17px 25px 0;
float: right;
}
.info,
.monetary {
font-weight: 400;
font-size: 14px;
line-height: 19px;
color: $gray-700;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
}
}
tfoot {
.info {
float: inherit;
padding: 30px 0 0 17px;
}
.monetary {
float: right;
padding: 30px 17px 0 0;
}
.info,
.monetary {
font-weight: 700;
font-size: 18px;
line-height: 25px;
color: $black-400;
@include mq(4k, min) {
font-size: 36px;
line-height: 49px;
}
}
}
}
}
}
}
}
}

View File

@ -1,47 +1,108 @@
/* _footer.scss */
.footerCheckout {
border-top: none;
color: $color-gray2;
&__wrapper {
border-top: 1px solid $black-500;
padding: 16px 32px;
@include mq(mobile, max) {
padding: 22px 8px 16px;
}
}
.container {
width: 100%;
display: grid;
grid-auto-flow: column;
align-items: center;
display: flex;
justify-content: space-between;
@include mq(mobile, max) {
grid-auto-flow: row;
}
&::before,
&::after {
content: "";
display: none;
}
}
&__address {
color: $color-gray2;
color: $black-400;
font-family: $font-family;
font-style: normal;
font-weight: normal;
font-weight: 400;
font-size: 10px;
line-height: 12px;
line-height: 14px;
text-transform: capitalize;
max-width: 40%;
@include mq(md, max) {
margin-bottom: 24px;
max-width: 100%;
@include mq(mobile, max) {
grid-area: 2;
margin-bottom: 16px;
}
@include mq(4k, min) {
font-size: 20px;
line-height: 27px;
}
}
&__stamps {
margin: 0;
align-items: center;
display: flex;
justify-self: center;
list-style: none;
@include mq(md, max) {
align-self: center;
margin-bottom: 12px;
@include mq(mobile, max) {
margin-bottom: 16px;
}
li {
display: flex;
align-items: center;
}
&__divider {
background-color: $color-gray4;
background-color: $gray-400;
display: inline-block;
height: 24px;
margin: 0 8px;
margin: 0 10px 0 0;
width: 1px;
@include mq(4k, min) {
height: 43px;
}
}
}
&__payments-icon {
width: 35px;
margin-right: 10px;
@include mq(sm, max) {
width: 10%;
}
@include mq(mobile, max) {
margin-right: 4px;
}
@include mq(4k, min) {
width: 67px;
margin-right: 13px;
}
}
&__payments-vtex-icon {
width: 53px;
@include mq(sm, max) {
width: 15%;
}
@include mq(4k, min) {
width: 103px;
}
}
@ -52,22 +113,39 @@
margin: 0;
li:last-child {
margin-left: 16px;
margin-left: 10px;
}
li {
a {
img {
height: 16px;
width: auto;
@include mq(4k, min) {
height: 30px;
}
}
}
}
a {
align-items: center;
color: $color-gray2;
color: $black-400;
display: flex;
font-family: $font-family;
font-style: normal;
font-weight: normal;
font-size: 10px;
font-weight: 400;
font-size: 9px;
line-height: 12px;
text-decoration: none;
@include mq(4k, min) {
font-size: 18px;
line-height: 25px;
}
span {
margin-right: 8px;
margin-right: 10px;
}
}
}

View File

@ -1,8 +1,16 @@
/* _header.scss */
.headerCheckout {
border-bottom: 1px solid $black-500;
padding: 29px 131px;
@include mq(mobile, max) {
padding: 16px;
}
.container {
width: auto !important;
}
&__wrapper {
align-items: center;
display: flex;
@ -11,26 +19,109 @@
&__logo {
img {
height: 52px;
height: 37px;
width: auto;
@include mq(mobile, max) {
height: 33px;
}
@include mq(4k, min) {
height: 92px;
}
}
}
.progress-bar {
position: relative;
width: 43%;
&__list-item {
list-style-type: none;
display: grid;
align-items: center;
grid-template-columns: repeat(3, 1fr);
margin: 0;
}
&__item {
display: flex;
flex-direction: column;
align-items: center;
p {
color: $black-500;
font-weight: 400;
font-family: $font-family-secundary;
font-size: 12px;
line-height: 14px;
@include mq(4k, min) {
font-size: 24px;
line-height: 28px;
}
}
}
&__circle {
height: 12px;
width: 12px;
border: 1px solid $black-500;
border-radius: 50%;
z-index: map-get($z-index, level2);
background-color: $white-500;
@include mq(4k, min) {
height: 24px;
width: 24px;
}
&.active {
background-color: $black-500;
}
}
&__wrap-bar {
position: absolute;
width: 67%;
transform: translateX(25%);
height: 1px;
background-color: $black-500;
bottom: 6px;
z-index: map-get($z-index, level1);
@include mq(4k, min) {
bottom: 12px;
}
}
}
&__safeBuy {
display: flex;
align-items: center;
justify-content: center;
span {
align-items: center;
display: flex;
text-transform: uppercase;
font-family: $font-family;
font-style: normal;
font-weight: normal;
font-weight: 400;
font-size: 12px;
line-height: 14px;
color: $color-gray;
line-height: 16px;
color: $black-400;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
i {
img {
margin-right: 8px;
width: 12px;
@include mq(4k, min) {
width: 29px;
}
}
}
}

View File

@ -1 +1,907 @@
/* _menu.scss */
.container-main {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
.inactive {
display: none !important;
}
.empty-cart-content {
padding: 0;
position: absolute;
width: 100%;
left: 0;
}
h2 {
all: unset;
}
#cart-title {
left: 0;
top: 0;
margin: 17px 0 16px;
position: absolute;
padding-left: 128px;
font-weight: 700;
font-size: 24px;
line-height: 33px;
text-transform: uppercase;
letter-spacing: 0.05em;
color: $black-400;
@include mq(mobile, max) {
margin: 17px 0;
padding-left: 16px;
}
@include mq(4k, min) {
font-size: 48px;
line-height: 65px;
padding-left: 258px;
}
}
.hide-cart-title {
display: none !important;
}
.empty-cart-title {
font-size: 0;
&::before {
content: "SEU CARRINHO ESTÁ VAZIO";
font-weight: 700;
font-family: $font-family;
font-size: 24px;
line-height: 33px;
color: $black-500;
@include mq(mobile, max) {
font-size: 18px;
line-height: 25px;
}
@include mq(4k, min) {
font-size: 48px;
line-height: 65px;
}
}
}
.transactions-container,
.empty-cart-message {
display: none;
}
.empty-cart-links {
margin-top: 32px;
.link-choose-products {
margin: 0;
width: 25%;
max-width: 327px;
font-size: 0;
padding: 15px 0 17px;
background-color: $white-500;
border: 1px solid $black-500;
border-radius: 0;
@include mq(mobile, max) {
width: 67%;
max-width: 250px;
}
@include mq(4k, min) {
width: 25%;
max-width: 638px;
}
&:hover {
background-color: $white-500;
}
&::before {
content: "CONTINUAR COMPRANDO";
font-weight: 400;
font-size: 14px;
line-height: 16px;
font-family: $font-family-secundary;
color: $black-500;
text-shadow: none;
@include mq(4k, min) {
font-size: 28px;
line-height: 33px;
}
}
}
}
.full-cart {
margin: 66px 128px 43px;
position: relative;
display: flex;
flex-direction: column;
.cart-template-holder,
.cart-links-bottom {
margin: 0 128px;
@include mq(4k, min) {
margin: 0 258px;
}
}
.cart-template-holder {
@include mq(mobile, max) {
margin: 0;
}
.cart {
margin: 0;
border: 1px solid $gray-100;
border-radius: 5px;
padding: 16px 29px 16px 16px;
@include mq(mobile, max) {
padding: 16px 16px 15px;
}
@include mq(4k, min) {
padding: 16px 31px;
}
.cart-items {
thead {
font-weight: 400;
font-size: 14px;
line-height: 16px;
font-family: $font-family-secundary;
color: $black-400;
@include mq(mobile, max) {
display: none;
}
@include mq(4k, min) {
font-size: 28px;
line-height: 33px;
}
th {
padding-bottom: 17px;
text-align: left;
}
.shipping-date,
.product-price {
font-size: 0;
position: relative;
&::after {
width: 100%;
left: 0;
position: absolute;
font-size: 14px;
@include mq(4k, min) {
font-size: 28px;
line-height: 33px;
}
}
}
.shipping-date::after {
content: "Frete";
}
.product-price::after {
content: "Unidade";
}
}
tbody {
font-family: $font-family-secundary;
td {
padding: 0;
text-align: left;
}
.product-item {
@include mq(mobile, max) {
margin: 0;
position: relative;
display: block;
}
}
.product-image {
@include mq(mobile, max) {
left: 0;
position: absolute;
}
img {
@include mq(4k, min) {
height: 146px;
min-width: 146px;
object-fit: cover;
margin-right: 31px;
}
}
}
.product-price {
@include mq(mobile, max) {
margin: 0;
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 4px;
float: right;
position: static;
}
br {
@include mq(mobile, max) {
display: none;
}
}
}
.shipping-date {
@include mq(mobile, max) {
display: none;
}
}
.product-name a,
.shipping-estimate-date,
.list-price {
font-weight: 400;
font-size: 12px;
line-height: 14px;
@include mq(4k, min) {
font-size: 24px;
line-height: 28px;
}
}
.shipping-estimate-date,
.list-price {
color: $gray-500;
}
.product-name {
@include mq(mobile, max) {
position: static;
width: 250px;
padding: 0 0 11px !important;
margin-left: 76px;
display: block;
}
a {
@include mq(mobile, max) {
margin: 0;
display: block;
}
}
}
.product-name a,
input {
color: $black-500;
}
input,
.best-price {
font-weight: 400;
font-size: 14px;
line-height: 16px;
@include mq(4k, min) {
font-size: 24px;
line-height: 28px;
}
}
.best-price,
.total-selling-price {
color: $black-400;
}
.best-price {
display: flex;
}
.quantity-price {
@include mq(mobile, max) {
display: none;
}
}
.item-remove .item-link-remove .item-remove-ico {
@include mq(mobile, max) {
position: absolute;
top: 0;
right: 0;
transform: translateY(calc(100% - 5px));
}
}
.quantity {
padding: 0 11px;
margin: 0;
transform: translateY(30%);
border: 1px solid $gray-300;
border-radius: 8px;
@include mq(mobile, max) {
margin-left: 76px !important;
max-width: 99px;
justify-content: space-between;
transform: none;
width: 35% !important;
}
@include mq(4k, min) {
padding: 9px 11px;
max-height: -webkit-fill-available;
max-width: -webkit-fill-available;
margin-top: 28px;
}
.item-quantity-change {
background-color: $blue-500;
width: 16px;
height: 16px;
border-radius: 50%;
@include mq(4k, min) {
width: 32px;
height: 32px;
}
}
.item-quantity-change-decrement,
.item-quantity-change-increment {
display: flex;
align-items: center;
justify-content: center;
position: relative;
&::before {
transform: rotate(90deg);
position: absolute;
content: "";
width: 2px;
height: 10px;
background-color: $white-500;
}
}
.item-quantity-change-increment::after {
position: absolute;
content: "";
width: 2px;
height: 10px;
background-color: $white-500;
}
.icon {
display: none;
}
input {
border: 0;
@include mq(4k, min) {
font-size: 28px;
line-height: 33px;
}
}
}
.total-selling-price {
font-family: $font-family;
font-weight: 700;
font-size: 14px;
line-height: 19px;
}
.icon-remove::before {
color: $gray-400;
@include mq(4k, min) {
font-size: 26px;
}
}
}
}
}
}
.summary-template-holder {
margin-top: 48px;
.row-fluid {
display: flex;
justify-content: space-between;
@include mq(mobile, max) {
flex-direction: column;
}
&::before,
&::after {
display: none;
}
.cart-more-options {
margin: 0 0 0 128px;
@include mq(mobile, max) {
margin: 0 0 48px;
}
@include mq(4k, min) {
margin: 0 0 0 258px;
width: 50%;
}
.srp-content {
display: flex;
flex-direction: column;
.srp-main-title {
margin-top: 0;
margin-bottom: 11px;
font-weight: 400;
font-size: 24px;
line-height: 33px;
color: $black-500;
@include mq(4k, min) {
font-size: 48px;
line-height: 65px;
}
}
.srp-description {
margin-bottom: 10px;
font-weight: 400;
font-size: 14px;
line-height: 18px;
color: $gray-600;
max-width: 276px;
@include mq(4k, min) {
font-size: 28px;
line-height: 36px;
max-width: 552px;
width: 100%;
}
}
.srp-data,
.shp-open-options {
margin: 0;
}
.srp-data {
position: relative;
@include mq(4k, min) {
width: 100%;
}
}
.shp-open-options {
font-weight: 400;
font-size: 14px;
line-height: 19px;
color: $black-500;
background-color: $gray-200;
padding: 12px 41px;
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
.srp-toggle {
margin-bottom: 0;
&__delivery,
&__pickup {
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
}
.ship-country {
display: none;
}
.vtex-shipping-preview-0-x-pc {
position: absolute;
top: calc(100% + 13px);
}
.vtex-shipping-preview-0-x-postalCodeForgotten {
margin-top: 0;
}
span .help .error {
display: none;
}
.ship-postalCode {
flex: 1;
width: auto;
margin-right: 8px;
label {
font-weight: 400;
font-size: 12px;
line-height: 16px;
width: auto;
margin-bottom: 2px;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
.input-small {
width: 100%;
color: $black-500;
@include mq(4k, min) {
height: 55px;
}
}
.help.error {
margin: 10px 0 0 5px;
left: 12%;
top: -12%;
@include mq(4k, min) {
font-size: 24px;
line-height: 33px;
}
}
small {
a {
font-size: 0;
&::before {
content: "Não sei meu código postal";
font-weight: 400;
font-size: 10px;
line-height: 12px;
font-family: $font-family-secundary;
color: $black-500;
text-decoration: underline;
@include mq(4k, min) {
font-size: 20px;
line-height: 23px;
}
}
}
}
}
.srp-pc-input {
margin-left: 0;
margin-bottom: 5px;
position: static;
background: $blue-500;
border-radius: 8px;
font-weight: 700;
font-size: 14px;
line-height: 19px;
padding: 8px 0 9px;
@include mq(mobile, min) {
&:hover {
background-color: $blue-600;
}
&:active {
background-color: $blue-500;
}
}
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
height: 55px;
min-width: fit-content;
padding: 8px 19px;
margin-top: 20px;
}
}
.srp-pickup-empty {
position: absolute;
width: 100%;
margin-top: 16px;
.srp-pickup-my-location__button {
padding: 11px 0 12px;
background-color: $blue-500;
font-weight: 700;
font-size: 14px;
line-height: 19px;
transition: ease-in 0.22s all;
@include mq(mobile, min) {
&:hover {
background-color: $blue-600;
}
&:active {
background-color: $blue-500;
}
}
@include mq(4k, min) {
font-size: 28px;
line-height: 38px;
}
}
}
}
}
.cart-totalizers {
margin: 0 128px 0 0;
@include mq(mobile, max) {
width: 100%;
padding: 0 16px 0 17px;
}
@include mq(4k, min) {
margin: 0 258px 0 0;
width: 27%;
}
.coupon-fieldset {
.coupon-label {
font-weight: 400;
font-size: 12px;
line-height: 14px;
color: $gray-600;
font-family: $font-family-secundary;
@include mq(4k, min) {
font-size: 24px;
line-height: 28px;
}
label {
text-align: left;
margin: 0;
}
}
.coupon-fields {
display: flex;
justify-content: flex-start;
margin-bottom: 20px;
span {
display: flex;
flex: 1;
align-items: center;
.coupon-value {
padding: 11px 16px;
font-weight: 400;
font-size: 12px;
line-height: 14px;
font-family: $font-family-secundary;
color: $gray-400;
height: auto;
border: 1px solid $gray-300;
border-radius: 5px;
flex: 1;
width: auto;
@include mq(4k, min) {
max-width: initial;
font-size: 24px;
line-height: 28px;
}
}
i {
-webkit-animation: none;
animation: none;
&::before {
animation: spin 0.7s infinite linear;
}
span {
display: none;
flex: none;
}
}
.btn {
padding: 8px 15px 9px;
font-weight: 400;
font-size: 14px;
line-height: 19px;
color: $black-500;
background: $blue-500;
border-radius: 8px;
margin-left: 30px;
width: 133px;
height: auto;
@include mq(4k, min) {
width: 260px;
font-size: 24px;
line-height: 28px;
}
}
}
}
.coupon-data {
margin-bottom: 20px;
.link-coupon-add {
text-decoration: none !important;
span {
font-family: $font-family-secundary;
font-weight: 400;
font-size: 12px;
line-height: 14px;
color: $black-500;
@include mq(4k, min) {
font-size: 24px;
line-height: 28px;
}
}
}
}
}
.table {
@include mq(4k, min) {
display: flex;
flex-direction: column;
}
}
.totalizers-list {
@include mq(4k, min) {
display: flex;
flex-direction: column;
}
.monetary {
flex: 1;
}
td {
padding: 10px 0 10px 0;
font-weight: 400;
font-size: 14px;
line-height: 16px;
font-family: $font-family-secundary;
color: $black-400;
@include mq(4k, min) {
font-size: 28px;
line-height: 33px;
}
}
.Discounts {
td {
padding-top: 10px;
}
}
}
tfoot {
.info,
.monetary {
padding-top: 14px;
padding-bottom: 0;
font-weight: 700;
font-size: 18px;
line-height: 25px;
font-family: $font-family;
@include mq(4k, min) {
font-size: 36px;
line-height: 49px;
}
}
.monetary {
flex: 1;
}
}
}
}
}
.cart-links-bottom {
padding: 0;
align-self: flex-end;
@include mq(mobile, max) {
display: flex;
width: 100%;
margin: 0;
max-width: -webkit-fill-available;
padding: 0 15px 0 16px;
}
.link-choose-more-products-wrapper {
margin: 17px 0 15px;
.link-choose-more-products {
margin: auto;
font-weight: 400;
font-size: 12px;
line-height: 14px;
font-family: $font-family-secundary;
color: $black-500;
@include mq(4k, min) {
font-size: 24px;
line-height: 28px;
}
}
}
.btn-place-order {
border-radius: 8px;
background-color: $blue-500;
@include mq(mobile, min) {
&:hover {
background-color: $blue-600;
}
&:active {
background-color: $blue-500;
}
}
&::after {
font-weight: 700;
font-size: 14px;
line-height: 19px;
font-family: $font-family;
color: $black-500;
}
}
}
}
}

View File

@ -1 +1,198 @@
/* _prateleira.scss */
.footerCheckout__prateleira {
padding: 0 132px 56px;
display: flex;
flex-direction: column;
position: relative;
&::before {
content: "Você também pode gostar:";
font-weight: 400;
font-size: 24px;
line-height: 38px;
color: $black-500;
font-family: $font-family-secundary;
text-align: center;
@include mq(4k, min) {
font-size: 48px;
line-height: 76px;
}
}
@include mq(tablet, max) {
padding-right: 15px;
}
@include mq(mobile, max) {
padding: 0 17px 54px 16px;
}
.slick-arrow {
position: absolute;
top: 50%;
transform: translateY(-50%);
z-index: map-get($z-index, level1);
}
.slick-list {
margin-top: 20px;
}
.slick-prev {
left: 142px;
border: none;
background-color: transparent;
outline: 0;
background-image: url("https://agenciamagma.vteximg.com.br/arquivos/arrow-left-M3Academy.svg") !important;
background-size: contain;
background-repeat: no-repeat;
width: 13px;
height: 29px;
@include mq(tablet, max) {
left: 16px;
}
@include mq(mobile, max) {
left: 26px;
}
@include mq(4k, min) {
width: 26px;
height: 58px;
}
}
.slick-next {
right: 142px;
border: none;
background-color: transparent;
outline: 0;
background-image: url("https://agenciamagma.vteximg.com.br/arquivos/arrow-right-M3Academy.svg") !important;
background-size: contain;
background-repeat: no-repeat;
width: 13px;
height: 29px;
@include mq(tablet, max) {
right: 16px;
}
@include mq(mobile, max) {
right: 26px;
}
@include mq(4k, min) {
width: 26px;
height: 58px;
}
}
.slick-track {
display: flex;
}
.slick-slide {
height: auto;
& > div,
.prateleira__item {
height: 100%;
display: flex !important;
flex-direction: column;
margin: 0 4px;
max-width: -webkit-fill-available;
}
}
.prateleira {
&__product-name {
font-weight: 400;
font-size: 13px;
text-align: center;
line-height: 18px;
color: $black-500;
margin: 20px 0;
@include mq(4k, min) {
font-size: 26px;
line-height: 35px;
}
}
&__options {
flex: 1;
margin: 0;
display: flex;
flex-wrap: wrap;
list-style-type: none;
width: 100%;
align-items: center;
justify-content: center;
margin-bottom: 20px;
}
&__option {
margin-right: 5px;
font-weight: 700;
font-size: 13px;
line-height: 18px;
color: $white-500;
letter-spacing: 0.05em;
text-transform: uppercase;
background-color: $blue-500;
border-radius: 8px;
padding: 5px;
cursor: pointer;
@include mq(mobile, min) {
&:hover {
background: $blue-600;
}
&:active {
background: $blue-500;
}
}
@include mq(4k, min) {
font-size: 26px;
line-height: 35px;
}
&:last-of-type {
margin-right: 0;
}
}
&__button {
border: none;
width: 100%;
background: $blue-500;
border-radius: 8px;
padding: 12px 0;
font-weight: 700;
font-size: 13px;
line-height: 18px;
letter-spacing: 0.05em;
text-transform: uppercase;
color: $white-500;
@include mq(mobile, min) {
&:hover {
background: $blue-600;
}
&:active {
background: $blue-500;
}
}
@include mq(4k, min) {
font-size: 26px;
line-height: 35px;
}
}
}
}

View File

@ -2,37 +2,48 @@
@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: "Open Sans", sans-serif;
$font-family-secundary:"Tenor Sans", sans-serif;
$font-family-secundary: "Tenor Sans", sans-serif;
/* Colors */
$color-black: #292929;
$color-white: #fff;
$black-400: #292929;
$black-500: #000;
$color-gray: #6c6c6c;
$color-gray2: #7d7d7d;
$color-gray3: #f0f0f0;
$color-gray4: #8d8d8d;
$color-gray5: #e5e5e5;
$gray-100: #f0f0f0;
$gray-200: #ededed;
$gray-250: #e0e0e0;
$gray-300: #e5e5e5;
$gray-400: #c4c4c4;
$gray-450: #bdbdbd;
$gray-500: #989898;
$gray-600: #7d7d7d;
$gray-700: #808080;
$gray-800: #828282;
$color-blue: #4267b2;
$blue-500: #00c8ff;
$blue-600: #20b2db;
$color-green: #4caf50;
$red-500: #ff0000;
$white-500: #fff;
/* Grid breakpoints */
$grid-breakpoints: (
xs: 0,
cstm: 400,
sm: 576px,
md: 768px,
lg: 992px,
xl: 1200px
xs: 0,
cstm: 400,
sm: 375px,
md: 478px,
tablet: 768px,
lg: 992px,
mobile: 1025px,
xl: 1200px,
4k: 2500px,
) !default;
$z-index: (
level1: 5,
level2: 10,
level3: 15,
level4: 20,
level5: 25
level1: 5,
level2: 10,
level3: 15,
level4: 20,
level5: 25,
) !default;

View File

@ -1,20 +1,52 @@
<!-- Esse arquivo é só um demonstrativo de como está o html do header do checkout atualmente,
MODIFICA-LO NÃO CAUSARÁ EFEITO ALGUM, todo html que for modificado no header, deverá ser feito através de javaScript. -->
<header class="headerCheckout">
<div class="container">
<div class="headerCheckout__wrapper">
<div class="headerCheckout__logo">
<a href="/">
<img src="https://agenciamagma.vteximg.com.br/arquivos/LogoM3Academy.png" alt="M3 Academy"/>
</a>
</div>
<div id="progressBar" class="progress-bar"> Aqui entra a barra de progresso
</div>
<div class="headerCheckout__safeBuy">
<img src="https://agenciamagma.vteximg.com.br/arquivos/cadeadoCompraSegM3Academy.png" alt="Cadeado"/>
<span>Compra segura</span>
</div>
<header class="headerCheckout">
<div class="container">
<div class="headerCheckout__wrapper">
<div class="headerCheckout__logo">
<a href="/">
<img
src="https://agenciamagma.vteximg.com.br/arquivos/LogoM3Academy.png"
alt="M3 Academy"
/>
</a>
</div>
<div id="progressBar" class="progress-bar">Aqui entra a barra de progresso</div>
<div class="headerCheckout__safeBuy">
<img
src="https://agenciamagma.vteximg.com.br/arquivos/cadeadoCompraSegM3Academy.png"
alt="Cadeado"
/>
<span>Compra segura</span>
</div>
</div>
</header>
</div>
</header>
<span data-bind="visible: !isCouponTyped()" style="width: 100%; display: flex">
<input
type="text"
id="cart-coupon"
class="coupon-value input-small"
data-bind="value: couponCode, valueUpdate:'afterkeydown', disable: loadingCoupon()"
placeholder="Código"
data-i18n="[placeholder]totalizers.couponCode;"
/>
<i
class="loading-inline icon-spinner icon-spin loading-coupon"
data-bind="fadeInlineVisible: loadingCoupon"
style="opacity: 0"
>
<span data-i18n="cart.wait">Por favor, aguarde...</span>
</i>
<button
type="submit"
id="cart-coupon-add"
class="btn"
data-bind="disable: loadingCoupon"
data-i18n="global.add"
>
Adicionar
</button>
</span>

20
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": {
@ -3484,6 +3485,8 @@
},
"checkout/node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"license": "MIT"
},
"checkout/node_modules/cosmiconfig": {
@ -4844,6 +4847,8 @@
},
"checkout/node_modules/get-intrinsic": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.1",
@ -6294,6 +6299,8 @@
},
"checkout/node_modules/micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"license": "MIT",
"dependencies": {
"braces": "^3.0.2",
@ -6305,6 +6312,8 @@
},
"checkout/node_modules/micromatch/node_modules/braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"license": "MIT",
"dependencies": {
"fill-range": "^7.0.1"
@ -19345,6 +19354,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"
@ -21672,7 +21682,9 @@
}
},
"core-util-is": {
"version": "1.0.3"
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
},
"cosmiconfig": {
"version": "7.1.0",
@ -22645,6 +22657,8 @@
},
"get-intrinsic": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
@ -23679,6 +23693,8 @@
},
"micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"requires": {
"braces": "^3.0.2",
"picomatch": "^2.3.1"
@ -23686,6 +23702,8 @@
"dependencies": {
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"requires": {
"fill-range": "^7.0.1"
}

9829
yarn.lock Normal file

File diff suppressed because it is too large Load Diff