From e1a99a7e3cb78ddb12849c230108c95404f9e6c5 Mon Sep 17 00:00:00 2001 From: Emmanuel Vitor Date: Wed, 8 Feb 2023 15:42:15 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20cria=20estiliza=C3=A7=C3=A3o=20da=20col?= =?UTF-8?q?una=20direita=20do=20product=20main?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- react/components/Html/index.tsx | 58 ++--- react/components/Html/styles.css | 6 + store/blocks/pdp/tab-layout-product.jsonc | 5 + styles/css/agenciamagma.store-theme.css | 16 -- styles/css/vtex.flex-layout.css | 1 - styles/css/vtex.product-identifier.css | 2 +- styles/css/vtex.product-quantity.css | 27 ++ styles/css/vtex.store-components.css | 190 ++++++++++++++ .../product/agenciamagma.store-theme.scss | 7 - .../sass/pages/product/vtex.flex-layout.scss | 1 - .../product/vtex.product-identifier.scss | 6 +- .../pages/product/vtex.product-quantity.scss | 26 ++ .../pages/product/vtex.store-components.scss | 235 +++++++++++++++++- styles/sass/utils/_vars.scss | 2 +- 14 files changed, 518 insertions(+), 64 deletions(-) delete mode 100644 styles/css/agenciamagma.store-theme.css create mode 100644 styles/css/vtex.product-quantity.css delete mode 100644 styles/sass/pages/product/agenciamagma.store-theme.scss create mode 100644 styles/sass/pages/product/vtex.product-quantity.scss diff --git a/react/components/Html/index.tsx b/react/components/Html/index.tsx index d60d7f5..c44dc53 100644 --- a/react/components/Html/index.tsx +++ b/react/components/Html/index.tsx @@ -1,41 +1,41 @@ import React, { ReactNode } from "react"; import { useCssHandles } from "vtex.css-handles"; - +import "./styles.css" const CSS_HANDLES = ["html"] as const; type HtmlProps = { - children?: ReactNode, - /** - * Qual tag Html que deseja que seja usar - * - * @default div + children?: ReactNode, + /** + * Qual tag Html que deseja que seja usar + * + * @default div + */ + tag?: keyof React.ReactHTML + /** + * Classes CSS extras que deseja adicionar. + * Feito para uso de [classes do tachyons](https://tachyons.io/) + */ + tachyonsClasses?: string + /** + * Se caso quiser usar esse componente + * para adicinar um texto simples + */ + text?: string + /** + * Tag ID para */ - tag?: keyof React.ReactHTML - /** - * Classes CSS extras que deseja adicionar. - * Feito para uso de [classes do tachyons](https://tachyons.io/) - */ - tachyonsClasses?: string - /** - * Se caso quiser usar esse componente - * para adicinar um texto simples - */ - text?: string - /** - * Tag ID para - */ - testId?: string + testId?: string } export const Html = ({ children = null, tag = "div", text = "", tachyonsClasses: classes = "", testId }: HtmlProps) => { - const { handles } = useCssHandles(CSS_HANDLES); + const { handles } = useCssHandles(CSS_HANDLES); - const props = { - className: `${handles.html} ${classes}`, - "data-testid": testId - }; - const Children = <>{children}{text}; - const Element = React.createElement(tag, props, Children); + const props = { + className: `${handles.html} ${classes}`, + "data-testid": testId + }; + const Children = <>{children}{text}; + const Element = React.createElement(tag, props, Children); - return <>{Element}; + return <>{Element}; }; diff --git a/react/components/Html/styles.css b/react/components/Html/styles.css index 131fa3b..73c5731 100644 --- a/react/components/Html/styles.css +++ b/react/components/Html/styles.css @@ -3,6 +3,8 @@ column-gap: 10px; } + + /* Tablet */ @media (max-width: 1024px) { [class*="html--container__buyButton"] { @@ -97,3 +99,7 @@ max-width:314.4px; width: unset; max-width: 291.2px; }} + +[class*="html--quantity"] { + max-width: 128px!important; + } diff --git a/store/blocks/pdp/tab-layout-product.jsonc b/store/blocks/pdp/tab-layout-product.jsonc index a8ce6a3..0ed0ac0 100644 --- a/store/blocks/pdp/tab-layout-product.jsonc +++ b/store/blocks/pdp/tab-layout-product.jsonc @@ -101,6 +101,11 @@ }, "children": ["product-images#imageDescription", "product-description"] }, + "product-description": { + "props": { + "collapseContent": false + } + }, "flex-layout.row#wrapperImageDescription": { "props": { "blockClass": "imageDescription", diff --git a/styles/css/agenciamagma.store-theme.css b/styles/css/agenciamagma.store-theme.css deleted file mode 100644 index 5e37ba5..0000000 --- a/styles/css/agenciamagma.store-theme.css +++ /dev/null @@ -1,16 +0,0 @@ -/* -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 */ -.html { - background-color: red; -} - -.html--pdp-breadcrumb { - background-color: green; -} \ No newline at end of file diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css index e2913d7..b040f82 100644 --- a/styles/css/vtex.flex-layout.css +++ b/styles/css/vtex.flex-layout.css @@ -10,7 +10,6 @@ .flexRowContent--product-main { padding: 0 40px; margin: 0; - border: 1px solid red; column-gap: 32px; } @media (max-width: 1024px) { diff --git a/styles/css/vtex.product-identifier.css b/styles/css/vtex.product-identifier.css index bc1fe06..8da6e20 100644 --- a/styles/css/vtex.product-identifier.css +++ b/styles/css/vtex.product-identifier.css @@ -15,6 +15,7 @@ .product-identifier--productReference { display: block; padding-right: 0; + padding-bottom: 24px; } } .product-identifier--productReference .product-identifier__label, @@ -27,7 +28,6 @@ font-weight: 400; font-size: 14px; line-height: 19px; - /* identical to box height */ text-align: right; color: rgba(146, 146, 146, 0.4784313725); } \ 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..a547762 --- /dev/null +++ b/styles/css/vtex.product-quantity.css @@ -0,0 +1,27 @@ +/* +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 */ +.quantitySelectorStepper { + border: 1px solid #989898; + max-width: 128px; + padding: 3.5px 0; +} +.quantitySelectorStepper :global(.vtex-numeric-stepper-wrapper) :global(.vtex-numeric-stepper-container) :global(.vtex-numeric-stepper__input) { + border: none; + width: 28px; +} +.quantitySelectorStepper :global(.vtex-numeric-stepper-wrapper) :global(.vtex-numeric-stepper-container) :global(.vtex-numeric-stepper__plus-button), +.quantitySelectorStepper :global(.vtex-numeric-stepper-wrapper) :global(.vtex-numeric-stepper-container) :global(.vtex-numeric-stepper__minus-button) { + border: none; + background-color: #fff; +} + +.quantitySelectorContainer--quantity__wrapper { + width: 128px; +} \ No newline at end of file diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 59a84aa..ebff6ce 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -119,6 +119,196 @@ padding-left: 0 !important; padding-right: 0 !important; } +:global(.vtex-store-components-3-x-container) .productNameContainer--quickview { + text-align: end; + padding-bottom: 8px; +} +@media (max-width: 1024px) { + :global(.vtex-store-components-3-x-container) .productNameContainer--quickview { + text-align: initial; + } +} + +.shippingContainer { + display: flex; + flex-direction: row; + position: relative; + width: 100%; +} +.shippingContainer :global(.vtex-address-form__postalCode) { + display: flex; +} +@media (max-width: 1024px) { + .shippingContainer :global(.vtex-address-form__postalCode) { + flex-direction: column; + } +} +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-address-form__postalCode-forgottenURL) { + position: absolute; + left: 312px; + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + font-size: 12px; + line-height: 16px; + display: flex; + align-items: center; + text-decoration-line: underline; +} +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-address-form__postalCode-forgottenURL) :last-child { + color: #000; +} +@media (max-width: 1024px) { + .shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-address-form__postalCode-forgottenURL) { + position: initial; + } +} +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-address-form__postalCode-forgottenURL) :global(.vtex__icon-external-link) { + display: none; +} +.shippingContainer :global(.vtex-input__label) { + display: none; +} +.shippingContainer :global(.vtex-input-prefix__group) { + border: 1px solid #cccccc; + border-radius: 0; + max-width: 231px; + height: 49px; +} +.shippingContainer :global(.vtex-input-prefix__group) :global(.vtex-address-form-4-x-input), +.shippingContainer :global(.vtex-input-prefix__group) :global(.vtex-address-form-4-x-input)::placeholder { + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + font-size: 12px; + line-height: 16px; + display: flex; + align-items: center; + color: #afafaf; +} +.shippingContainer :global(.vtex-button) { + background: none; + border: none; + width: 49px; + height: 49px; + border-radius: 0; + background-color: #000; +} +.shippingContainer :global(.vtex-button) :global(.vtex-button__label) { + font-size: 0; +} +.shippingContainer :global(.vtex-button) :global(.vtex-button__label)::after { + content: "OK"; + font-family: "Open Sans"; + font-style: normal; + font-weight: 600; + font-size: 14px; + line-height: 19px; + /* identical to box height */ + display: flex; + align-items: center; + color: #ffffff; +} + +.shippingTable { + width: 100%; + max-width: 326px; + margin: 0; + padding: 0; + border: 0; +} +.shippingTable .shippingTableHead { + display: table-header-group; +} +.shippingTable .shippingTableHead .shippingTableRow { + display: flex; + column-gap: 32px; + padding-bottom: 15px; +} +.shippingTable .shippingTableHead .shippingTableRow .shippingTableHeadDeliveryName, +.shippingTable .shippingTableHead .shippingTableRow .shippingTableHeadDeliveryEstimate { + display: flex; + width: 100%; + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + text-transform: uppercase; + /* identical to box height */ + color: #202020; +} +.shippingTable .shippingTableHead .shippingTableRow .shippingTableHeadDeliveryName { + width: 100%; + max-width: 78px; +} +.shippingTable .shippingTableHead .shippingTableRow .shippingTableHeadDeliveryEstimate { + order: 3; + width: 100%; + max-width: 136px; +} +.shippingTable .shippingTableHead .shippingTableRow .shippingTableHeadDeliveryPrice { + width: 100%; + max-width: 48px; + display: flex; + order: 2; + width: 100%; + font-size: 0; +} +.shippingTable .shippingTableHead .shippingTableRow .shippingTableHeadDeliveryPrice::after { + content: "Frete"; + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + text-transform: uppercase; + /* identical to box height */ + color: #202020; +} +.shippingTable .shippingTableBody { + display: flex; + flex-direction: column; + align-items: center; + row-gap: 15px; +} +.shippingTable .shippingTableBody .shippingTableRow { + display: flex; + justify-content: space-between; + width: 100%; +} +.shippingTable .shippingTableBody .shippingTableRow .shippingTableCellDeliveryName, +.shippingTable .shippingTableBody .shippingTableRow .shippingTableCellDeliveryPrice, +.shippingTable .shippingTableBody .shippingTableRow .shippingTableCellDeliveryEstimate { + display: flex; + flex: 1; + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + font-size: 12px; + line-height: 16px; + display: flex; + align-items: center; + color: #afafaf; + padding: 0; +} +.shippingTable .shippingTableBody .shippingTableRow .shippingTableCellDeliveryName .shippingTableLabel .shippingTableRadioBtn { + display: none; +} +.shippingTable .shippingTableBody .shippingTableRow .shippingTableCellDeliveryName { + width: 100%; + max-width: 78px; +} +.shippingTable .shippingTableBody .shippingTableRow .shippingTableCellDeliveryEstimate { + order: 3; + width: 100%; + max-width: 136px; +} +.shippingTable .shippingTableBody .shippingTableRow .shippingTableCellDeliveryPrice { + order: 2; + width: 100%; + max-width: 48px; +} @media (max-width: 1024px) { .subscriberContainer { 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 f94fd95..0000000 --- a/styles/sass/pages/product/agenciamagma.store-theme.scss +++ /dev/null @@ -1,7 +0,0 @@ -.html { - background-color: red; -} - -.html--pdp-breadcrumb { - background-color: green; -} \ No newline at end of file diff --git a/styles/sass/pages/product/vtex.flex-layout.scss b/styles/sass/pages/product/vtex.flex-layout.scss index c7004da..b3f9d94 100644 --- a/styles/sass/pages/product/vtex.flex-layout.scss +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -2,7 +2,6 @@ .flexRowContent--product-main { padding: 0 40px; margin: 0; - border: 1px solid red; column-gap: 32px; @media (max-width:1024px) { diff --git a/styles/sass/pages/product/vtex.product-identifier.scss b/styles/sass/pages/product/vtex.product-identifier.scss index 8fe7da2..75a970f 100644 --- a/styles/sass/pages/product/vtex.product-identifier.scss +++ b/styles/sass/pages/product/vtex.product-identifier.scss @@ -6,6 +6,7 @@ @media (max-width:1024px) { display: block; padding-right: 0; + padding-bottom: 24px; } .product-identifier__label, @@ -14,15 +15,12 @@ } .product-identifier__value { - font-family: 'Open Sans'; + font-family: $font-family; font-style: normal; font-weight: 400; font-size: 14px; line-height: 19px; - /* identical to box height */ - text-align: right; - color: #9292927a; } } \ No newline at end of file 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..1ac41e1 --- /dev/null +++ b/styles/sass/pages/product/vtex.product-quantity.scss @@ -0,0 +1,26 @@ +.quantitySelectorStepper { + border: 1px solid #989898; + max-width: 128px; + padding: 3.5px 0; + + + + :global(.vtex-numeric-stepper-wrapper) { + :global(.vtex-numeric-stepper-container) { + :global(.vtex-numeric-stepper__input) { + border: none; + width: 28px; + } + + :global(.vtex-numeric-stepper__plus-button), + :global(.vtex-numeric-stepper__minus-button) { + border: none; + background-color: #fff; + } + } + } +} + +.quantitySelectorContainer--quantity__wrapper { + width: 128px; +} \ No newline at end of file diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 3d0c7db..2f65724 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -118,13 +118,240 @@ } // FIM NEWSLETTER + // INICIO MAIN :global(.vtex-store-components-3-x-container) { padding-left: 0 !important; padding-right: 0 !important; + + .productNameContainer--quickview { + text-align: end; + padding-bottom: 8px; + + @media (max-width:1024px) { + text-align: initial; + } + } } +// Area de formulario do cep +.shippingContainer { + display: flex; + flex-direction: row; + position: relative; + width: 100%; + + :global(.vtex-address-form__postalCode) { + display: flex; + + @media (max-width:1024px) { + flex-direction: column; + } + + :global(.vtex-address-form__postalCode-forgottenURL) { + position: absolute; + left: 312px; + font-family: $font-family; + font-style: normal; + font-weight: 400; + font-size: 12px; + line-height: 16px; + display: flex; + align-items: center; + text-decoration-line: underline; + + :last-child { + color: #000; + } + + @media (max-width:1024px) { + position: initial; + } + + :global(.vtex__icon-external-link) { + display: none; + } + } + } + + :global(.vtex-input__label) { + display: none; + } + + :global(.vtex-input-prefix__group) { + border: 1px solid #cccccc; + border-radius: 0; + max-width: 231px; + height: 49px; + + + + :global(.vtex-address-form-4-x-input), + :global(.vtex-address-form-4-x-input)::placeholder { + font-family: $font-family; + font-style: normal; + font-weight: 400; + font-size: 12px; + line-height: 16px; + display: flex; + align-items: center; + + color: #afafaf; + } + + + } + + :global(.vtex-button) { + background: none; + border: none; + width: 49px; + height: 49px; + border-radius: 0; + background-color: #000; + + :global(.vtex-button__label) { + font-size: 0; + + &::after { + content: "OK"; + font-family: $font-family; + font-style: normal; + font-weight: 600; + font-size: 14px; + line-height: 19px; + /* identical to box height */ + + display: flex; + align-items: center; + + color: #ffffff; + } + } + } +} + +// Area de opcoes de entrega +.shippingTable { + width: 100%; + max-width: 326px; + margin: 0; + padding: 0; + border: 0; + + .shippingTableHead { + display: table-header-group; + + .shippingTableRow { + display: flex; + column-gap: 32px; + padding-bottom: 15px; + + .shippingTableHeadDeliveryName, + .shippingTableHeadDeliveryEstimate { + display: flex; + width: 100%; + font-family: $font-family; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + text-transform: uppercase; + /* identical to box height */ + color: #202020; + } + + .shippingTableHeadDeliveryName { + width: 100%; + max-width: 78px; + } + + .shippingTableHeadDeliveryEstimate { + order: 3; + width: 100%; + max-width: 136px; + } + + .shippingTableHeadDeliveryPrice { + width: 100%; + max-width: 48px; + display: flex; + order: 2; + width: 100%; + font-size: 0; + + &::after { + content: "Frete"; + font-family: $font-family; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + text-transform: uppercase; + /* identical to box height */ + + color: #202020; + } + } + } + } + + .shippingTableBody { + display: flex; + flex-direction: column; + align-items: center; + row-gap: 15px; + + .shippingTableRow { + display: flex; + justify-content: space-between; + width: 100%; + + .shippingTableCellDeliveryName, + .shippingTableCellDeliveryPrice, + .shippingTableCellDeliveryEstimate { + display: flex; + flex: 1; + font-family: $font-family; + font-style: normal; + font-weight: 400; + font-size: 12px; + line-height: 16px; + display: flex; + align-items: center; + + color: #afafaf; + padding: 0; + } + + .shippingTableCellDeliveryName { + .shippingTableLabel { + .shippingTableRadioBtn { + display: none; + } + } + } + + .shippingTableCellDeliveryName { + width: 100%; + max-width: 78px; + } + + .shippingTableCellDeliveryEstimate { + order: 3; + width: 100%; + max-width: 136px; + } + + .shippingTableCellDeliveryPrice { + order: 2; + width: 100%; + max-width: 48px; + } + } + } +} // FIM MAIN @@ -144,7 +371,7 @@ &::after { content: "Produto indisponível"; - font-family: "Open Sans"; + font-family: $font-family; font-style: normal; font-weight: 700; font-size: 14px; @@ -162,7 +389,7 @@ &::after { content: "Deseja saber quando estiver disponível?"; - font-family: "Open Sans"; + font-family: $font-family; font-style: normal; font-weight: 400; font-size: 14px; @@ -265,7 +492,7 @@ &::after { content: "avise-me"; - font-family: "Open Sans"; + font-family: $font-family; font-style: normal; font-weight: 600; font-size: 14px; @@ -447,7 +674,7 @@ .skuSelectorItemTextValue { padding: 0; margin: auto; - font-family: 'Open Sans'; + font-family: $font-family; font-style: normal; font-weight: 400; font-size: 14px; diff --git a/styles/sass/utils/_vars.scss b/styles/sass/utils/_vars.scss index a1585b1..d7f6b0b 100644 --- a/styles/sass/utils/_vars.scss +++ b/styles/sass/utils/_vars.scss @@ -1,4 +1,4 @@ -$font-family : "Open Sans"; +$font-family : $font-family; $color-black: #000000; $color-black2: #292929; $color-black3: #575757;