diff --git a/manifest.json b/manifest.json
index 9ee3cc5..a2cde0d 100644
--- a/manifest.json
+++ b/manifest.json
@@ -15,7 +15,6 @@
"postreleasy": "vtex publish --verbose"
},
"dependencies": {
- "agenciamagma.store-theme": "5.x",
"vtex.store": "2.x",
"vtex.store-header": "2.x",
"vtex.product-summary": "2.x",
diff --git a/react/PixComponents.tsx b/react/PixComponents.tsx
new file mode 100644
index 0000000..02adf66
--- /dev/null
+++ b/react/PixComponents.tsx
@@ -0,0 +1,3 @@
+import PixComponents from "./components/PixComponents";
+
+export default PixComponents;
diff --git a/react/assets/pixImage.svg b/react/assets/pixImage.svg
new file mode 100644
index 0000000..c675f09
--- /dev/null
+++ b/react/assets/pixImage.svg
@@ -0,0 +1,38 @@
+
diff --git a/react/components/PixComponents/PixImage.tsx b/react/components/PixComponents/PixImage.tsx
new file mode 100644
index 0000000..16be127
--- /dev/null
+++ b/react/components/PixComponents/PixImage.tsx
@@ -0,0 +1,154 @@
+import React from "react";
+
+export default function PixImage() {
+ return (
+
+ );
+}
diff --git a/react/components/PixComponents/index.tsx b/react/components/PixComponents/index.tsx
new file mode 100644
index 0000000..2321304
--- /dev/null
+++ b/react/components/PixComponents/index.tsx
@@ -0,0 +1,34 @@
+import React, { useEffect, useState } from "react";
+import { useProduct } from "vtex.product-context";
+import PixImage from "./PixImage";
+import Style from "./styles.css";
+
+const PixComponents = () => {
+ const [pixValue, setPixValue] = useState(0);
+ const productInfo = useProduct();
+ const productLowPrice =
+ productInfo?.product?.priceRange.sellingPrice.lowPrice;
+ useEffect(() => {
+ if (productLowPrice) {
+ setPixValue(productLowPrice * 0.9);
+ }
+ }, []);
+
+ return (
+
+
+
+
+
+ R$ {pixValue.toFixed(2).replace(".", ",")}
+
+
10 % de desconto
+
+
+
+ );
+};
+
+export default PixComponents;
diff --git a/react/components/PixComponents/styles.css b/react/components/PixComponents/styles.css
new file mode 100644
index 0000000..bb2b643
--- /dev/null
+++ b/react/components/PixComponents/styles.css
@@ -0,0 +1,24 @@
+.pixDiv {
+ display: flex;
+ gap: 26px;
+}
+
+.pixImgDiv {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.priceNormal {
+ font-weight: 700;
+ font-size: 18px;
+ line-height: 25px;
+ color: rgba(0, 0, 0, 0.58);
+}
+
+.priceDiscount {
+ font-weight: 300;
+ font-size: 13px;
+ line-height: 18px;
+ color: #929292;
+}
diff --git a/react/tsconfig.json b/react/tsconfig.json
index a26a540..b19356c 100644
--- a/react/tsconfig.json
+++ b/react/tsconfig.json
@@ -1,6 +1,7 @@
{
"extends": "@vtex/tsconfig",
"compilerOptions": {
+ "jsx": "react",
"noEmitOnError": false,
"lib": ["dom"],
"module": "esnext",
@@ -8,4 +9,4 @@
"target": "es2017"
},
"include": ["./typings/*.d.ts", "./**/*.tsx", "./**/*.ts"]
-}
\ No newline at end of file
+}
diff --git a/react/typings/css.d.ts b/react/typings/css.d.ts
new file mode 100644
index 0000000..6c77fb4
--- /dev/null
+++ b/react/typings/css.d.ts
@@ -0,0 +1,4 @@
+declare module "*.css" {
+ const css: any;
+ export default css;
+}
diff --git a/react/typings/svg.d.ts b/react/typings/svg.d.ts
new file mode 100644
index 0000000..5e52f80
--- /dev/null
+++ b/react/typings/svg.d.ts
@@ -0,0 +1,4 @@
+declare module "*.svg" {
+ const content: string;
+ export default content;
+}
diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc
index 6a916dc..5a5264d 100644
--- a/store/blocks/pdp/product.jsonc
+++ b/store/blocks/pdp/product.jsonc
@@ -4,8 +4,8 @@
"html#breadcrumb",
"condition-layout.product#availability",
"flex-layout.row#description",
- "flex-layout.row#specifications-title",
- "product-specification-group#table",
+ // "flex-layout.row#specifications-title",
+ // "product-specification-group#table",
"shelf.relatedProducts",
"product-questions-and-answers"
]
@@ -101,23 +101,48 @@
},
"children": [
"flex-layout.row#product-name",
+ "product-identifier.product",
"product-rating-summary",
- "flex-layout.row#list-price-savings",
+ // "flex-layout.row#list-price-savings",
"flex-layout.row#selling-price",
"product-installments",
- "product-separator",
- "product-identifier.product",
+ "pix-components",
+ // "product-separator",
"sku-selector",
- "product-quantity",
- "product-assembly-options",
- "product-gifts",
- "flex-layout.row#buy-button",
+ "flex-layout.row#quantity-and-add-button",
+ // "product-quantity",
+ // "product-assembly-options",
+ // "product-gifts",
+ // "flex-layout.row#buy-button",
"availability-subscriber",
- "shipping-simulator",
- "share#default"
+ "shipping-simulator"
+ // "share#default"
]
},
+ "flex-layout.row#quantity-and-add-button": {
+ "props": {
+ "blockClass": "quantity-and-add-button",
+ "preventHorizontalStretch": true,
+ "fullWidth": true,
+ "colGap": 0
+ },
+ "children": ["product-quantity", "flex-layout.row#buy-button"]
+ },
+
+ "product-identifier.product": {
+ "props": {
+ "blockClass": "product-identifier.productReference"
+ }
+ },
+
+ "product-installments": {
+ "props": {
+ "message": "{installmentsNumber} {hasInterest, select, true {x} false {}} de {installmentValue} sem juros",
+ "blockClass": "installmentsPrice"
+ }
+ },
+
"flex-layout.row#product-name": {
"props": {
"marginBottom": 3
@@ -132,10 +157,17 @@
}
},
+ "add-to-cart-button": {
+ "props": {
+ "blockClass": "add-to-cart-button"
+ }
+ },
+
"flex-layout.row#buy-button": {
"props": {
"marginTop": 4,
- "marginBottom": 7
+ "marginBottom": 7,
+ "blockClass": "add-to-cart-button-background"
},
"children": ["add-to-cart-button"]
},
diff --git a/store/blocks/product-price.jsonc b/store/blocks/product-price.jsonc
index 3035106..bb528e8 100644
--- a/store/blocks/product-price.jsonc
+++ b/store/blocks/product-price.jsonc
@@ -3,12 +3,9 @@
"props": {
"colGap": 2,
"preserveLayoutOnMobile": true,
- "preventHorizontalStretch": true,
- "marginBottom": 4
+ "preventHorizontalStretch": true
},
- "children": [
- "product-selling-price"
- ]
+ "children": ["product-selling-price"]
},
"flex-layout.row#list-price-savings": {
@@ -19,9 +16,6 @@
"marginBottom": 2,
"marginTop": 5
},
- "children": [
- "product-list-price",
- "product-price-savings"
- ]
+ "children": ["product-list-price", "product-price-savings"]
}
}
diff --git a/store/interfaces.json b/store/interfaces.json
index c4b2ac4..d831fd7 100644
--- a/store/interfaces.json
+++ b/store/interfaces.json
@@ -5,5 +5,8 @@
"html": {
"component": "html",
"composition": "children"
+ },
+ "pix-components": {
+ "component": "PixComponents"
}
}
diff --git a/styles/css/agenciamagma.store-theme.css b/styles/css/agenciamagma.store-theme.css
index 5e37ba5..34c4328 100644
--- a/styles/css/agenciamagma.store-theme.css
+++ b/styles/css/agenciamagma.store-theme.css
@@ -6,11 +6,4 @@
1800px + : Big desktop
*/
/* Media Query M3 */
-/* Grid breakpoints */
-.html {
- background-color: red;
-}
-
-.html--pdp-breadcrumb {
- background-color: green;
-}
\ No newline at end of file
+/* Grid breakpoints */
\ No newline at end of file
diff --git a/styles/css/vtex.add-to-cart-button.css b/styles/css/vtex.add-to-cart-button.css
new file mode 100644
index 0000000..d8585ee
--- /dev/null
+++ b/styles/css/vtex.add-to-cart-button.css
@@ -0,0 +1,22 @@
+@charset "UTF-8";
+/*
+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 */
+.buttonText--add-to-cart-button {
+ position: relative;
+ color: black;
+}
+.buttonText--add-to-cart-button::before {
+ content: "ADICIONAR À SACOLA";
+ position: absolute;
+ right: 15px;
+ top: 1px;
+ display: block;
+ color: white;
+}
\ No newline at end of file
diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css
index a7c5732..3eeba9e 100644
--- a/styles/css/vtex.flex-layout.css
+++ b/styles/css/vtex.flex-layout.css
@@ -1,98 +1,28 @@
-.flexRowContent--menu-link,
-.flexRowContent--main-header {
- padding: 0 0.5rem;
+/*
+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 */
+.flexRowContent--add-to-cart-button-background {
+ margin: unset;
+}
+.flexRowContent--add-to-cart-button-background :global(.vtex-button) {
+ background-color: black;
+ border-radius: 0;
+ border: 0;
+ height: 49px;
+ width: 526px;
+ margin-left: 10px;
}
-@media screen and (min-width: 40em) {
- .flexRowContent--menu-link,
- .flexRowContent--main-header {
- padding: 0 1rem;
- }
-}
-
-@media screen and (min-width: 80rem) {
- .flexRowContent--menu-link,
- .flexRowContent--main-header {
- padding: 0 0.25rem;
- }
-}
-
-.flexRowContent--menu-link {
- background-color: #03044e;
- color: #fff;
-}
-
-.flexRowContent--main-header {
- background-color: #f0f0f0;
-}
-
-.flexRowContent--main-header-mobile {
- align-items: center;
- padding: 0.625rem 0.5rem;
- background-color: #f0f0f0;
-}
-
-.flexRowContent--menu-link :global(.vtex-menu-2-x-styledLink) {
- color: #ffffff;
- font-size: 14px;
-}
-
-.flexRowContent--main-header :global(.vtex-menu-2-x-styledLink) {
- color: #727273;
- font-size: 14px;
-}
-
-.flexRow--deals {
- background-color: #0F3E99;
- padding: 14px 0px;
-}
-
-.flexRow--deals .stretchChildrenWidth {
- align-items: center;
-}
-
-.flexRow--deals .flexCol {
- align-items: center;
- margin-bottom: 5px;
- padding-top: 5px;
-}
-
-.flexCol--filterCol {
- max-width: 500px;
- min-width: 230px;
-}
-
-.flexCol--productCountCol {
- align-items: flex-start;
-}
-
-.flexCol--orderByCol {
- align-items: flex-end;
-}
-
-.flexCol--orderByMobileCol {
- width: 42%;
-}
-
-.flexCol--filterMobileCol {
- width: 38%;
-}
-
-.flexRow--quickviewMainRow {
+.flexColChild :global(.vtex-flex-layout-0-x-flexColChild) {
display: flex;
- max-height: 100%;
}
-.flexColChild--quickviewDetails:first-child {
- overflow-y: auto;
- height: 66% !important;
- overflow-x: hidden;
-}
-
-.flexColChild--quickviewDetails:last-child {
- height: 34% !important;
-}
-
-.flexRow--addToCartRow {
- padding-bottom: 1rem;
-}
+.flexRowContent--quantity-and-add-button :global(.vtex-button__label) {
+ padding: unset !important;
+}
\ No newline at end of file
diff --git a/styles/css/vtex.product-identifier.css b/styles/css/vtex.product-identifier.css
index e3aa6d5..b9301f4 100644
--- a/styles/css/vtex.product-identifier.css
+++ b/styles/css/vtex.product-identifier.css
@@ -1,3 +1,29 @@
-.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__separator {
+ display: none;
}
+
+.product-identifier__label {
+ display: none;
+}
+
+.product-identifier__value {
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ color: rgba(146, 146, 146, 0.48);
+}
+
+.product-identifier {
+ display: flex;
+ justify-content: end;
+ width: 100%;
+}
\ No newline at end of file
diff --git a/styles/css/vtex.product-price.css b/styles/css/vtex.product-price.css
index 95f4cfe..d5b9a11 100644
--- a/styles/css/vtex.product-price.css
+++ b/styles/css/vtex.product-price.css
@@ -1,79 +1,57 @@
-.listPrice {
- color: #727273;
- margin-bottom: .25rem;
- font-size: 1rem;
-}
-
-.sellingPrice {
- color: #3f3f40;
- font-size: 1.25rem;
-}
-
-.sellingPriceValue {
- font-size: 2.25rem;
+/*
+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--hasListPrice {
font-weight: 700;
+ font-size: 25px;
+ line-height: 38px;
+ margin: unset;
}
-.installments {
- color: #727273;
- margin-bottom: 1rem;
+.installments--installmentsPrice {
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
}
-.savings {
- font-weight: 500;
- color: #79B03A;
+.installmentsNumber--installmentsPrice {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
}
-.sellingPriceValue--summary {
- font-size: 1.25rem;
- font-weight: 600;
- color: #2E2E2E;
+.currencyCode--installmentsPrice {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
}
-.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;
+.currencyInteger--installmentsPrice {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
}
-.savings-discount--summary {
- font-size: 0.875rem;
- font-weight: 600;
- vertical-align: baseline;
- color: #FFFFFF;
- padding-left: 0.5rem;
- padding-right: 0.5rem;
+.currencyDecimal--installmentsPrice {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
}
-.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;
-}
+.currencyFraction--installmentsPrice {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
+}
\ 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..fde6969
--- /dev/null
+++ b/styles/css/vtex.product-quantity.css
@@ -0,0 +1,53 @@
+/*
+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: unset;
+}
+
+.quantitySelectorStepper {
+ border: none;
+}
+
+.quantitySelectorContainer :global(.vtex-styleguide-9-x-hideDecorators) {
+ border-left: none;
+ border-right: none;
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
+}
+
+.quantitySelectorTitle {
+ display: none;
+}
+
+.quantitySelectorContainer :global(.vtex-numeric-stepper__minus-button) {
+ background: unset;
+ border-radius: unset;
+ border-color: #cccccc;
+ color: black;
+ height: 49px;
+ width: 39px !important;
+}
+
+.quantitySelectorContainer :global(.vtex-numeric-stepper__input) {
+ border-color: #cccccc;
+ color: #929292;
+ height: 49px;
+ width: 50px;
+}
+
+.quantitySelectorContainer :global(.vtex-numeric-stepper__plus-button) {
+ border-radius: unset;
+ border-color: #cccccc;
+ color: black;
+ height: 49px;
+ width: 39px !important;
+}
\ No newline at end of file
diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css
index f8fa6cb..2974c94 100644
--- a/styles/css/vtex.store-components.css
+++ b/styles/css/vtex.store-components.css
@@ -1,3 +1,4 @@
+@charset "UTF-8";
/*
0 - 600PX: Phone
600 - 900px: Table portrait
@@ -7,6 +8,298 @@
*/
/* Media Query M3 */
/* Grid breakpoints */
-.newsletter {
- background: red;
+.productBrand--quickview {
+ font-weight: 300;
+ font-size: 20px;
+ line-height: 34px;
+ color: #575757;
+}
+
+.productNameContainer--quickview {
+ text-align: end;
+ margin-bottom: 8px;
+}
+
+.skuSelectorContainer {
+ display: flex;
+ flex-direction: column-reverse;
+}
+
+.skuSelectorInternalBox {
+ border-radius: 24px;
+}
+
+.skuSelectorItem {
+ height: 40px;
+ width: 40px;
+}
+
+.valueWrapper {
+ color: #989898;
+ padding: unset;
+}
+
+.diagonalCross {
+ transform: rotateY(180deg) scale(0.75);
+ color: #989898;
+}
+
+.frameAround {
+ border-radius: 24px;
+ border-color: black;
+}
+
+.skuSelectorName {
+ position: relative;
+ color: white;
+}
+.skuSelectorName::before {
+ content: "OUTRAS CORES:";
+ background-color: white;
+ white-space: nowrap;
+ position: absolute;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ color: #929292;
+}
+
+.skuSelectorSubcontainer--tamanho .skuSelectorName::before {
+ content: "OUTROS TAMANHOS:";
+ background-color: white;
+ white-space: nowrap;
+ position: absolute;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ color: #929292;
+}
+
+.shippingContainer {
+ position: relative;
+}
+.shippingContainer :global(.vtex-input__label) {
+ margin-top: 16px;
+}
+.shippingContainer :global(.vtex-input__label)::before {
+ content: "CALCULAR FRETE:";
+ background-color: white;
+ white-space: nowrap;
+ position: absolute;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ color: #929292;
+}
+.shippingContainer :global(.vtex-button) {
+ z-index: 1000;
+ border-radius: 0;
+ border: unset;
+ position: absolute;
+ background-color: black;
+ color: transparent;
+ left: 231px;
+ top: 24px;
+ width: 49px;
+ height: 49px;
+}
+.shippingContainer :global(.vtex-button)::before {
+ content: "OK";
+ white-space: nowrap;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ justify-content: center;
+ font-weight: 600;
+ font-size: 14px;
+ line-height: 19px;
+ display: flex;
+ align-items: center;
+ color: #ffffff;
+}
+.shippingContainer :global(.vtex-address-form-4-x-input) {
+ width: 100%;
+}
+.shippingContainer :global(.vtex-address-form-4-x-input):focus {
+ z-index: 999;
+}
+.shippingContainer :global(.vtex-address-form-4-x-input):not(:empty) {
+ z-index: 999;
+}
+.shippingContainer :global(.vtex-input-prefix__group) {
+ border-radius: 0;
+ color: #cccccc;
+ width: 280px;
+ height: 49px;
+}
+.shippingContainer :global(.vtex-input-prefix__group)::before {
+ content: "Digite seu CEP";
+ position: absolute;
+ padding: 16px 16.5px 0;
+ white-space: nowrap;
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ display: flex;
+ align-items: center;
+ color: #afafaf;
+}
+.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) {
+ position: absolute;
+ top: 24px;
+ left: 312px;
+}
+.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) :first-child {
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ text-decoration-line: underline;
+ color: #000000;
+}
+.shippingContainer :global(.vtex__icon-external-link) {
+ display: none;
+}
+
+.shippingTable {
+ display: grid;
+ flex-direction: column;
+ border: unset;
+ padding: unset;
+ margin: unset;
+ gap: 15px;
+}
+.shippingTable :global(.vtex-store-components-3-x-shippingTableRow) {
+ display: grid;
+ text-align: left;
+ grid-template-columns: 110px 110px 110px;
+}
+.shippingTable :global(.vtex-store-components-3-x-shippingTableRow) :nth-child(even) {
+ order: 4;
+}
+
+.shippingTableHead {
+ display: grid;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ color: #202020;
+}
+
+.shippingTableRadioBtn {
+ display: none;
+}
+
+.shippingTableCellDeliveryName {
+ display: grid;
+ margin-bottom: 15px;
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: #afafaf;
+ padding: unset;
+}
+
+.shippingTableCellDeliveryEstimate {
+ display: grid;
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: #afafaf;
+ padding: unset;
+}
+
+.shippingTableCellDeliveryPrice {
+ display: grid;
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: #afafaf;
+ padding: unset;
+}
+
+.title {
+ color: transparent;
+ position: relative;
+}
+.title::before {
+ content: "Digite seu CEP";
+ background-color: #ffffff;
+ position: absolute;
+ font-weight: 700;
+ font-size: 14px;
+ line-height: 19px;
+ display: flex;
+ align-items: center;
+ color: #868686;
+}
+
+.subscribeLabel {
+ color: transparent;
+ position: relative;
+}
+.subscribeLabel::before {
+ content: "Deseja saber quando estiver disponível?";
+ background-color: #ffffff;
+ position: absolute;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ display: flex;
+ align-items: center;
+ color: #868686;
+}
+
+.submit :global(.vtex-button) {
+ width: 100%;
+ color: transparent;
+ position: relative;
+ background-color: black;
+ border-radius: 0;
+ border-color: black;
+ height: 49px;
+}
+.submit :global(.vtex-button)::before {
+ content: "AVISE-ME";
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translateX(-50%) translateY(-50%);
+ font-weight: 600;
+ font-size: 18px;
+ line-height: 25px;
+ color: #ffffff;
+}
+
+.content :global(.vtex-styleguide-9-x-input) {
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: #989898;
+}
+
+.content :global(.vtex-input-prefix__group) {
+ border-radius: 0;
+}
+
+.content :global(.vtex-store-components-3-x-submit) {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ right: 0;
+}
+
+.content :global(.vtex-store-components-3-x-input) {
+ margin: unset;
+ margin-bottom: 15px;
+}
+
+.content {
+ position: relative;
+ max-width: unset;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.content :first-child {
+ margin-right: 8px;
}
\ 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
index ea7d5b9..8b13789 100644
--- a/styles/sass/pages/product/agenciamagma.store-theme.scss
+++ b/styles/sass/pages/product/agenciamagma.store-theme.scss
@@ -1,8 +1 @@
-.html {
- background-color: red;
-}
-
-.html--pdp-breadcrumb {
- background-color: green;
-}
diff --git a/styles/sass/pages/product/vtex.add-to-cart-button.scss b/styles/sass/pages/product/vtex.add-to-cart-button.scss
new file mode 100644
index 0000000..95f827a
--- /dev/null
+++ b/styles/sass/pages/product/vtex.add-to-cart-button.scss
@@ -0,0 +1,12 @@
+.buttonText--add-to-cart-button {
+ position: relative;
+ color: black;
+ &::before {
+ content: "ADICIONAR À SACOLA";
+ position: absolute;
+ right: 15px;
+ top: 1px;
+ display: block;
+ color: white;
+ }
+}
diff --git a/styles/sass/pages/product/vtex.flex-layout.scss b/styles/sass/pages/product/vtex.flex-layout.scss
new file mode 100644
index 0000000..3d1e57d
--- /dev/null
+++ b/styles/sass/pages/product/vtex.flex-layout.scss
@@ -0,0 +1,20 @@
+.flexRowContent--add-to-cart-button-background {
+ margin: unset;
+
+ :global(.vtex-button) {
+ background-color: black;
+ border-radius: 0;
+ border: 0;
+ height: 49px;
+ width: 526px;
+ margin-left: 10px;
+ }
+}
+
+.flexColChild :global(.vtex-flex-layout-0-x-flexColChild) {
+ display: flex;
+}
+
+.flexRowContent--quantity-and-add-button :global(.vtex-button__label) {
+ padding: unset !important;
+}
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..16fa8bc
--- /dev/null
+++ b/styles/sass/pages/product/vtex.product-identifier.scss
@@ -0,0 +1,20 @@
+.product-identifier__separator {
+ display: none;
+}
+
+.product-identifier__label {
+ display: none;
+}
+
+.product-identifier__value {
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ color: rgba(146, 146, 146, 0.48);
+}
+
+.product-identifier {
+ display: flex;
+ justify-content: end;
+ width: 100%;
+}
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..6319360
--- /dev/null
+++ b/styles/sass/pages/product/vtex.product-price.scss
@@ -0,0 +1,47 @@
+.sellingPrice--hasListPrice {
+ font-weight: 700;
+ font-size: 25px;
+ line-height: 38px;
+ margin: unset;
+}
+
+.installments--installmentsPrice {
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
+}
+
+.installmentsNumber--installmentsPrice {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
+}
+
+.currencyCode--installmentsPrice {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
+}
+
+.currencyInteger--installmentsPrice {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
+}
+
+.currencyDecimal--installmentsPrice {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
+}
+.currencyFraction--installmentsPrice {
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
+}
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..71fdc04
--- /dev/null
+++ b/styles/sass/pages/product/vtex.product-quantity.scss
@@ -0,0 +1,44 @@
+.quantitySelectorContainer {
+ margin: unset;
+}
+
+.quantitySelectorStepper {
+ border: none;
+}
+
+.quantitySelectorContainer :global(.vtex-styleguide-9-x-hideDecorators) {
+ border-left: none;
+ border-right: none;
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 22px;
+ color: #929292;
+}
+
+.quantitySelectorTitle {
+ display: none;
+}
+
+.quantitySelectorContainer :global(.vtex-numeric-stepper__minus-button) {
+ background: unset;
+ border-radius: unset;
+ border-color: #cccccc;
+ color: black;
+ height: 49px;
+ width: 39px !important;
+}
+
+.quantitySelectorContainer :global(.vtex-numeric-stepper__input) {
+ border-color: #cccccc;
+ color: #929292;
+ height: 49px;
+ width: 50px;
+}
+
+.quantitySelectorContainer :global(.vtex-numeric-stepper__plus-button) {
+ border-radius: unset;
+ border-color: #cccccc;
+ color: black;
+ height: 49px;
+ width: 39px !important;
+}
diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss
index 36d0f22..775c099 100644
--- a/styles/sass/pages/product/vtex.store-components.scss
+++ b/styles/sass/pages/product/vtex.store-components.scss
@@ -1,3 +1,300 @@
-.newsletter{
- background: red;
-}
\ No newline at end of file
+.productBrand--quickview {
+ font-weight: 300;
+ font-size: 20px;
+ line-height: 34px;
+ color: #575757;
+}
+
+.productNameContainer--quickview {
+ text-align: end;
+ margin-bottom: 8px;
+}
+
+.skuSelectorContainer {
+ display: flex;
+ flex-direction: column-reverse;
+}
+
+.skuSelectorInternalBox {
+ border-radius: 24px;
+}
+
+.skuSelectorItem {
+ height: 40px;
+ width: 40px;
+}
+
+.valueWrapper {
+ color: #989898;
+ padding: unset;
+}
+
+.diagonalCross {
+ transform: rotateY(180deg) scale(0.75);
+ color: #989898;
+}
+
+.frameAround {
+ border-radius: 24px;
+ border-color: black;
+}
+
+.skuSelectorName {
+ position: relative;
+ color: white;
+ &::before {
+ content: "OUTRAS CORES:";
+ background-color: white;
+ white-space: nowrap;
+ position: absolute;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ color: #929292;
+ }
+}
+
+.skuSelectorSubcontainer--tamanho {
+ .skuSelectorName {
+ &::before {
+ content: "OUTROS TAMANHOS:";
+ background-color: white;
+ white-space: nowrap;
+ position: absolute;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ color: #929292;
+ }
+ }
+}
+
+.shippingContainer {
+ position: relative;
+ :global(.vtex-input__label) {
+ margin-top: 16px;
+ &::before {
+ content: "CALCULAR FRETE:";
+ background-color: white;
+ white-space: nowrap;
+ position: absolute;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ color: #929292;
+ }
+ }
+ :global(.vtex-button) {
+ z-index: 1000;
+ border-radius: 0;
+ border: unset;
+ position: absolute;
+ background-color: black;
+ color: transparent;
+ left: 231px;
+ top: 24px;
+ width: 49px;
+ height: 49px;
+ &::before {
+ content: "OK";
+ white-space: nowrap;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ justify-content: center;
+ font-weight: 600;
+ font-size: 14px;
+ line-height: 19px;
+ display: flex;
+ align-items: center;
+ color: #ffffff;
+ }
+ }
+ :global(.vtex-address-form-4-x-input) {
+ &:focus {
+ z-index: 999;
+ }
+ &:not(:empty) {
+ z-index: 999;
+ }
+ width: 100%;
+ }
+ :global(.vtex-input-prefix__group) {
+ &::before {
+ content: "Digite seu CEP";
+ position: absolute;
+ padding: 16px 16.5px 0;
+ white-space: nowrap;
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ display: flex;
+ align-items: center;
+ color: #afafaf;
+ }
+ border-radius: 0;
+ color: #cccccc;
+ width: 280px;
+ height: 49px;
+ }
+ :global(.vtex-address-form__postalCode-forgottenURL) {
+ position: absolute;
+ top: 24px;
+ left: 312px;
+ :first-child {
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ text-decoration-line: underline;
+ color: #000000;
+ }
+ }
+ :global(.vtex__icon-external-link) {
+ display: none;
+ }
+}
+
+.shippingTable {
+ display: grid;
+ flex-direction: column;
+ border: unset;
+ padding: unset;
+ margin: unset;
+ gap: 15px;
+ :global(.vtex-store-components-3-x-shippingTableRow) {
+ display: grid;
+ text-align: left;
+ grid-template-columns: 110px 110px 110px;
+ :nth-child(even) {
+ order: 4;
+ }
+ }
+}
+
+.shippingTableHead {
+ display: grid;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ color: #202020;
+}
+
+.shippingTableRadioBtn {
+ display: none;
+}
+
+.shippingTableCellDeliveryName {
+ display: grid;
+ margin-bottom: 15px;
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: #afafaf;
+ padding: unset;
+}
+
+.shippingTableCellDeliveryEstimate {
+ display: grid;
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: #afafaf;
+ padding: unset;
+}
+
+.shippingTableCellDeliveryPrice {
+ display: grid;
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: #afafaf;
+ padding: unset;
+}
+
+// Produto indisponivel
+
+.title {
+ color: transparent;
+ position: relative;
+ &::before {
+ content: "Digite seu CEP";
+ background-color: #ffffff;
+ position: absolute;
+ font-weight: 700;
+ font-size: 14px;
+ line-height: 19px;
+ display: flex;
+ align-items: center;
+ color: #868686;
+ }
+}
+
+.subscribeLabel {
+ color: transparent;
+ position: relative;
+ &::before {
+ content: "Deseja saber quando estiver disponível?";
+ background-color: #ffffff;
+ position: absolute;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+ display: flex;
+ align-items: center;
+ color: #868686;
+ }
+}
+
+.submit :global(.vtex-button) {
+ width: 100%;
+ color: transparent;
+ position: relative;
+ background-color: black;
+ border-radius: 0;
+ border-color: black;
+ height: 49px;
+ &::before {
+ content: "AVISE-ME";
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translateX(-50%) translateY(-50%);
+ font-weight: 600;
+ font-size: 18px;
+ line-height: 25px;
+ color: #ffffff;
+ }
+}
+
+.content :global(.vtex-styleguide-9-x-input) {
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: #989898;
+}
+.content :global(.vtex-input-prefix__group) {
+ border-radius: 0;
+}
+
+.content :global(.vtex-store-components-3-x-submit) {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ right: 0;
+}
+
+.content :global(.vtex-store-components-3-x-input) {
+ margin: unset;
+ margin-bottom: 15px;
+}
+
+.content {
+ :first-child {
+ margin-right: 8px;
+ }
+ position: relative;
+ max-width: unset;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}