diff --git a/assets/pix-logo.png b/assets/pix-logo.png new file mode 100644 index 0000000..3458b4a Binary files /dev/null and b/assets/pix-logo.png differ diff --git a/react/Example.tsx b/react/Example.tsx index 7d550e5..fe63560 100644 --- a/react/Example.tsx +++ b/react/Example.tsx @@ -1,3 +1,3 @@ import Example from "./components/Example/Example"; -export default Example; \ No newline at end of file +export default Example; diff --git a/react/Installments.tsx b/react/Installments.tsx new file mode 100644 index 0000000..679a337 --- /dev/null +++ b/react/Installments.tsx @@ -0,0 +1,3 @@ +import Installments from "./components/Installments"; + +export default Installments; diff --git a/react/Pix.tsx b/react/Pix.tsx new file mode 100644 index 0000000..1373321 --- /dev/null +++ b/react/Pix.tsx @@ -0,0 +1,3 @@ +import Pix from "./components/Pix"; + +export default Pix; diff --git a/react/components/Html/styles.css b/react/components/Html/styles.css index 7b114be..1287216 100644 --- a/react/components/Html/styles.css +++ b/react/components/Html/styles.css @@ -1,5 +1,9 @@ [class*="html--pdp-breadcrumb"] { - margin: 0 40px; + margin: 16px 40px; +} + +[class*="html--pdp-breadcrumb"] :global(.vtex-breadcrumb-1-x-container) { + padding: 0; } [class*="html--product-main"] { @@ -8,6 +12,16 @@ gap: 32px; } +[class*="html--product-availability"] { + display: flex; + padding: 0 40px 16px; + gap: 32px; +} + +[class*="html--info-availability"] { + width: 48.8235294%; +} + [class*="html--stack"] { width: 48.8235294%; } @@ -16,6 +30,58 @@ width: 48.8235294%; } +[class*="html--product-name"] { + text-align: end; + margin-bottom: 24px; +} + +[class*="html--buy-container"] { + display: flex; + margin-bottom: 16px; +} +[class*="html--buy-container"] :global(.vtex-flex-layout-0-x-flexRow) { + flex: 1; +} +[class*="html--buy-container"] :global(.vtex-store-components-3-x-container) { + padding: 0; + margin-left: 10px; +} + +[class*="html--buy-container"] :global(.vtex-flex-layout-0-x-flexRowContent) { + background-color: red; + margin: 0; + padding: 0; +} + +[class*="html--buy-container"] :global(.vtex-button) { + background-color: #000; + padding: 12px 0; + border: none; + /* font-style: normal; + font-weight: 400; + font-size: 18px; + line-height: 25px; + color: #fff; */ + border-radius: 0; + height: 49px; +} + +[class*="html--buy-container"] + :global(.vtex-add-to-cart-button-0-x-buttonText) { + font-size: 0; +} + +[class*="html--buy-container"] + :global(.vtex-add-to-cart-button-0-x-buttonText)::after { + content: "Adicionar à sacola"; + font-style: normal; + font-weight: 400; + font-size: 18px; + line-height: 25px; + color: #fff; + text-transform: uppercase; +} + @media screen and (min-width: 2500px) { [class*="html--pdp-breadcrumb"] { margin: 0 360px; @@ -24,12 +90,15 @@ [class*="html--product-main"] { padding: 0 360px 16px; } + [class*="html--product-availability"] { + padding: 0 360px 16px; + } [class*="html--stack"] { width: 49.13043478%; } - [class*="html--right-col"] { + [class*="html--info-availability"] { width: 49.13043478%; } } @@ -40,6 +109,11 @@ padding: 0 40px 16px; } + [class*="html--product-availability"] { + display: block; + padding: 0 40px 16px; + } + [class*="html--stack"] { width: 100%; } @@ -47,4 +121,29 @@ [class*="html--right-col"] { width: 100%; } + + [class*="html--product-name"] { + text-align: start; + } + + [class*="html--buy-container"] :global(.vtex-button__label) { + padding: 0; + } +} + +@media screen and (max-width: 376px) { + [class*="html--buy-container"] { + display: block; + } + + [class*="html--buy-container"] :global(.vtex-store-components-3-x-container) { + margin: 0; + margin-top: 10px; + } + + [class*="html--buy-container"] :global(.vtex-button) { + height: 70px; + } + + } diff --git a/react/components/Installments/index.tsx b/react/components/Installments/index.tsx new file mode 100644 index 0000000..50d9c1d --- /dev/null +++ b/react/components/Installments/index.tsx @@ -0,0 +1,29 @@ +import React from "react"; +import { useProduct } from "vtex.product-context"; +import styles from "./styles.css"; + +const Installments = () => { + const product = useProduct(); + const installment = { + numberOfInstallments: + product?.selectedItem?.sellers[0].commertialOffer?.Installments[10] + .NumberOfInstallments, + value: + product?.selectedItem?.sellers[0].commertialOffer?.Installments[10].Value, + }; + return ( +

+ + {installment.numberOfInstallments} x{" "} + + de + + {" "} + R$ {installment.value?.toFixed(2).toString().replace(".", ",")} + {" "} + sem juros +

+ ); +}; + +export default Installments; diff --git a/react/components/Installments/styles.css b/react/components/Installments/styles.css new file mode 100644 index 0000000..eb2a254 --- /dev/null +++ b/react/components/Installments/styles.css @@ -0,0 +1,9 @@ +.parcelas { + margin: 0; + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; + color: #929292; + margin-bottom: 8px; +} diff --git a/react/components/Pix/index.tsx b/react/components/Pix/index.tsx new file mode 100644 index 0000000..b374dfd --- /dev/null +++ b/react/components/Pix/index.tsx @@ -0,0 +1,60 @@ +import React from "react"; +import { useProduct } from "vtex.product-context"; + +import styles from "./styles.css"; + +const Pix = () => { + const product = useProduct(); + const precoAtual = Number( + product?.product?.priceRange.sellingPrice.highPrice + ); + + const desconto = (precoAtual * 10) / 100; + + const precoNovo = precoAtual - desconto; + + const fechApi = async () => { + fetch("/api/checkout/pub/orderForms/simulation", { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + }, + body: `{ + "items": [ + { + "id": ${product?.selectedItem?.itemId}, + "seller": ${product?.selectedItem?.sellers[0].sellerId}, + "quantity": ${product?.selectedQuantity} + } + ], + "country": "BRA" + }`, + }) + .then((response) => response.json()) + .then((data) => { + console.log(data); + }); + }; + + fechApi(); + + return ( +
+
+ logo do Pix +
+ +
+

R$ {precoNovo.toFixed(2).replace(".", ",")}

+

10 % de desconto

+
+
+ ); +}; + +export default Pix; diff --git a/react/components/Pix/styles.css b/react/components/Pix/styles.css new file mode 100644 index 0000000..3b482f6 --- /dev/null +++ b/react/components/Pix/styles.css @@ -0,0 +1,37 @@ +.pixWrapper { + display: flex; + gap: 26px; + margin-bottom: 16px; + align-items: center; +} + +.pixImageContainer { + margin: 0; +} + +.pixImage { + width: 66px; +} +/* +.descriptionContainer { + +} */ + +.newPrice { + margin: 0; + font-style: normal; + font-weight: 700; + font-size: 18px; + line-height: 25px; + color: rgba(0, 0, 0, 0.58); +} + +.discount { + margin: 0; + + font-style: normal; + font-weight: 300; + font-size: 13px; + line-height: 18px; + color: #929292; +} diff --git a/react/types/index.d.ts b/react/types/index.d.ts new file mode 100644 index 0000000..cbe652d --- /dev/null +++ b/react/types/index.d.ts @@ -0,0 +1 @@ +declare module "*.css"; diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index 6bd6109..0aacf42 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -85,7 +85,6 @@ }, "product-images": { "props": { - // "aspectRatio": "auto", "thumbnailAspectRatio": "1:1", "thumbnailMaxHeight": 90, "showNavigationArrows": false, @@ -99,29 +98,41 @@ "blockClass": "right-col" }, "children": [ - "flex-layout.row#product-name", - "product-rating-summary", - "flex-layout.row#list-price-savings", - "flex-layout.row#selling-price", - "product-installments", - "product-separator", - "product-identifier.product", + "html#product-name", + // "product-identifier.product", + // "product-rating-summary", + // "flex-layout.row#list-price-savings", + "html#selling-price", + // "product-installments", + "installments", + // "product-separator", + "pix", "sku-selector", - "product-quantity", + // "product-quantity", + "html#buy-container", "product-assembly-options", "product-gifts", - "flex-layout.row#buy-button", + // "flex-layout.row#buy-button", "availability-subscriber", - "shipping-simulator", - "share#default" + "shipping-simulator" + // "share#default" ] }, - - "flex-layout.row#product-name": { + "html#buy-container": { "props": { - "marginBottom": 3 + "blockClass": "buy-container" }, - "children": ["vtex.store-components:product-name"] + "children": ["product-quantity", "flex-layout.row#buy-button"] + }, + + "html#product-name": { + "props": { + "blockClass": "product-name" + }, + "children": [ + "vtex.store-components:product-name", + "product-identifier.product" + ] }, "sku-selector": { @@ -152,8 +163,9 @@ "blockClass": "info-availability" }, "children": [ - "flex-layout.row#product-name", - "product-identifier.product", + "html#product-name", + // "product-identifier.product", + "sku-selector", "flex-layout.row#availability" ] diff --git a/store/blocks/product-price.jsonc b/store/blocks/product-price.jsonc index 3035106..93e5950 100644 --- a/store/blocks/product-price.jsonc +++ b/store/blocks/product-price.jsonc @@ -1,14 +1,10 @@ { - "flex-layout.row#selling-price": { + "html#selling-price": { "props": { - "colGap": 2, - "preserveLayoutOnMobile": true, - "preventHorizontalStretch": true, - "marginBottom": 4 + + "blockClass": "selling-price" }, - "children": [ - "product-selling-price" - ] + "children": ["product-selling-price"] }, "flex-layout.row#list-price-savings": { @@ -19,9 +15,6 @@ "marginBottom": 2, "marginTop": 5 }, - "children": [ - "product-list-price", - "product-price-savings" - ] + "children": ["product-list-price", "product-price-savings"] } } diff --git a/store/blocks/product-summary/quickview.json b/store/blocks/product-summary/quickview.json index 723d4a0..6ea1ec9 100644 --- a/store/blocks/product-summary/quickview.json +++ b/store/blocks/product-summary/quickview.json @@ -1,9 +1,6 @@ { "modal-trigger#quickview": { - "children": [ - "icon-expand", - "modal-layout#quickview" - ], + "children": ["icon-expand", "modal-layout#quickview"], "props": { "blockClass": "quickview" } @@ -37,7 +34,7 @@ "flex-layout.col#quickviewPrice": { "children": [ "flex-layout.row#list-price-savings", - "flex-layout.row#selling-price", + "html#selling-price", "product-installments" ] }, @@ -63,9 +60,7 @@ }, "flex-layout.col#quickview-product-quantity": { - "children": [ - "product-summary-quantity#quickview" - ] + "children": ["product-summary-quantity#quickview"] }, "product-summary-quantity#quickview": { "props": { @@ -74,18 +69,14 @@ } }, "flex-layout.col#quickview-add-to-card-button": { - "children": [ - "add-to-cart-button" - ], + "children": ["add-to-cart-button"], "props": { "width": "grow" } }, "flex-layout.row#quickview-actions-2": { - "children": [ - "link.product#button-pdp" - ] + "children": ["link.product#button-pdp"] }, "link.product#button-pdp": { "props": { @@ -107,15 +98,10 @@ } }, "flex-layout.col#quickview-images": { - "children": [ - "product-images#quickview" - ] + "children": ["product-images#quickview"] }, "flex-layout.col#quickview-product-details": { - "children": [ - "modal-content#quickview", - "modal-actions#quickview" - ], + "children": ["modal-content#quickview", "modal-actions#quickview"], "props": { "preventVerticalStretch": true, "blockClass": "quickviewDetails" @@ -134,7 +120,7 @@ "blockClass": "quickview" } }, - "product-images#quickview" : { + "product-images#quickview": { "props": { "blockClass": "quickview", "showNavigationArrows": true diff --git a/store/interfaces.json b/store/interfaces.json index c4b2ac4..fed3088 100644 --- a/store/interfaces.json +++ b/store/interfaces.json @@ -5,5 +5,13 @@ "html": { "component": "html", "composition": "children" + }, + + "installments": { + "component": "Installments" + }, + + "pix": { + "component": "Pix" } } diff --git a/styles/css/vtex.product-identifier.css b/styles/css/vtex.product-identifier.css index e3aa6d5..f542881 100644 --- a/styles/css/vtex.product-identifier.css +++ b/styles/css/vtex.product-identifier.css @@ -1,3 +1,19 @@ -.product-identifier--productReference { - margin-bottom: 1rem; +/* +0 - 600PX: Phone +600 - 900px: Table portrait +900 - 1200px: Tablet landscape +[1200 - 1800] is where our nortal styles apply +1800px + : Big desktop +*/ +/* Media Query M3 */ +/* Grid breakpoints */ +.product-identifier__label, .product-identifier__separator { + display: none; } +.product-identifier__value { + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: rgba(146, 146, 146, 0.478); +} \ No newline at end of file diff --git a/styles/css/vtex.product-price.css b/styles/css/vtex.product-price.css index 95f4cfe..0307721 100644 --- a/styles/css/vtex.product-price.css +++ b/styles/css/vtex.product-price.css @@ -1,79 +1,16 @@ -.listPrice { - color: #727273; - margin-bottom: .25rem; - font-size: 1rem; -} - +/* +0 - 600PX: Phone +600 - 900px: Table portrait +900 - 1200px: Tablet landscape +[1200 - 1800] is where our nortal styles apply +1800px + : Big desktop +*/ +/* Media Query M3 */ +/* Grid breakpoints */ .sellingPrice { - color: #3f3f40; - font-size: 1.25rem; -} - -.sellingPriceValue { - font-size: 2.25rem; + font-style: normal; font-weight: 700; -} - -.installments { - color: #727273; - margin-bottom: 1rem; -} - -.savings { - font-weight: 500; - color: #79B03A; -} - -.sellingPriceValue--summary { - font-size: 1.25rem; - font-weight: 600; - color: #2E2E2E; -} - -.savings--summary { - background: #8BC34A; - border-radius: 1000px; - align-items: center; - display: flex; - - padding-left: 0.5rem; - padding-right: 0.5rem; - font-size: 0.875rem; - font-weight: 600; - vertical-align: baseline; - color: #FFFFFF; -} - -.savings-discount--summary { - font-size: 0.875rem; - font-weight: 600; - vertical-align: baseline; - color: #FFFFFF; - padding-left: 0.5rem; - padding-right: 0.5rem; -} - -.listPrice--summary { - margin-bottom: 0.25rem; - font-size: .875rem; -} - -.installments--summary { - margin-bottom: 2rem; - font-size: 0.875rem; -} - -.savings--summaryPercentage { - background: #0f3e99; - border-radius: 1000px; - align-items: center; - display: flex; -} - -.savingsPercentage--summaryPercentage { - font-size: 0.875rem; - font-weight: 600; - vertical-align: baseline; - color: #FFFFFF; - padding: 0.25rem 0.5rem 0.25rem 0.5rem; -} + font-size: 25px; + line-height: 38px; + color: #000; +} \ No newline at end of file diff --git a/styles/css/vtex.product-quantity.css b/styles/css/vtex.product-quantity.css new file mode 100644 index 0000000..c0b45bd --- /dev/null +++ b/styles/css/vtex.product-quantity.css @@ -0,0 +1,74 @@ +/* +0 - 600PX: Phone +600 - 900px: Table portrait +900 - 1200px: Tablet landscape +[1200 - 1800] is where our nortal styles apply +1800px + : Big desktop +*/ +/* Media Query M3 */ +/* Grid breakpoints */ +.quantitySelectorContainer { + margin: 0; +} +.quantitySelectorContainer .quantitySelectorTitle { + display: none; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper-container) { + border: 1px solid #ccc; + width: 128px; + height: 49px; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__input) { + padding: 0; + border: none; + height: auto; + flex: 1; + color: #929292; + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__minus-button-container) { + justify-content: center; + display: flex; + align-items: center; + margin-left: 16px; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__plus-button-container) { + justify-content: center; + display: flex; + align-items: center; + margin-right: 16px; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__plus-button) { + border: none; + width: auto !important; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__minus-button) { + border: none; + width: auto !important; + background-color: transparent; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__plus-button__text) { + color: #000; + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__minus-button__text) { + color: #000; + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; +} \ No newline at end of file diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 8453d15..c3a71aa 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -31,4 +31,263 @@ height: 90px; border-radius: 8px; overflow: hidden; +} + +.productNameContainer { + margin-bottom: 8px; +} +.productNameContainer .productBrand { + color: #575757; + font-style: normal; + font-weight: 300; + font-size: 20px; + line-height: 34px; +} + +.skuSelectorContainer { + display: flex; + flex-direction: column-reverse; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho { + margin-bottom: 16px; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorNameContainer, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorNameContainer { + margin: 0; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorNameContainer .skuSelectorTextContainer .skuSelectorName, +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorNameContainer .skuSelectorTextContainer .skuSelectorNameSeparator, +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorNameContainer .skuSelectorTextContainer .skuSelectorSelectorImageValue, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorNameContainer .skuSelectorTextContainer .skuSelectorName, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorNameContainer .skuSelectorTextContainer .skuSelectorNameSeparator, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorNameContainer .skuSelectorTextContainer .skuSelectorSelectorImageValue { + font-size: 0; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList { + margin: 0; + gap: 16px; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem { + margin: 0; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .diagonalCross, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .diagonalCross { + background-image: none; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .diagonalCross::after, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .diagonalCross::after { + content: ""; + display: block; + width: 1px; + height: 40px; + background: #D5D5D5; + transform: rotate(45deg); + bottom: 0; + left: 50%; + position: relative; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .skuSelectorItem--selected .frameAround, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .skuSelectorItem--selected .frameAround { + display: none; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .skuSelectorItem--selected .skuSelectorInternalBox, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .skuSelectorItem--selected .skuSelectorInternalBox { + border: 2px solid #000; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .skuSelectorItem--selected .skuSelectorInternalBox .valueWrapper, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .skuSelectorItem--selected .skuSelectorInternalBox .valueWrapper { + color: #000; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .skuSelectorItem--selected .skuSelectorInternalBox .diagonalCross::after, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .skuSelectorItem--selected .skuSelectorInternalBox .diagonalCross::after { + background-color: #000; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorName::after { + content: "Outras Cores:"; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #929292; + text-transform: uppercase; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem { + width: 48px; + height: 48px; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox { + border: 1px solid rgba(185, 185, 185, 0.6); + border-radius: 50%; + position: absolute; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .diagonalCross { + background-image: none; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .diagonalCross::after { + content: ""; + height: 48px; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem--selected .frameAround { + display: none; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem--selected .skuSelectorInternalBox { + border: 2px solid #000; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem--selected .skuSelectorInternalBox .valueWrapper { + color: #000; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorOptionsList .skuSelectorItem--selected .skuSelectorInternalBox .diagonalCross::after { + background-color: #000; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorName::after { + content: "OUTROS TAMANHOS:"; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #929292; + text-transform: uppercase; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem { + width: 40px; + height: 40px; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox { + border: 1px solid #989898; + border-radius: 50%; + position: absolute; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem .skuSelectorInternalBox .valueWrapper { + padding: 0; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: rgba(185, 185, 185, 0.6); +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem--selected .frameAround { + display: none; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem--selected .skuSelectorInternalBox { + border: 2px solid #000; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem--selected .skuSelectorInternalBox .valueWrapper { + color: #000; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorOptionsList .skuSelectorItem--selected .skuSelectorInternalBox .diagonalCross::after { + background-color: #000; +} + +.shippingContainer { + position: relative; +} + +.shippingContainer :global(.vtex-input__label) { + font-size: 0; +} +.shippingContainer :global(.vtex-input__label)::after { + content: "CALCULAR FRETE:"; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #929292; +} + +.shippingContainer :global(.vtex-input-prefix__group) { + width: 280px; + height: 49px; + border: 1px solid #cccccc; + border-radius: 0; +} +@media screen and (max-width: 376px) { + .shippingContainer :global(.vtex-input-prefix__group) { + width: 100%; + } +} + +.shippingContainer :global(.vtex-address-form__postalCode) { + display: flex; + flex-wrap: wrap; + align-items: flex-end; + padding-bottom: 16px; +} + +.shippingContainer :global(.vtex-input) { + width: auto; +} +@media screen and (max-width: 376px) { + .shippingContainer :global(.vtex-input) { + width: 100%; + } +} + +.shippingContainer :global(.vtex-input__suffix) { + display: none; +} + +.shippingContainer :global(.vtex-address-form-4-x-input) { + padding: 16.5px 16px; + margin: 0; +} + +.shippingContainer :global(.vtex__icon-external-link) { + display: none; +} + +.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) { + padding: 0 0 16.5px 32px; + color: #000000 !important; +} +@media screen and (max-width: 376px) { + .shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) { + padding: 8px 0 0 0; + text-align: end; + width: 100%; + } +} +.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) :last-child { + color: #000000 !important; + font-style: normal; + font-weight: 400; + font-size: 12px; + line-height: 16px; + text-decoration-line: underline; +} +@media screen and (max-width: 376px) { + .shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) :last-child { + margin: 0; + } +} + +.shippingContainer :global(.vtex-button) { + width: auto; + border: none; + top: 27px; + left: 230px; + position: absolute; +} +@media screen and (max-width: 376px) { + .shippingContainer :global(.vtex-button) { + right: 0; + left: auto; + } +} + +.shippingContainer :global(.vtex-button__label) { + font-size: 0; + background-color: #000000; + width: 49px; + height: 49px; +} +.shippingContainer :global(.vtex-button__label)::after { + content: "OK"; + font-style: normal; + font-weight: 600; + font-size: 14px; + line-height: 19px; + color: #ffffff; } \ No newline at end of file diff --git a/styles/sass/pages/product/agenciamagma.store-theme.scss b/styles/sass/pages/product/agenciamagma.store-theme.scss deleted file mode 100644 index e69de29..0000000 diff --git a/styles/sass/pages/product/vtex.product-identifier.scss b/styles/sass/pages/product/vtex.product-identifier.scss new file mode 100644 index 0000000..9957e34 --- /dev/null +++ b/styles/sass/pages/product/vtex.product-identifier.scss @@ -0,0 +1,13 @@ +.product-identifier { + &__label, &__separator { + display: none; + } + + &__value { + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-550; + } +} diff --git a/styles/sass/pages/product/vtex.product-price.scss b/styles/sass/pages/product/vtex.product-price.scss new file mode 100644 index 0000000..063d5eb --- /dev/null +++ b/styles/sass/pages/product/vtex.product-price.scss @@ -0,0 +1,11 @@ +.sellingPrice { + font-style: normal; + font-weight: 700; + font-size: 25px; + line-height: 38px; + color: $black; +} + +.installments { + // background: red; +} diff --git a/styles/sass/pages/product/vtex.product-quantity.scss b/styles/sass/pages/product/vtex.product-quantity.scss new file mode 100644 index 0000000..f51bd52 --- /dev/null +++ b/styles/sass/pages/product/vtex.product-quantity.scss @@ -0,0 +1,69 @@ +.quantitySelectorContainer { + margin: 0; + .quantitySelectorTitle { + display: none; + } +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper-container) { + border: 1px solid #ccc; + width: 128px; + height: 49px; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__input) { + padding: 0; + border: none; + height: auto; + flex: 1; + color: #929292; + + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; +} + +.quantitySelectorContainer + :global(.vtex-numeric-stepper__minus-button-container) { + justify-content: center; + display: flex; + align-items: center; + margin-left: 16px; +} + +.quantitySelectorContainer + :global(.vtex-numeric-stepper__plus-button-container) { + justify-content: center; + display: flex; + align-items: center; + margin-right: 16px; +} +.quantitySelectorContainer :global(.vtex-numeric-stepper__plus-button) { + border: none; + width: auto !important; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__minus-button) { + border: none; + width: auto !important; + background-color: transparent; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__plus-button__text) { + color: #000; + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; +} + +.quantitySelectorContainer :global(.vtex-numeric-stepper__minus-button__text) { + color: #000; + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; +} + + diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 1c1b324..eab0b00 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -24,3 +24,312 @@ overflow: hidden; } } + +.productNameContainer { + margin-bottom: 8px; + + .productBrand { + color: $gray-700; + font-style: normal; + font-weight: 300; + font-size: 20px; + line-height: 34px; + } +} + +.skuSelectorContainer { + display: flex; + flex-direction: column-reverse; + .skuSelectorSubcontainer--cor, + .skuSelectorSubcontainer--tamanho { + margin-bottom: 16px; + .skuSelectorNameContainer { + margin: 0; + .skuSelectorTextContainer { + .skuSelectorName, + .skuSelectorNameSeparator, + .skuSelectorSelectorImageValue { + font-size: 0; + } + } + } + + .skuSelectorOptionsList { + margin: 0; + gap: 16px; + .skuSelectorItem { + margin: 0; + + .skuSelectorInternalBox { + .diagonalCross { + background-image: none; + + &::after { + content: ""; + display: block; + width: 1px; + height: 40px; + background: $gray-300; + + transform: rotate(45deg); + bottom: 0; + left: 50%; + // transform: translate(-50%, -50%); + position: relative; + } + } + + .skuSelectorItem--selected { + .frameAround { + display: none; + } + + .skuSelectorInternalBox { + border: 2px solid $black; + + .valueWrapper { + color: $black; + } + + .diagonalCross { + &::after { + background-color: $black; + } + } + } + } + } + } + } + } + + .skuSelectorSubcontainer--cor { + .skuSelectorName { + &::after { + content: "Outras Cores:"; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #929292; + text-transform: uppercase; + } + } + + .skuSelectorOptionsList { + .skuSelectorItem { + width: 48px; + height: 48px; + + .skuSelectorInternalBox { + border: 1px solid $gray-450; + border-radius: 50%; + position: absolute; + + .diagonalCross { + background-image: none; + + &::after { + content: ""; + height: 48px; + } + } + } + } + + .skuSelectorItem--selected { + .frameAround { + display: none; + } + + .skuSelectorInternalBox { + border: 2px solid $black; + + .valueWrapper { + color: $black; + } + + .diagonalCross { + &::after { + background-color: $black; + } + } + } + } + } + } + + .skuSelectorSubcontainer--tamanho { + .skuSelectorName { + &::after { + content: "OUTROS TAMANHOS:"; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #929292; + text-transform: uppercase; + } + } + .skuSelectorOptionsList { + .skuSelectorItem { + width: 40px; + height: 40px; + + .skuSelectorInternalBox { + border: 1px solid $gray-600; + border-radius: 50%; + position: absolute; + .valueWrapper { + padding: 0; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-450; + } + + // .diagonalCross { + // background-image: none; + + // &::after { + // content: ""; + // display: block; + // width: 1px; + // height: 40px; + // background: $gray-300; + + // transform: rotate(45deg); + // bottom: 0; + // left: 50%; + // // transform: translate(-50%, -50%); + // position: relative; + // } + // } + } + } + + .skuSelectorItem--selected { + .frameAround { + display: none; + } + + .skuSelectorInternalBox { + border: 2px solid $black; + + .valueWrapper { + color: $black; + } + + .diagonalCross { + &::after { + background-color: $black; + } + } + } + } + } + } +} + +.shippingContainer { + position: relative; +} +.shippingContainer :global(.vtex-input__label) { + font-size: 0; + + &::after { + content: "CALCULAR FRETE:"; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-500; + } +} + +.shippingContainer :global(.vtex-input-prefix__group) { + width: 280px; + height: 49px; + border: 1px solid #cccccc; + border-radius: 0; + + @media screen and (max-width: 376px) { + width: 100%; + } +} + +.shippingContainer :global(.vtex-address-form__postalCode) { + display: flex; + flex-wrap: wrap; + align-items: flex-end; + padding-bottom: 16px; +} +.shippingContainer :global(.vtex-input) { + width: auto; + + @media screen and (max-width: 376px) { + width: 100%; + } +} +.shippingContainer :global(.vtex-input__suffix) { + display: none; +} +.shippingContainer :global(.vtex-address-form-4-x-input) { + padding: 16.5px 16px; + margin: 0; +} +.shippingContainer :global(.vtex__icon-external-link) { + display: none; +} +.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) { + padding: 0 0 16.5px 32px; + color: #000000 !important; + + @media screen and (max-width: 376px) { + padding: 8px 0 0 0; + text-align: end; + width: 100%; + } + + :last-child { + color: #000000 !important; + font-style: normal; + font-weight: 400; + font-size: 12px; + line-height: 16px; + text-decoration-line: underline; + + @media screen and (max-width: 376px) { + margin: 0; + } + } +} + +.shippingContainer :global(.vtex-button) { + width: auto; + border: none; + top: 27px; + left: 230px; + position: absolute; + + @media screen and (max-width: 376px) { + right: 0; + left: auto; + } +} +.shippingContainer :global(.vtex-button__label) { + font-size: 0; + background-color: #000000; + width: 49px; + height: 49px; + &::after { + content: "OK"; + font-style: normal; + font-weight: 600; + font-size: 14px; + line-height: 19px; + + color: #ffffff; + } +} diff --git a/styles/sass/utils/_vars.scss b/styles/sass/utils/_vars.scss index 46395da..29ce22a 100644 --- a/styles/sass/utils/_vars.scss +++ b/styles/sass/utils/_vars.scss @@ -12,7 +12,15 @@ $color-blue: #4267b2; $color-green: #4caf50; +$gray-300: #D5D5D5; +$gray-400: #b9b9b9; +$gray-450: #b9b9b999; $gray-500: #929292; +$gray-550: rgba(146, 146, 146, 0.478); +$gray-600: #989898; +$gray-700: #575757; + +$black: #000; /* Grid breakpoints */ $grid-breakpoints: (