diff --git a/react/PixPrice.tsx b/react/PixPrice.tsx
new file mode 100644
index 0000000..7b6642a
--- /dev/null
+++ b/react/PixPrice.tsx
@@ -0,0 +1,3 @@
+import PixPrice from "./components/PixPrice/PixPrice";
+
+export default PixPrice;
diff --git a/react/components/Html/styles.css b/react/components/Html/styles.css
index c2f013e..e62f510 100644
--- a/react/components/Html/styles.css
+++ b/react/components/Html/styles.css
@@ -7,6 +7,7 @@
[class*="html--buy-button"] {
display: flex;
gap: 10px;
+ margin-bottom: 5px;
}
[class*="html--buy-button"] :global(.vtex-button) {
diff --git a/react/components/PixPrice/PixPrice.tsx b/react/components/PixPrice/PixPrice.tsx
new file mode 100644
index 0000000..01a9ccd
--- /dev/null
+++ b/react/components/PixPrice/PixPrice.tsx
@@ -0,0 +1,35 @@
+import React from "react";
+import { useProduct } from "vtex.product-context";
+import styles from "./styles.module.css";
+
+const PixPrice = () => {
+ // document.getElementsByClassName("myText").placeholder = "Type name here..";
+
+ const productContextValue = useProduct();
+
+ const productPrice =
+ productContextValue?.product?.priceRange?.sellingPrice?.lowPrice;
+
+ const descount = (Number(productPrice) * 10) / 100;
+
+ const total = Number(productPrice) - Number(descount.toFixed(2));
+
+ return (
+
diff --git a/react/typings/graphql.d.ts b/react/typings/graphql.d.ts
new file mode 100644
index 0000000..84017d3
--- /dev/null
+++ b/react/typings/graphql.d.ts
@@ -0,0 +1,6 @@
+declare module "*.graphql" {
+ import { DocumentNode } from "graphql";
+
+ const value: DocumentNode;
+ export default value;
+}
diff --git a/react/typings/storefront.d.ts b/react/typings/storefront.d.ts
new file mode 100644
index 0000000..4689dc6
--- /dev/null
+++ b/react/typings/storefront.d.ts
@@ -0,0 +1,15 @@
+import { FunctionComponent } from "react";
+
+declare global {
+ interface StorefrontFunctionComponent
+ extends FunctionComponent
{
+ getSchema?(props: P): GenericObject
+ schema?: GenericObject
+ }
+
+ interface StorefrontComponent
+ extends Component
{
+ getSchema?(props: P): GenericObject
+ schema: GenericObject
+ }
+}
diff --git a/react/typings/vtex.css-handles.ts b/react/typings/vtex.css-handles.ts
new file mode 100644
index 0000000..4f191a0
--- /dev/null
+++ b/react/typings/vtex.css-handles.ts
@@ -0,0 +1 @@
+declare module "vtex.css-handles"
diff --git a/react/typings/vtex.order-manager.d.ts b/react/typings/vtex.order-manager.d.ts
new file mode 100644
index 0000000..b563ce5
--- /dev/null
+++ b/react/typings/vtex.order-manager.d.ts
@@ -0,0 +1,103 @@
+/* eslint-disable no-inner-declarations */
+declare module "vtex.order-manager/OrderQueue" {
+ export * from "vtex.order-manager/react/OrderQueue";
+ export { default } from "vtex.order-manager/react/OrderQueue";
+
+ export const QueueStatus = {
+ PENDING: "Pending",
+ FULFILLED: "Fulfilled",
+ } as const;
+}
+
+declare module "vtex.order-manager/OrderForm" {
+ import { createContext, useContext } from "react";
+ import type { DEFAULT_ORDER_FORM } from "@vtex/order-manager/src/constants";
+ import type { Context, OrderForm } from "@vtex/order-manager/src/typings";
+
+ type DefaultOrderForm = typeof DEFAULT_ORDER_FORM;
+ type DefaultOrderFormOmited = Omit;
+ type DefaultOrderFormUpdated = DefaultOrderFormOmited & {
+ items: OrderFormItem[] | null;
+ };
+
+ export const OrderFormContext = createContext>({
+ orderForm: DefaultOrderFormUpdated,
+ setOrderForm: noop,
+ error: undefined,
+ loading: false,
+ });
+
+ function useOrderForm() {
+ const context = useContext(OrderFormContext);
+
+ if (context === undefined) {
+ throw new Error(
+ "useOrderForm must be used within a OrderFormProvider"
+ );
+ }
+ return context as Context;
+ }
+
+ export type OrderFormItem = {
+ additionalInfo: {
+ brandName: string;
+ __typename: string;
+ };
+ attachments: Array;
+ attachmentOfferings: Array;
+ bundleItems: Array;
+ parentAssemblyBinding: any;
+ parentItemIndex: any;
+ sellingPriceWithAssemblies: any;
+ options: any;
+ availability: string;
+ detailUrl: string;
+ id: string;
+ imageUrls: Record;
+ listPrice: number;
+ manualPrice: any;
+ measurementUnit: string;
+ modalType: any;
+ name: string;
+ offerings: Array;
+ price: number;
+ priceTags: Array;
+ productCategories: Record;
+ productCategoryIds: string;
+ productRefId: string;
+ productId: string;
+ quantity: number;
+ seller: string;
+ sellingPrice: number;
+ skuName: string;
+ skuSpecifications: Array;
+ unitMultiplier: number;
+ uniqueId: string;
+ refId: string;
+ isGift: boolean;
+ priceDefinition: {
+ calculatedSellingPrice: number;
+ total: number;
+ sellingPrices: Array<{
+ quantity: number;
+ value: number;
+ __typename: string;
+ }>;
+ __typename: string;
+ };
+ __typename: string;
+ };
+
+ export { OrderFormProvider, useOrderForm };
+ declare const _default: {
+ OrderFormProvider: import("react").FC>;
+ useOrderForm: typeof useOrderForm;
+ };
+ export default _default;
+}
+
+declare module "vtex.order-manager/constants" {
+ export * from "vtex.order-manager/react/constants";
+}
+
+
diff --git a/react/typings/vtex.render-runtime.d.ts b/react/typings/vtex.render-runtime.d.ts
new file mode 100644
index 0000000..bfb1e97
--- /dev/null
+++ b/react/typings/vtex.render-runtime.d.ts
@@ -0,0 +1,38 @@
+/* Typings for `render-runtime` */
+declare module "vtex.render-runtime" {
+ import { ComponentType, ReactElement, ReactType } from "react";
+
+ export interface NavigationOptions {
+ page: string
+ params?: any
+ }
+
+ export interface RenderContextProps {
+ runtime: {
+ navigate: (options: NavigationOptions) => void
+ }
+ }
+
+ interface ExtensionPointProps {
+ id: string
+ [key: string]: any
+ }
+
+ export const ExtensionPoint: ComponentType;
+
+ interface ChildBlockProps {
+ id: string
+ }
+
+ export const ChildBlock: ComponentType;
+ export const useChildBlock = () => GenericObject;
+
+ export const Helmet: ReactElement;
+ export const Link: ReactType;
+ export const NoSSR: ReactElement;
+ export const RenderContextConsumer: ReactElement;
+ export const canUseDOM: boolean;
+ export const withRuntimeContext: (
+ Component: ComponentType
+ ) => ComponentType;
+}
diff --git a/react/typings/vtex.styleguide.d.ts b/react/typings/vtex.styleguide.d.ts
new file mode 100644
index 0000000..6f1f00a
--- /dev/null
+++ b/react/typings/vtex.styleguide.d.ts
@@ -0,0 +1,9 @@
+declare module "vtex.styleguide" {
+ import { ComponentType } from "react";
+
+ export const Input: ComponentType;
+
+ interface InputProps {
+ [key: string]: any
+ }
+}
diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc
index a3de923..0b03d0c 100644
--- a/store/blocks/pdp/product.jsonc
+++ b/store/blocks/pdp/product.jsonc
@@ -117,6 +117,7 @@
"product-rating-summary",
"flex-layout.row#selling-price",
"product-installments",
+ "PixPrice",
"sku-selector",
"product-gifts",
// "flex-layout.row#buy-button",
diff --git a/store/interfaces.json b/store/interfaces.json
index c4b2ac4..aaa4ae2 100644
--- a/store/interfaces.json
+++ b/store/interfaces.json
@@ -5,5 +5,9 @@
"html": {
"component": "html",
"composition": "children"
+ },
+
+ "PixPrice": {
+ "component": "PixPrice"
}
}
diff --git a/styles/configs/style.json b/styles/configs/style.json
index 7b90b6b..e729845 100644
--- a/styles/configs/style.json
+++ b/styles/configs/style.json
@@ -1,349 +1,351 @@
{
- "typeScale": [
- 3, 2.25, 1.5, 1.25, 1, 0.875, 0.75
- ],
- "spacing": [0.125, 0.25, 0.5, 0.75, 1, 1.5, 2, 3, 4, 8, 16],
- "customMedia": [
- { "s": 20 },
- { "ns": {
- "value": 40,
- "minWidth": true
- }
- },
- { "m": {
- "value": 40,
- "minWidth": true
- }
- },
- { "l": {
- "value": 64,
- "minWidth": true
- }
- },
- { "xl": {
- "value": 80,
- "minWidth": true
- }
- }
- ],
- "colors": {
- "black-90": "rgba(0,0,0,.9)",
- "black-80": "rgba(0,0,0,.8)",
- "black-70": "rgba(0,0,0,.7)",
- "black-60": "rgba(0,0,0,.6)",
- "black-50": "rgba(0,0,0,.5)",
- "black-40": "rgba(0,0,0,.4)",
- "black-30": "rgba(0,0,0,.3)",
- "black-20": "rgba(0,0,0,.2)",
- "black-10": "rgba(0,0,0,.1)",
- "black-05": "rgba(0,0,0,.05)",
- "black-025": "rgba(0,0,0,.025)",
- "black-0125": "rgba(0,0,0,.0125)",
+ "typeScale": [3, 2.25, 1.5, 1.25, 1, 0.875, 0.75],
+ "spacing": [0.125, 0.25, 0.5, 0.75, 1, 1.5, 2, 3, 4, 8, 16],
+ "customMedia": [
+ { "s": 20 },
+ {
+ "ns": {
+ "value": 40,
+ "minWidth": true
+ }
+ },
+ {
+ "m": {
+ "value": 40,
+ "minWidth": true
+ }
+ },
+ {
+ "l": {
+ "value": 64,
+ "minWidth": true
+ }
+ },
+ {
+ "xl": {
+ "value": 80,
+ "minWidth": true
+ }
+ }
+ ],
+ "colors": {
+ "black-90": "rgba(0,0,0,.9)",
+ "black-80": "rgba(0,0,0,.8)",
+ "black-70": "rgba(0,0,0,.7)",
+ "black-60": "rgba(0,0,0,.6)",
+ "black-50": "rgba(0,0,0,.5)",
+ "black-40": "rgba(0,0,0,.4)",
+ "black-30": "rgba(0,0,0,.3)",
+ "black-20": "rgba(0,0,0,.2)",
+ "black-10": "rgba(0,0,0,.1)",
+ "black-05": "rgba(0,0,0,.05)",
+ "black-025": "rgba(0,0,0,.025)",
+ "black-0125": "rgba(0,0,0,.0125)",
- "white-90": "rgba(255,255,255,.9)",
- "white-80": "rgba(255,255,255,.8)",
- "white-70": "rgba(255,255,255,.7)",
- "white-60": "rgba(255,255,255,.6)",
- "white-50": "rgba(255,255,255,.5)",
- "white-40": "rgba(255,255,255,.4)",
- "white-30": "rgba(255,255,255,.3)",
- "white-20": "rgba(255,255,255,.2)",
- "white-10": "rgba(255,255,255,.1)",
- "white-05": "rgba(255,255,255,.05)",
- "white-025": "rgba(255,255,255,.025)",
- "white-0125": "rgba(255,255,255,.0125)"
+ "white-90": "rgba(255,255,255,.9)",
+ "white-80": "rgba(255,255,255,.8)",
+ "white-70": "rgba(255,255,255,.7)",
+ "white-60": "rgba(255,255,255,.6)",
+ "white-50": "rgba(255,255,255,.5)",
+ "white-40": "rgba(255,255,255,.4)",
+ "white-30": "rgba(255,255,255,.3)",
+ "white-20": "rgba(255,255,255,.2)",
+ "white-10": "rgba(255,255,255,.1)",
+ "white-05": "rgba(255,255,255,.05)",
+ "white-025": "rgba(255,255,255,.025)",
+ "white-0125": "rgba(255,255,255,.0125)"
+ },
+ "semanticColors": {
+ "background": {
+ "base": "#ffffff",
+ "base--inverted": "#03044e",
+ "action-primary": "#0F3E99",
+ "action-secondary": "#eef3f7",
+ "emphasis": "#f71963",
+ "disabled": "#f2f4f5",
+ "success": "#8bc34a",
+ "success--faded": "#eafce3",
+ "danger": "#ff4c4c",
+ "danger--faded": "#ffe6e6",
+ "warning": "#ffb100",
+ "warning--faded": "#fff6e0",
+ "muted-1": "#727273",
+ "muted-2": "#979899",
+ "muted-3": "#cacbcc",
+ "muted-4": "#e3e4e6",
+ "muted-5": "#f2f4f5"
+ },
+ "hover-background": {
+ "action-primary": "#072c75",
+ "action-secondary": "#dbe9fd",
+ "emphasis": "#dd1659",
+ "success": "#8bc34a",
+ "success--faded": "#eafce3",
+ "danger": "#e13232",
+ "danger--faded": "#ffe6e6",
+ "warning": "#ffb100",
+ "warning--faded": "#fff6e0",
+ "muted-1": "#727273",
+ "muted-2": "#979899",
+ "muted-3": "#cacbcc",
+ "muted-4": "#e3e4e6",
+ "muted-5": "#f2f4f5"
+ },
+ "active-background": {
+ "action-primary": "#0c389f",
+ "action-secondary": "#d2defc",
+ "emphasis": "#dd1659",
+ "success": "#8bc34a",
+ "success--faded": "#eafce3",
+ "danger": "#ff4c4c",
+ "danger--faded": "#ffe6e6",
+ "warning": "#ffb100",
+ "warning--faded": "#fff6e0",
+ "muted-1": "#727273",
+ "muted-2": "#979899",
+ "muted-3": "#cacbcc",
+ "muted-4": "#e3e4e6",
+ "muted-5": "#f2f4f5"
+ },
+ "text": {
+ "action-primary": "#0F3E99",
+ "action-secondary": "#eef3f7",
+ "link": "#0F3E99",
+ "emphasis": "#f71963",
+ "disabled": "#979899",
+ "success": "#8bc34a",
+ "success--faded": "#eafce3",
+ "danger": "#ff4c4c",
+ "danger--faded": "#ffe6e6",
+ "warning": "#ffb100",
+ "warning--faded": "#fff6e0",
+ "muted-1": "#727273",
+ "muted-2": "#979899",
+ "muted-3": "#cacbcc",
+ "muted-4": "#e3e4e6",
+ "muted-5": "#f2f4f5"
+ },
+ "visited-text": {
+ "link": "#0c389f"
+ },
+ "hover-text": {
+ "action-primary": "#072c75",
+ "action-secondary": "#dbe9fd",
+ "link": "#0c389f",
+ "emphasis": "#dd1659",
+ "success": "#8bc34a",
+ "success--faded": "#eafce3",
+ "danger": "#e13232",
+ "danger--faded": "#ffe6e6",
+ "warning": "#ffb100",
+ "warning--faded": "#fff6e0"
+ },
+ "active-text": {
+ "link": "#0c389f",
+ "emphasis": "#dd1659",
+ "success": "#8bc34a",
+ "success--faded": "#eafce3",
+ "danger": "#ff4c4c",
+ "danger--faded": "#ffe6e6",
+ "warning": "#ffb100",
+ "warning--faded": "#fff6e0"
+ },
+ "border": {
+ "action-primary": "#0F3E99",
+ "action-secondary": "#eef3f7",
+ "emphasis": "#f71963",
+ "disabled": "#e3e4e6",
+ "success": "#8bc34a",
+ "success--faded": "#eafce3",
+ "danger": "#ff4c4c",
+ "danger--faded": "#ffe6e6",
+ "warning": "#ffb100",
+ "warning--faded": "#fff6e0",
+ "muted-1": "#727273",
+ "muted-2": "#979899",
+ "muted-3": "#cacbcc",
+ "muted-4": "#e3e4e6",
+ "muted-5": "#f2f4f5"
+ },
+ "hover-border": {
+ "action-primary": "#072c75",
+ "action-secondary": "#dbe9fd",
+ "emphasis": "#dd1659",
+ "success": "#8bc34a",
+ "success--faded": "#eafce3",
+ "danger": "#e13232",
+ "danger--faded": "#ffe6e6",
+ "warning": "#ffb100",
+ "warning--faded": "#fff6e0",
+ "muted-1": "#727273",
+ "muted-2": "#979899",
+ "muted-3": "#cacbcc",
+ "muted-4": "#e3e4e6",
+ "muted-5": "#f2f4f5"
+ },
+ "active-border": {
+ "action-primary": "#0c389f",
+ "action-secondary": "#d2defc",
+ "emphasis": "#dd1659",
+ "success": "#8bc34a",
+ "success--faded": "#eafce3",
+ "danger": "#ff4c4c",
+ "danger--faded": "#ffe6e6",
+ "warning": "#ffb100",
+ "warning--faded": "#fff6e0",
+ "muted-1": "#727273",
+ "muted-2": "#979899",
+ "muted-3": "#cacbcc",
+ "muted-4": "#e3e4e6",
+ "muted-5": "#f2f4f5"
+ },
+ "on": {
+ "base": "#3f3f40",
+ "base--inverted": "#ffffff",
+ "action-primary": "#ffffff",
+ "action-secondary": "#0F3E99",
+ "emphasis": "#ffffff",
+ "disabled": "#979899",
+ "success": "#ffffff",
+ "success--faded": "#3f3f40",
+ "danger": "#ffffff",
+ "danger--faded": "#3f3f40",
+ "warning": "#ffffff",
+ "warning--faded": "#1a1a1a",
+ "muted-1": "#ffffff",
+ "muted-2": "#ffffff",
+ "muted-3": "#3f3f40",
+ "muted-4": "#3f3f40",
+ "muted-5": "#3f3f40"
+ },
+ "hover-on": {
+ "action-primary": "#ffffff",
+ "action-secondary": "#0F3E99",
+ "emphasis": "#ffffff",
+ "success": "#ffffff",
+ "success--faded": "#3f3f40",
+ "danger": "#ffffff",
+ "danger--faded": "#3f3f40",
+ "warning": "#ffffff",
+ "warning--faded": "#1a1a1a"
+ },
+ "active-on": {
+ "action-primary": "#ffffff",
+ "action-secondary": "#0F3E99",
+ "emphasis": "#ffffff",
+ "success": "#ffffff",
+ "success--faded": "#3f3f40",
+ "danger": "#ffffff",
+ "danger--faded": "#3f3f40",
+ "warning": "#ffffff",
+ "warning--faded": "#1a1a1a"
+ }
+ },
+ "borderWidths": [0, 0.125, 0.25, 0.5, 1, 2],
+ "borderRadius": [0, 0.125, 0.25, 0.5, 1],
+ "widths": [1, 2, 4, 8, 16],
+ "maxWidths": [1, 2, 4, 8, 16, 32, 48, 64, 96],
+ "heights": [1, 2, 4, 8, 16],
+ "sizes": [
+ { "name": "small", "value": 2 },
+ { "name": "regular", "value": 2.5 },
+ { "name": "large", "value": 3 }
+ ],
+ "typography": {
+ "measure": [30, 34, 20],
+ "styles": {
+ "heading-1": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "700",
+ "fontSize": "3rem",
+ "textTransform": "initial",
+ "letterSpacing": "0"
},
- "semanticColors": {
- "background": {
- "base": "#ffffff",
- "base--inverted": "#03044e",
- "action-primary": "#0F3E99",
- "action-secondary": "#eef3f7",
- "emphasis": "#f71963",
- "disabled": "#f2f4f5",
- "success": "#8bc34a",
- "success--faded": "#eafce3",
- "danger": "#ff4c4c",
- "danger--faded": "#ffe6e6",
- "warning": "#ffb100",
- "warning--faded": "#fff6e0",
- "muted-1": "#727273",
- "muted-2": "#979899",
- "muted-3": "#cacbcc",
- "muted-4": "#e3e4e6",
- "muted-5": "#f2f4f5"
- },
- "hover-background": {
- "action-primary": "#072c75",
- "action-secondary": "#dbe9fd",
- "emphasis": "#dd1659",
- "success": "#8bc34a",
- "success--faded": "#eafce3",
- "danger": "#e13232",
- "danger--faded": "#ffe6e6",
- "warning": "#ffb100",
- "warning--faded": "#fff6e0",
- "muted-1": "#727273",
- "muted-2": "#979899",
- "muted-3": "#cacbcc",
- "muted-4": "#e3e4e6",
- "muted-5": "#f2f4f5"
- },
- "active-background": {
- "action-primary": "#0c389f",
- "action-secondary": "#d2defc",
- "emphasis": "#dd1659",
- "success": "#8bc34a",
- "success--faded": "#eafce3",
- "danger": "#ff4c4c",
- "danger--faded": "#ffe6e6",
- "warning": "#ffb100",
- "warning--faded": "#fff6e0",
- "muted-1": "#727273",
- "muted-2": "#979899",
- "muted-3": "#cacbcc",
- "muted-4": "#e3e4e6",
- "muted-5": "#f2f4f5"
- },
- "text": {
- "action-primary": "#0F3E99",
- "action-secondary": "#eef3f7",
- "link": "#0F3E99",
- "emphasis": "#f71963",
- "disabled": "#979899",
- "success": "#8bc34a",
- "success--faded": "#eafce3",
- "danger": "#ff4c4c",
- "danger--faded": "#ffe6e6",
- "warning": "#ffb100",
- "warning--faded": "#fff6e0",
- "muted-1": "#727273",
- "muted-2": "#979899",
- "muted-3": "#cacbcc",
- "muted-4": "#e3e4e6",
- "muted-5": "#f2f4f5"
- },
- "visited-text": {
- "link": "#0c389f"
- },
- "hover-text": {
- "action-primary": "#072c75",
- "action-secondary": "#dbe9fd",
- "link": "#0c389f",
- "emphasis": "#dd1659",
- "success": "#8bc34a",
- "success--faded": "#eafce3",
- "danger": "#e13232",
- "danger--faded": "#ffe6e6",
- "warning": "#ffb100",
- "warning--faded": "#fff6e0"
- },
- "active-text": {
- "link": "#0c389f",
- "emphasis": "#dd1659",
- "success": "#8bc34a",
- "success--faded": "#eafce3",
- "danger": "#ff4c4c",
- "danger--faded": "#ffe6e6",
- "warning": "#ffb100",
- "warning--faded": "#fff6e0"
- },
- "border": {
- "action-primary": "#0F3E99",
- "action-secondary": "#eef3f7",
- "emphasis": "#f71963",
- "disabled": "#e3e4e6",
- "success": "#8bc34a",
- "success--faded": "#eafce3",
- "danger": "#ff4c4c",
- "danger--faded": "#ffe6e6",
- "warning": "#ffb100",
- "warning--faded": "#fff6e0",
- "muted-1": "#727273",
- "muted-2": "#979899",
- "muted-3": "#cacbcc",
- "muted-4": "#e3e4e6",
- "muted-5": "#f2f4f5"
- },
- "hover-border": {
- "action-primary": "#072c75",
- "action-secondary": "#dbe9fd",
- "emphasis": "#dd1659",
- "success": "#8bc34a",
- "success--faded": "#eafce3",
- "danger": "#e13232",
- "danger--faded": "#ffe6e6",
- "warning": "#ffb100",
- "warning--faded": "#fff6e0",
- "muted-1": "#727273",
- "muted-2": "#979899",
- "muted-3": "#cacbcc",
- "muted-4": "#e3e4e6",
- "muted-5": "#f2f4f5"
- },
- "active-border": {
- "action-primary": "#0c389f",
- "action-secondary": "#d2defc",
- "emphasis": "#dd1659",
- "success": "#8bc34a",
- "success--faded": "#eafce3",
- "danger": "#ff4c4c",
- "danger--faded": "#ffe6e6",
- "warning": "#ffb100",
- "warning--faded": "#fff6e0",
- "muted-1": "#727273",
- "muted-2": "#979899",
- "muted-3": "#cacbcc",
- "muted-4": "#e3e4e6",
- "muted-5": "#f2f4f5"
- },
- "on": {
- "base": "#3f3f40",
- "base--inverted": "#ffffff",
- "action-primary": "#ffffff",
- "action-secondary": "#0F3E99",
- "emphasis": "#ffffff",
- "disabled": "#979899",
- "success": "#ffffff",
- "success--faded": "#3f3f40",
- "danger": "#ffffff",
- "danger--faded": "#3f3f40",
- "warning": "#ffffff",
- "warning--faded": "#1a1a1a",
- "muted-1": "#ffffff",
- "muted-2": "#ffffff",
- "muted-3": "#3f3f40",
- "muted-4": "#3f3f40",
- "muted-5": "#3f3f40"
- },
- "hover-on": {
- "action-primary": "#ffffff",
- "action-secondary": "#0F3E99",
- "emphasis": "#ffffff",
- "success": "#ffffff",
- "success--faded": "#3f3f40",
- "danger": "#ffffff",
- "danger--faded": "#3f3f40",
- "warning": "#ffffff",
- "warning--faded": "#1a1a1a"
- },
- "active-on": {
- "action-primary": "#ffffff",
- "action-secondary": "#0F3E99",
- "emphasis": "#ffffff",
- "success": "#ffffff",
- "success--faded": "#3f3f40",
- "danger": "#ffffff",
- "danger--faded": "#3f3f40",
- "warning": "#ffffff",
- "warning--faded": "#1a1a1a"
- }
+ "heading-2": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "700",
+ "fontSize": "2.25rem",
+ "textTransform": "initial",
+ "letterSpacing": "0"
},
- "borderWidths": [0, 0.125, 0.25, 0.5, 1, 2],
- "borderRadius": [0, 0.125, 0.25, 0.5, 1],
- "widths": [1, 2, 4, 8, 16],
- "maxWidths": [1, 2, 4, 8, 16, 32, 48, 64, 96],
- "heights": [1, 2, 4, 8, 16],
- "sizes": [
- {"name": "small", "value": 2},
- {"name": "regular", "value": 2.5},
- {"name": "large", "value": 3}
- ],
- "typography":{
- "measure": [30, 34, 20],
- "styles": {
- "heading-1": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "700",
- "fontSize": "3rem",
- "textTransform": "initial",
- "letterSpacing": "0"
- },
- "heading-2": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "700",
- "fontSize": "2.25rem",
- "textTransform": "initial",
- "letterSpacing": "0"
- },
- "heading-3": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "700",
- "fontSize": "1.75rem",
- "textTransform": "initial",
- "letterSpacing": "0"
- },
- "heading-4": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "normal",
- "fontSize": "1.5rem",
- "textTransform": "initial",
- "letterSpacing": "0"
- },
- "heading-5": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "normal",
- "fontSize": "1.25rem",
- "textTransform": "initial",
- "letterSpacing": "0"
- },
- "heading-6": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "normal",
- "fontSize": "1.25rem",
- "textTransform": "initial",
- "letterSpacing": "0"
- },
- "body": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "normal",
- "fontSize": "1rem",
- "textTransform": "initial",
- "letterSpacing": "0"
- },
- "small": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "normal",
- "fontSize": "0.875rem",
- "textTransform": "initial",
- "letterSpacing": "0"
- },
- "mini": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "normal",
- "fontSize": "0.75rem",
- "textTransform": "initial",
- "letterSpacing": "0"
- },
- "action": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "500",
- "fontSize": "1rem",
- "textTransform": "uppercase",
- "letterSpacing": "0"
- },
- "action--small": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "500",
- "fontSize": "0.875rem",
- "textTransform": "uppercase",
- "letterSpacing": "0"
- },
- "action--large": {
- "fontFamily": "San Francisco, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
- "fontWeight": "500",
- "fontSize": "1.25rem",
- "textTransform": "uppercase",
- "letterSpacing": "0"
- },
- "code": {
- "fontFamily": "Consolas, monaco, monospace",
- "fontWeight": "normal",
- "fontSize": "1rem",
- "textTransform": "initial",
- "letterSpacing": "0"
- }
- }
+ "heading-3": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "700",
+ "fontSize": "1.75rem",
+ "textTransform": "initial",
+ "letterSpacing": "0"
},
- "opacity": [1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.05, 0.025, 0]
+ "heading-4": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "normal",
+ "fontSize": "1.5rem",
+ "textTransform": "initial",
+ "letterSpacing": "0"
+ },
+ "heading-5": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "normal",
+ "fontSize": "1.25rem",
+ "textTransform": "initial",
+ "letterSpacing": "0"
+ },
+ "heading-6": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "normal",
+ "fontSize": "1.25rem",
+ "textTransform": "initial",
+ "letterSpacing": "0"
+ },
+ "body": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "normal",
+ "fontSize": "1rem",
+ "textTransform": "initial",
+ "letterSpacing": "0"
+ },
+ "small": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "normal",
+ "fontSize": "0.875rem",
+ "textTransform": "initial",
+ "letterSpacing": "0"
+ },
+ "mini": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "normal",
+ "fontSize": "0.75rem",
+ "textTransform": "initial",
+ "letterSpacing": "0"
+ },
+ "action": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "500",
+ "fontSize": "1rem",
+ "textTransform": "uppercase",
+ "letterSpacing": "0"
+ },
+ "action--small": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "500",
+ "fontSize": "0.875rem",
+ "textTransform": "uppercase",
+ "letterSpacing": "0"
+ },
+ "action--large": {
+ "fontFamily": "Open Sans, -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto, segoe ui, arial, sans-serif",
+ "fontWeight": "500",
+ "fontSize": "1.25rem",
+ "textTransform": "uppercase",
+ "letterSpacing": "0"
+ },
+ "code": {
+ "fontFamily": "Consolas, monaco, monospace",
+ "fontWeight": "normal",
+ "fontSize": "1rem",
+ "textTransform": "initial",
+ "letterSpacing": "0"
+ }
+ }
+ },
+ "opacity": [1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.05, 0.025, 0]
}
diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css
index c9874dd..8740479 100644
--- a/styles/css/vtex.flex-layout.css
+++ b/styles/css/vtex.flex-layout.css
@@ -9,6 +9,7 @@
/* Grid breakpoints */
.flexRowContent {
padding: 0;
+ margin: 0;
}
.flexRowContent--menu-link,
diff --git a/styles/css/vtex.product-identifier.css b/styles/css/vtex.product-identifier.css
index ea941ac..bed04dd 100644
--- a/styles/css/vtex.product-identifier.css
+++ b/styles/css/vtex.product-identifier.css
@@ -1,5 +1,20 @@
+/*
+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--productReference {
- margin-bottom: 24px;
display: flex;
justify-content: end;
}
+
+.product-identifier__value {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+}
\ No newline at end of file
diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css
index a7c695f..15cd3ad 100644
--- a/styles/css/vtex.store-components.css
+++ b/styles/css/vtex.store-components.css
@@ -7,6 +7,7 @@
1800px + : Big desktop
*/
/* Media Query M3 */
+@import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap%27");
/* Grid breakpoints */
.newsletter {
background: red;
@@ -15,6 +16,11 @@
.productBrand--quickview {
display: flex;
justify-content: end;
+ color: #575757;
+ font-style: normal;
+ font-weight: 300;
+ font-size: 20px;
+ line-height: 34px;
}
.carouselGaleryThumbs {
@@ -74,6 +80,7 @@
display: block;
content: "OUTRAS CORES:";
font-size: 14px;
+ color: #929292;
}
.skuSelectorSubcontainer--tamanho {
@@ -86,6 +93,7 @@
display: block;
content: "OUTROS TAMANHOS:";
font-size: 14px;
+ color: #929292;
}
.productImagesThumb {
@@ -117,6 +125,7 @@
font-size: 14px;
display: block;
content: "CALCULAR FRETE:";
+ color: #929292;
}
.shippingContainer :global(.vtex-input-prefix__group) {
@@ -129,7 +138,7 @@
width: 49px;
height: 49px;
position: absolute;
- left: 33.4%;
+ left: 232px;
top: 33%;
background: #292929;
border: none;
@@ -152,7 +161,7 @@
font-size: 0;
visibility: hidden;
position: absolute;
- left: 43%;
+ left: 302px;
top: 36%;
}
@@ -167,6 +176,7 @@
.shippingTable {
border: none;
padding: 0;
+ max-width: 382px;
}
.shippingTableHead {
@@ -175,7 +185,6 @@
.shippingTableRow {
position: relative;
- margin-bottom: 15px;
}
.shippingTableHeadDeliveryName {
@@ -196,7 +205,7 @@
font-size: 0;
position: absolute;
top: 5%;
- left: 242%;
+ left: 342%;
}
.shippingTableHeadDeliveryEstimate::after {
@@ -213,7 +222,7 @@
font-size: 0;
position: absolute;
top: 5%;
- left: 138%;
+ left: 198%;
}
.shippingTableHeadDeliveryPrice::after {
@@ -228,4 +237,26 @@
.shippingTableRadioBtn {
display: none;
+}
+
+.shippingTableCellDeliveryName,
+.shippingTableCellDeliveryEstimate,
+.shippingTableCellDeliveryPrice {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: #afafaf;
+ padding: 0;
+ padding-top: 15px;
+}
+
+.shippingTableCellDeliveryEstimate {
+ position: absolute;
+ left: 62%;
+}
+
+.shippingTableCellDeliveryPrice {
+ position: absolute;
+ left: 36%;
}
\ 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 01563a9..9db07c2 100644
--- a/styles/sass/pages/product/vtex.flex-layout.scss
+++ b/styles/sass/pages/product/vtex.flex-layout.scss
@@ -1,5 +1,6 @@
.flexRowContent {
padding: 0;
+ margin: 0;
}
.flexRowContent--menu-link,
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..a8d2879
--- /dev/null
+++ b/styles/sass/pages/product/vtex.product-identifier.scss
@@ -0,0 +1,11 @@
+.product-identifier--productReference {
+ display: flex;
+ justify-content: end;
+}
+
+.product-identifier__value {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 19px;
+}
diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss
index 8a7348a..e8c23b0 100644
--- a/styles/sass/pages/product/vtex.store-components.scss
+++ b/styles/sass/pages/product/vtex.store-components.scss
@@ -10,6 +10,11 @@
.productBrand--quickview {
display: flex;
justify-content: end;
+ color: $color-gray8;
+ font-style: normal;
+ font-weight: 300;
+ font-size: 20px;
+ line-height: 34px;
}
.carouselGaleryThumbs {
@@ -69,6 +74,7 @@
display: block;
content: "OUTRAS CORES:";
font-size: 14px;
+ color: $color-gray7;
}
}
}
@@ -83,6 +89,7 @@
display: block;
content: "OUTROS TAMANHOS:";
font-size: 14px;
+ color: $color-gray7;
}
}
}
@@ -118,6 +125,7 @@
font-size: 14px;
display: block;
content: "CALCULAR FRETE:";
+ color: $color-gray7;
}
.shippingContainer :global(.vtex-input-prefix__group) {
@@ -130,7 +138,7 @@
width: 49px;
height: 49px;
position: absolute;
- left: 33.4%;
+ left: 232px;
top: 33%;
background: $color-black;
border: none;
@@ -153,7 +161,7 @@
font-size: 0;
visibility: hidden;
position: absolute;
- left: 43%;
+ left: 302px;
top: 36%;
}
@@ -168,6 +176,7 @@
.shippingTable {
border: none;
padding: 0;
+ max-width: 382px;
}
.shippingTableHead {
@@ -176,7 +185,6 @@
.shippingTableRow {
position: relative;
- margin-bottom: 15px;
}
.shippingTableHeadDeliveryName {
@@ -197,7 +205,7 @@
font-size: 0;
position: absolute;
top: 5%;
- left: 242%;
+ left: 342%;
}
.shippingTableHeadDeliveryEstimate::after {
@@ -214,7 +222,7 @@
font-size: 0;
position: absolute;
top: 5%;
- left: 138%;
+ left: 198%;
}
.shippingTableHeadDeliveryPrice::after {
@@ -230,3 +238,25 @@
.shippingTableRadioBtn {
display: none;
}
+
+.shippingTableCellDeliveryName,
+.shippingTableCellDeliveryEstimate,
+.shippingTableCellDeliveryPrice {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: $color-gray9;
+ padding: 0;
+ padding-top: 15px;
+}
+
+.shippingTableCellDeliveryEstimate {
+ position: absolute;
+ left: 62%;
+}
+
+.shippingTableCellDeliveryPrice {
+ position: absolute;
+ left: 36%;
+}
diff --git a/styles/sass/utils/_vars.scss b/styles/sass/utils/_vars.scss
index 4632a04..1f5de96 100644
--- a/styles/sass/utils/_vars.scss
+++ b/styles/sass/utils/_vars.scss
@@ -1,3 +1,5 @@
+@import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap%27");
+
$color-black: #292929;
$color-white: #fff;
@@ -9,6 +11,8 @@ $color-gray4: #c4c4c4;
$color-gray5: #e5e5e5;
$color-gray6: #cccccc;
$color-gray7: #929292;
+$color-gray8: #575757;
+$color-gray9: #afafaf;
$color-blue: #4267b2;