From ad750179ae45a7f4005916635f86085771cf381c Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Mon, 23 Jan 2023 21:02:03 -0300 Subject: [PATCH 01/21] =?UTF-8?q?feat:=20Muda=20orienta=C3=A7=C3=A3o=20das?= =?UTF-8?q?=20miniaturas=20de=20imagens=20do=20produto=20e=20retira=20seta?= =?UTF-8?q?s=20de=20navega=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 1 - store/blocks/pdp/product.jsonc | 5 +- styles/css/vtex.breadcrumb.css | 9 ++ styles/css/vtex.flex-layout.css | 13 ++- styles/css/vtex.product-price.css | 31 +++--- ...re-theme.css => vtex.product-quantity.css} | 8 +- .../product/agenciamagma.store-theme.scss | 8 -- .../sass/pages/product/vtex.breadcrumb.scss | 0 .../sass/pages/product/vtex.flex-layout.scss | 98 +++++++++++++++++++ .../pages/product/vtex.product-price.scss | 79 +++++++++++++++ .../pages/product/vtex.product-quantity.scss | 3 + .../pages/product/vtex.store-components.scss | 10 +- 12 files changed, 232 insertions(+), 33 deletions(-) create mode 100644 styles/css/vtex.breadcrumb.css rename styles/css/{agenciamagma.store-theme.css => vtex.product-quantity.css} (69%) delete mode 100644 styles/sass/pages/product/agenciamagma.store-theme.scss create mode 100644 styles/sass/pages/product/vtex.breadcrumb.scss create mode 100644 styles/sass/pages/product/vtex.flex-layout.scss create mode 100644 styles/sass/pages/product/vtex.product-price.scss create mode 100644 styles/sass/pages/product/vtex.product-quantity.scss 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/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index 6a916dc..b96a6a7 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -91,7 +91,10 @@ "desktop": "auto", "phone": "16:9" }, - "displayThumbnailsArrows": true + "showNavigationArrows": false, + "showPaginationDots": false, + "displayThumbnailsArrows": false, + "thumbnailsOrientation": "horizontal" } }, "flex-layout.col#right-col": { diff --git a/styles/css/vtex.breadcrumb.css b/styles/css/vtex.breadcrumb.css new file mode 100644 index 0000000..34c4328 --- /dev/null +++ b/styles/css/vtex.breadcrumb.css @@ -0,0 +1,9 @@ +/* +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 */ \ No newline at end of file diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css index a7c5732..0bffd8b 100644 --- a/styles/css/vtex.flex-layout.css +++ b/styles/css/vtex.flex-layout.css @@ -1,3 +1,12 @@ +/* +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--menu-link, .flexRowContent--main-header { padding: 0 0.5rem; @@ -9,14 +18,12 @@ 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; @@ -95,4 +102,4 @@ .flexRow--addToCartRow { padding-bottom: 1rem; -} +} \ No newline at end of file diff --git a/styles/css/vtex.product-price.css b/styles/css/vtex.product-price.css index 95f4cfe..3932d84 100644 --- a/styles/css/vtex.product-price.css +++ b/styles/css/vtex.product-price.css @@ -1,7 +1,14 @@ +/* +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 */ .listPrice { - color: #727273; - margin-bottom: .25rem; - font-size: 1rem; + display: none; } .sellingPrice { @@ -20,42 +27,40 @@ } .savings { - font-weight: 500; - color: #79B03A; + display: none; } .sellingPriceValue--summary { font-size: 1.25rem; font-weight: 600; - color: #2E2E2E; + color: #2e2e2e; } .savings--summary { - background: #8BC34A; + 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; + color: #ffffff; } .savings-discount--summary { font-size: 0.875rem; font-weight: 600; vertical-align: baseline; - color: #FFFFFF; + color: #ffffff; padding-left: 0.5rem; padding-right: 0.5rem; } .listPrice--summary { margin-bottom: 0.25rem; - font-size: .875rem; + font-size: 0.875rem; } .installments--summary { @@ -74,6 +79,6 @@ font-size: 0.875rem; font-weight: 600; vertical-align: baseline; - color: #FFFFFF; + color: #ffffff; padding: 0.25rem 0.5rem 0.25rem 0.5rem; -} +} \ No newline at end of file diff --git a/styles/css/agenciamagma.store-theme.css b/styles/css/vtex.product-quantity.css similarity index 69% rename from styles/css/agenciamagma.store-theme.css rename to styles/css/vtex.product-quantity.css index 5e37ba5..1317f4f 100644 --- a/styles/css/agenciamagma.store-theme.css +++ b/styles/css/vtex.product-quantity.css @@ -7,10 +7,6 @@ */ /* Media Query M3 */ /* Grid breakpoints */ -.html { - background-color: red; -} - -.html--pdp-breadcrumb { - background-color: green; +.quantitySelectorTitle { + display: none; } \ 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 ea7d5b9..0000000 --- a/styles/sass/pages/product/agenciamagma.store-theme.scss +++ /dev/null @@ -1,8 +0,0 @@ -.html { - background-color: red; -} - -.html--pdp-breadcrumb { - background-color: green; -} - diff --git a/styles/sass/pages/product/vtex.breadcrumb.scss b/styles/sass/pages/product/vtex.breadcrumb.scss new file mode 100644 index 0000000..e69de29 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..a7c5732 --- /dev/null +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -0,0 +1,98 @@ +.flexRowContent--menu-link, +.flexRowContent--main-header { + padding: 0 0.5rem; +} + +@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 { + 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; +} 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..e7d8b24 --- /dev/null +++ b/styles/sass/pages/product/vtex.product-price.scss @@ -0,0 +1,79 @@ +.listPrice { + display: none; + // color: #727273; + // margin-bottom: 0.25rem; + // font-size: 1rem; +} + +.sellingPrice { + color: #3f3f40; + font-size: 1.25rem; +} + +.sellingPriceValue { + font-size: 2.25rem; + font-weight: 700; +} + +.installments { + color: #727273; + margin-bottom: 1rem; +} + +.savings { +display: none; +} + +.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: 0.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; +} 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..dd527e9 --- /dev/null +++ b/styles/sass/pages/product/vtex.product-quantity.scss @@ -0,0 +1,3 @@ +.quantitySelectorTitle { + display: none; +} diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 36d0f22..dabb939 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -1,3 +1,11 @@ .newsletter{ background: red; -} \ No newline at end of file +} + +// .caretIcon { +// display: none; +// } + +// .swiper-pagination { +// display: none; +// } -- 2.34.1 From 7df0c280cd46af603bae9ed1f3b74e88e345af9c Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Mon, 23 Jan 2023 21:39:12 -0300 Subject: [PATCH 02/21] feat: Adiciona fonte Open Sans ao projeto --- assets/fonts/OpenSans-Bold.ttf | Bin 0 -> 129784 bytes assets/fonts/OpenSans-Light.ttf | Bin 0 -> 129756 bytes assets/fonts/OpenSans-Regular.ttf | Bin 0 -> 129796 bytes styles/configs/font-faces.css | 5 + styles/configs/style.json | 688 +++++++++--------- .../pages/product/vtex.store-components.scss | 4 +- 6 files changed, 352 insertions(+), 345 deletions(-) create mode 100644 assets/fonts/OpenSans-Bold.ttf create mode 100644 assets/fonts/OpenSans-Light.ttf create mode 100644 assets/fonts/OpenSans-Regular.ttf create mode 100644 styles/configs/font-faces.css diff --git a/assets/fonts/OpenSans-Bold.ttf b/assets/fonts/OpenSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a1398b338084cbaf0e99d89cb6089715baa78a6d GIT binary patch literal 129784 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 C5A&1& literal 0 HcmV?d00001 diff --git a/assets/fonts/OpenSans-Regular.ttf b/assets/fonts/OpenSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1dc226ddc00a11a9813844b00fb5edaf87921c38 GIT binary patch literal 129796 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°3AjD==I25;UmO5JeaF~vfh!j$neN08gU|-ktvbf2y8?o2B<7j z4QO`srN~yAD@PUps);NI)C6c%WDTJ8k&7huD&Ve*+z8xmK(|HEe^f?gJRF?w_4mB<@_-idq|`80|gMU$f$(Gk(nfW}8(ie^Rg0EMDm(c&n2MYKFR zJvujvku$n9dULcc+5)H@u^Va58r>FsEZQ4|wnuj%_EuU2M(+mh-st^+9s=|v&Gn+s zgY#=qjCs-bq8~>;kLg%yY*=h$Yz(bBVmYybFje2&}1Av|$_1vfzN4?@0#NLhg_eOm@3b$|p zyPNQ%-Wc@`c>OT>TMl;OBu@f-YO)XR+vH+13BkQd_%`mSq!yBwbeQl-_(G0zDt`qy zHF*czHOT?ECfN`A?-D%lk0k63IQmoEo2ZWdoZTmq_5=Q1(jSQfmE`DdatHd!#n*On zQwDxcX$P>U0RGSL{1f+TkqgYgQJfB@up{LZro4~ffy?23Fz{RCzt)`&cRsmCf57gk z?7q!zFS(9lSCfmoZwceFyM|rd=Y+K1C3oQOwEyVnLB{-)-Cwf%6vqzWZeXPs671Bu ze}J2;vDXRr5t6%eGDHZ*R?dCG36;lnKFdnq?gDwEZPHzg zxtUzEkK7bXv!3zu*}Z_>lc>~sFHSMVZYFZgU4(Hv3C2lDS%4Q4Mtx5DgHytgbKOs{ z9?og~q_sGmh4z%W%x5;I?V+^lMba)ehcN0Ub~WM6uPALwD$Cl%d{(h6ZfkS6e-vmg zWBhGN)kxdH+&(9aA}g@tHpi(TwLF@K~w(f_0p8AEt8o@0-sTm}4*lxc9=nC23$0U9HfE~P%AOL3DX z!8?#@3(3{x#0OW5Q0&U&)8Nu=n@aa2Jp;F!YiWBj_N*XnJ>2a{=ofk?`oA(6oVQt& z7Vv!FXHiW8rku>8zNrr}{4>tO8=NcHLg3di=XDIPW&Tyne{ITQ#8xH!74BN*S;ai3 z5+5^_V&OuT!L4`%6HhalER_C`Xi&x2ONjk`B;`YLRiSNDDwonE1upoTRN|~BaSfbI zX$L;)|2{Bdh?^QirBgcP9bg(5qb;5!qQ4O>awLo{d?aML|p10Qice?*ix zyN6nTJeP45=iwgC|F0SUYtHjVmV1a>WFyzu4J`K%(Kts5)*HE`hloE;*`tzHajG{t z)rnl9H^~K_>f}w%NtF5QV-8Wqhq)BERSJ|xSc`hN^^b6i^l*zD;oSCciyTS$7?eGv zKcFYg>|u$2WqsI3Jk1!Ebtb`DF}#5D_A*m0pte&lbImW{JiJUa>Ti?>br1L7nVg^Z zl70;iGr1HyQn0g9m!{kS{+o%L=_YQdNy@`2DK)j)n^Zb8l4~`U_?Yi7d=10h471jm zE{16?sZ0yQ7-_*lC*KR6y9lFq5eEB6*=5XLc2_Yy?c2o8Q+BJ!HGab5{#;6XCildR z$!h_RVfR{c!JjbQEM+6>#!BXJ9hKef;69tq_;e~ePP#(7>z3qENc%T#ufO#Zhie(X zoXd_`3Mj`ioMm0+xtVD;a~6 z{6q+EPUf`TY$aAniIB>iOt8V+202{IHL#l7=xWAPam}1ausWGw^tekw&m)UrD`EaX zc=HFQe~;-mrECJXxBIuk;|k$^llErIh^+AO!;$yO*_NiAXojJX~NcJ${ifr zkUSoxXkg52uFu&F&t-US|8~UwjbQaB#@xv6w{eRw`US(br@YJXyPWnyaxwUg0!=x? zuQ2}4)b9Gv+>UexxYC=f%TnqHHao4$^bc|DLj)VEjmsEAYX_zFG37bdWqO)7lHI0J zqlb0re$qqrDbc7m*-hrOnrO^YPP>#a<|>A-Vh%l=&mM+HuqG=mFI!H1asSuBe_S$l zQftiM!TG02-yoOy>|@I?hEkb*q_Qp!DbllTZhZN<|b~zo4D=jxP9x0r(VNpv91E#O+0ls>8-*_2JrP9 zdp#!WO8Yq0*H81GD+q6{;GRB?@MauyUQA<<;=Z8XC0O6a9B$)06fuXQe$3wW2!=pPNI5s1%(;{CJbTnHa}Iya{C~~(4NSj* z`*kb9hP6U7XFWhUH>@q@&;45f^Y~&M;$zNdoB2Ms*CWjH5w8Cd=2=3e(=Rao1(vmt zr5|CM3z_D^{tV*D`E;1(yNv%XQ$EINA7gwc<2xyz=6g*4J;r~+_)nOAJLjjA^Rt~t zlTz-{o0)zymxVP4zt=#yFyhciQN{F+v#hh2+k2e$J*GK}Ih@b-;e5utPZ<3^!;1-z zo&t=r7IiW6Sxm9&AH+@lgEc&j=SWx39Lc0Hw>0K(1#`QCV9Za*3XM;p)x>y?UB$7h z7`~kF`f`HRr;OjkJQdHoHc?uwES~%0CQhZeS3btEk1?i`X*wAm%efs(HL33BHf`oS zG*hfOi73rUOgV-r$M9HxKbPx%o)v6j{3eF;x%ToIp2zrkoR-(QnrBdYGWVb*%>O!~ zG1n2sT*sIj7;^)|QR0SGE^?wTWp0;pi;ra~V>!3HMlifaFl>PhkIrs7(Yxu)=ljg( z`wS;B|0L#lCG)wG;pdqDa}3|Wc+P`9m+@l=qu%D&XBqP>myt&_eGbFhQ)rYaVYQ%ro9n8ec#|wy`w%5r*-*CD0@@yo_P$N2M%%JI}6n z(z_L`u>MLe!)sZ36-!^sGxI8*nXl!XR3%eR)^bj&I45gUDJNB&lX~X7mh)4^`Kc$K z82i2jH<@7QB$aLzVE|LS!Z%RpUK=5adUpcV_cL| zMR|-1^Gbgo+viop*^H+?i#nkZXBGF{W`;v7_blS())EKYQVtj^%5TEm!&15l)?Ez0 z%u-(F(b*7;6(zMY&xf_05C4v7e#i9N8OEDH(5z*c`?x;B@Lw7KHHPElDxPPW@eD7a z`czAJ{k4Qjt(H(JfWi7&Eus7ao)6Bg%%PQX0u1U3v81ch89$w*06z_wQZ8>Pm%WPN zdgh~Ptp}~6`srbO4Z|x4#tFA@^$OOd6|Da&cx_nEHGB=NhG0+NswFn(T&{EJtrvdT zN77$Wm1wDvj5*c1jK5Uhh}c^Rqi$u4qi+J`IHqx}%lH+9$BEi-F%8082m=^6k?j_PdwH8 zjNvgzH8JKr#_*V>Dwx|?!ssp5Whq-ou47BRf$oSMA)N0OXPTOx?=CGJ+U<6Y>ZC%1AmATJCL$cMwNcD%L^O2u# zaO^jj+Yj{hz@J7KC!hOon$=0tI+aG6jNfTe{qWfBzQdX}i7@5>uf(S^rhqZ~2{t@G zPhQFVUBb9OW<0M!lA8!l=2ZhI(r{Nop8aj5iqLN>)l~Xzr7EW1R;nrV+e$UpnSeV7 zn)GbkEYOa-1TMn809WGd|Lbtx{~ny_e=kn$e*h=-KZ?`&pT!CLFXGhwBYFwW*8fn~ zsn2nSeg@9TABVH>3vinK8M@N(*W)w_y{EBp^%{K_yRWnR0K1Q|`vU!XU5{zOfxi0b z_O_Mv+TV_!aO)g8mqQn@8)3JE-Kp$WvOAOA`Rp!XcNzWqTQ_tP2OO~1)S)}p5Zps& zjOcrD21S_Nh~7-+QRppjWBT&$bq(G6%5EHFs;}uG`s?Xu-Z-TmW4I3Cf%Vs096e`N zrC;BLgDd>{1-HpbnKpm^ba!XPv_*dR!5IV}!Eqb@q%m{m&Gsiv$EhOzr1cBt&G9Gg zLA#?ZQ~VD1=;Zx2Y?eDN;a$93;dcDM`sPK6-)nvSj`$zqSFWJf&kFtCgwOmnEF8yU zydm_T#tCkmc}d*vVv==cLYXhBMebfnAe$znH~-5hp#zKLHSQ>>p|TAONy$j2{qIZXGi(Cu6lrrcX7g&})ei-UTg zSeqg_0dpANX-JYmT6_1)|9#U7{mPhV-T#0V-&+1HzP6km?J&sszwVo%TzrxGt8S-J z?tAJZ=vIzPYw)+U3wVr+w+cyVxXDeqpR)VBdph9f^~JdAE{h=ex$t2nhtPQ25B~tZ zs_7)G)7;naE9nQ_M<|Q~^{1;DDyXs$Ld}?KaQgqX=EtDuN9bF)R{(bcAoMwEt=+kZ zADt9)k`ng<+=G;@PBPsefZu7-8TQ?_-z6YKD|FHi(!+m8m%iAF zY5zu>;}`tGIsMze}j6E_t5`{`h@?8diZ}ted1S8Yjdk}0&YTRaa+v>+$@CK zx#&g~vypCOF`L{reG1N7n2R~y@or@}&J7Hp4xwiqr{^8-W(H7?0Po}7*>HT`qcDqW z#+?nTj(exW1z)}y1N=uiqmO$BhrNO0i??q)#5Z!>3N60e3E?J_(Pq56-h6^vE=J-s zfDmqEYSN+l+#Z6qh1Y~hxrB&zTLyQNN)G=ZV&PL zo4pC-9=T1#mP0HC*%9iCkohg#E3y+ei_mQ%_I8n3Y3+Fk<}9e*_QJLiC6)K^l>O5A|9(4o7} zFvsV6)vm(5N;`22*;{;n*n7?g&flGna3fcXTCaA~Jy*Dc=oh$;CuVjbkGL%bF78W# z+lso?xHaVh%yLdKzd$eBW&RuPLDVBk=T^cU=~lr#85*O}XU~Rv3Pu@?^~DUhv~JS4 zU2_)Pu`bSHz}j#Qc!u10aKr9=xDodpxKS6UGvF?mg>d8UBDlrwVz`stC2&jJbK#bv zCMhlCA}!=1E#x9CIJD z&0=>2;!1I^&1BqJvjqJ;Sx-SfC_#TX*R2QTCfs*Zio0xTpuH((1A1c!y@hVEsYRXG z8}uBU|1%6B>Q%<^Tsr<@aT?^`-fogr-*!8$aKH7f`0JQMvFKT5S;v_I2&;0Jv`OcQ{RreYH8jw0xJ`$L9NC(P4F>W1nerj=h6>w7`95C28cN0 G@Baau^V-P( literal 0 HcmV?d00001 diff --git a/styles/configs/font-faces.css b/styles/configs/font-faces.css new file mode 100644 index 0000000..82bb3dd --- /dev/null +++ b/styles/configs/font-faces.css @@ -0,0 +1,5 @@ +@font-face { + font-family: "Roboto"; + src: url("assets/fonts/OpenSans-Regular.ttf"); + font-weight: 400; +} diff --git a/styles/configs/style.json b/styles/configs/style.json index 7b90b6b..722a77b 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, 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, 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, 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, arial, sans-serif", + "fontWeight": "normal", + "fontSize": "1.5rem", + "textTransform": "initial", + "letterSpacing": "0" + }, + "heading-5": { + "fontFamily": "Open Sans, arial, sans-serif", + "fontWeight": "normal", + "fontSize": "1.25rem", + "textTransform": "initial", + "letterSpacing": "0" + }, + "heading-6": { + "fontFamily": "Open Sans, arial, sans-serif", + "fontWeight": "normal", + "fontSize": "1.25rem", + "textTransform": "initial", + "letterSpacing": "0" + }, + "body": { + "fontFamily": "Open Sans, arial, sans-serif", + "fontWeight": "normal", + "fontSize": "1rem", + "textTransform": "initial", + "letterSpacing": "0" + }, + "small": { + "fontFamily": "Open Sans, arial, sans-serif", + "fontWeight": "normal", + "fontSize": "0.875rem", + "textTransform": "initial", + "letterSpacing": "0" + }, + "mini": { + "fontFamily": "Open Sans, arial, sans-serif", + "fontWeight": "normal", + "fontSize": "0.75rem", + "textTransform": "initial", + "letterSpacing": "0" + }, + "action": { + "fontFamily": "Open Sans, arial, sans-serif", + "fontWeight": "500", + "fontSize": "1rem", + "textTransform": "uppercase", + "letterSpacing": "0" + }, + "action--small": { + "fontFamily": "Open Sans, arial, sans-serif", + "fontWeight": "500", + "fontSize": "0.875rem", + "textTransform": "uppercase", + "letterSpacing": "0" + }, + "action--large": { + "fontFamily": "Open Sans, 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/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index dabb939..55e1bca 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -1,5 +1,5 @@ -.newsletter{ - background: red; +.newsletter { + background: red; } // .caretIcon { -- 2.34.1 From 6cebda38f4d23c7cbfccf7555762984f4788da10 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Mon, 23 Jan 2023 22:19:28 -0300 Subject: [PATCH 03/21] =?UTF-8?q?feat:=20Cria=20varia=C3=A7=C3=B5es=20de?= =?UTF-8?q?=20cores?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- styles/css/vtex.breadcrumb.css | 6 +++++- .../sass/pages/product/vtex.breadcrumb.scss | 6 ++++++ styles/sass/utils/_vars.scss | 20 +++++++++---------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/styles/css/vtex.breadcrumb.css b/styles/css/vtex.breadcrumb.css index 34c4328..41a1107 100644 --- a/styles/css/vtex.breadcrumb.css +++ b/styles/css/vtex.breadcrumb.css @@ -6,4 +6,8 @@ 1800px + : Big desktop */ /* Media Query M3 */ -/* Grid breakpoints */ \ No newline at end of file +/* Grid breakpoints */ +.container .link { + font-size: 14px; + line-height: 19px; +} \ No newline at end of file diff --git a/styles/sass/pages/product/vtex.breadcrumb.scss b/styles/sass/pages/product/vtex.breadcrumb.scss index e69de29..25cc356 100644 --- a/styles/sass/pages/product/vtex.breadcrumb.scss +++ b/styles/sass/pages/product/vtex.breadcrumb.scss @@ -0,0 +1,6 @@ +.container { + .link { + font-size: 14px; + line-height: 19px; + } +} diff --git a/styles/sass/utils/_vars.scss b/styles/sass/utils/_vars.scss index daf3adb..1af1275 100644 --- a/styles/sass/utils/_vars.scss +++ b/styles/sass/utils/_vars.scss @@ -1,16 +1,16 @@ -$color-black: #292929; +// Colors -$color-white: #fff; +$white: #fff; -$color-gray: #6c6c6c; -$color-gray2: #7d7d7d; -$color-gray3: #f0f0f0; -$color-gray4: #c4c4c4; -$color-gray5: #e5e5e5; +$gray-100: #bfbfbf; +$gray-200: #b9b9b9; +$gray-300: #bababa; +$gray-400: #AFAFAF; +$gray-500: #929292; +$gray-600: #575757; +$gray-700: #202020; -$color-blue: #4267b2; - -$color-green: #4caf50; +$black: #000000; /* Grid breakpoints */ $grid-breakpoints: ( -- 2.34.1 From 77ff2d6998ebd5a4cff95204971f51cbb2b7f8e9 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Mon, 23 Jan 2023 23:10:03 -0300 Subject: [PATCH 04/21] feat: Estiliza breadcrumb desktop --- styles/css/vtex.breadcrumb.css | 20 +++++++++++++++- .../sass/pages/product/vtex.breadcrumb.scss | 24 ++++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/styles/css/vtex.breadcrumb.css b/styles/css/vtex.breadcrumb.css index 41a1107..cd70e5f 100644 --- a/styles/css/vtex.breadcrumb.css +++ b/styles/css/vtex.breadcrumb.css @@ -7,7 +7,25 @@ */ /* Media Query M3 */ /* Grid breakpoints */ -.container .link { +.container { + margin: 8px 40px; +} +.container .link, +.container .term { font-size: 14px; line-height: 19px; + color: #929292; +} +.container .homeIcon { + display: none; +} +.container .link::after { + content: "Home"; + font-size: 14px; + line-height: 19px; + color: #929292; +} +.container .link--1::after, +.container .link--2::after { + display: none; } \ No newline at end of file diff --git a/styles/sass/pages/product/vtex.breadcrumb.scss b/styles/sass/pages/product/vtex.breadcrumb.scss index 25cc356..03a0063 100644 --- a/styles/sass/pages/product/vtex.breadcrumb.scss +++ b/styles/sass/pages/product/vtex.breadcrumb.scss @@ -1,6 +1,28 @@ .container { - .link { + margin: 8px 40px; + + .link, + .term { font-size: 14px; line-height: 19px; + color: $gray-500; + } + + .homeIcon { + display: none; + } + + .link::after { + content: "Home"; + font-size: 14px; + line-height: 19px; + color: $gray-500; + } + + .link--1, + .link--2 { + &::after { + display: none; + } } } -- 2.34.1 From 2cc75c71ac9c8241dc1b81d0a367138727adb7de Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Tue, 24 Jan 2023 16:55:58 -0300 Subject: [PATCH 05/21] =?UTF-8?q?feat:=20Ajusta=20margin=20e=20padding=20d?= =?UTF-8?q?o=20container=20de=20informa=C3=A7=C3=B5es=20de=20produto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- store/blocks/pdp/product.jsonc | 3 +- styles/css/vtex.breadcrumb.css | 7 ++- styles/css/vtex.flex-layout.css | 5 ++ styles/css/vtex.store-components.css | 40 +++++++++++++++ .../sass/pages/product/vtex.breadcrumb.scss | 6 ++- .../sass/pages/product/vtex.flex-layout.scss | 6 +++ .../pages/product/vtex.store-components.scss | 51 +++++++++++++++++-- 7 files changed, 111 insertions(+), 7 deletions(-) diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index b96a6a7..6dd4a2f 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -45,6 +45,7 @@ }, "flex-layout.row#product-main": { "props": { + "blockClass": "product-main", "colGap": 7, "rowGap": 7, "marginTop": 4, @@ -78,7 +79,7 @@ "flex-layout.col#stack": { "children": ["stack-layout"], "props": { - "width": "60%", + // "width": "60%", "rowGap": 0 } }, diff --git a/styles/css/vtex.breadcrumb.css b/styles/css/vtex.breadcrumb.css index cd70e5f..58d74c0 100644 --- a/styles/css/vtex.breadcrumb.css +++ b/styles/css/vtex.breadcrumb.css @@ -8,7 +8,12 @@ /* Media Query M3 */ /* Grid breakpoints */ .container { - margin: 8px 40px; + margin: 6px 36px; +} +@media screen and (min-width: 112.5em) { + .container { + margin: 6px 356px; + } } .container .link, .container .term { diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css index 0bffd8b..7a6df69 100644 --- a/styles/css/vtex.flex-layout.css +++ b/styles/css/vtex.flex-layout.css @@ -49,6 +49,11 @@ font-size: 14px; } +.flexRowContent--product-main { + margin: 0; + padding: 0; +} + .flexRow--deals { background-color: #0F3E99; padding: 14px 0px; diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index f8fa6cb..8ca4fd7 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -9,4 +9,44 @@ /* Grid breakpoints */ .newsletter { background: red; +} + +.container { + margin: 0 36px; + padding: 0 4px; +} +@media screen and (min-width: 112.5em) { + .container { + margin: 6px 356px; + } +} + +.productImageTag--main { + max-height: max-content !important; + max-width: 664px; +} + +.carouselGaleryThumbs { + margin-right: 16px; + max-height: 90px; +} + +.thumbImg { + height: 90px; + max-width: 90px; +} + +.carouselThumbBorder { + height: 90px; + width: 90px; +} + +.figure { + width: 90px; + height: 90px; +} + +.productImagesThumb { + max-width: 90px; + margin-right: 16px; } \ No newline at end of file diff --git a/styles/sass/pages/product/vtex.breadcrumb.scss b/styles/sass/pages/product/vtex.breadcrumb.scss index 03a0063..04e2890 100644 --- a/styles/sass/pages/product/vtex.breadcrumb.scss +++ b/styles/sass/pages/product/vtex.breadcrumb.scss @@ -1,5 +1,9 @@ .container { - margin: 8px 40px; + margin: 6px 36px; + + @media screen and (min-width: 112.5em) { + margin: 6px 356px; + } .link, .term { diff --git a/styles/sass/pages/product/vtex.flex-layout.scss b/styles/sass/pages/product/vtex.flex-layout.scss index a7c5732..5be2ea5 100644 --- a/styles/sass/pages/product/vtex.flex-layout.scss +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -32,6 +32,7 @@ background-color: #f0f0f0; } + .flexRowContent--menu-link :global(.vtex-menu-2-x-styledLink) { color: #ffffff; font-size: 14px; @@ -42,6 +43,11 @@ font-size: 14px; } +.flexRowContent--product-main { + margin: 0; + padding: 0; +} + .flexRow--deals { background-color: #0F3E99; padding: 14px 0px; diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 55e1bca..ec1e657 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -2,10 +2,53 @@ background: red; } -// .caretIcon { -// display: none; +.container { + margin: 0 36px; + padding: 0 4px; + + @media screen and (min-width: 112.5em) { + margin: 6px 356px; + } +} + +// .stretchChildrenWidth { +// width: 664px; // } -// .swiper-pagination { -// display: none; +// .stackItem--product { +// width: 664px; // } + +// .productImagesGallerySlide { +// width: 664px !important; +// } + +.productImageTag--main { + max-height: max-content !important; + max-width: 664px; +} + +.carouselGaleryThumbs { + margin-right: 16px; + max-height: 90px; +} + +.thumbImg { + height: 90px; + max-width: 90px; +} + +.carouselThumbBorder { + height: 90px; + width: 90px; +} + +.figure { + width: 90px; + height: 90px; +} + +.productImagesThumb { + max-width: 90px; + margin-right: 16px; +} -- 2.34.1 From 892cd902e959cf62d84a7935d686c2be305747b6 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Tue, 24 Jan 2023 23:22:27 -0300 Subject: [PATCH 06/21] feat: Estiliza container de skus --- store/blocks/pdp/product.jsonc | 21 +--- store/blocks/product-summary/quickview.json | 28 ++--- styles/configs/font-faces.css | 15 ++- styles/css/vtex.flex-layout.css | 2 +- styles/css/vtex.product-identifier.css | 26 ++++- styles/css/vtex.product-price.css | 34 +++--- styles/css/vtex.store-components.css | 90 ++++++++++++++ .../sass/pages/product/vtex.flex-layout.scss | 7 ++ .../product/vtex.product-identifier.scss | 29 +++++ .../pages/product/vtex.product-price.scss | 41 ++++--- .../pages/product/vtex.store-components.scss | 110 ++++++++++++++++++ 11 files changed, 328 insertions(+), 75 deletions(-) create mode 100644 styles/sass/pages/product/vtex.product-identifier.scss diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index 6dd4a2f..25c4c3c 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -105,20 +105,17 @@ }, "children": [ "flex-layout.row#product-name", + "product-identifier.product", "product-rating-summary", - "flex-layout.row#list-price-savings", "flex-layout.row#selling-price", "product-installments", - "product-separator", - "product-identifier.product", "sku-selector", "product-quantity", "product-assembly-options", "product-gifts", "flex-layout.row#buy-button", "availability-subscriber", - "shipping-simulator", - "share#default" + "shipping-simulator" ] }, @@ -132,7 +129,8 @@ "sku-selector": { "props": { "variationsSpacing": 3, - "showValueNameForImageVariation": true + "showValueNameForImageVariation": true, + "blockClass": "size-sku" } }, @@ -174,16 +172,5 @@ "blockClass": "message-availability" }, "children": ["availability-subscriber"] - }, - - "share#default": { - "props": { - "social": { - "Facebook": true, - "WhatsApp": true, - "Twitter": false, - "Pinterest": true - } - } } } diff --git a/store/blocks/product-summary/quickview.json b/store/blocks/product-summary/quickview.json index 723d4a0..2224337 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" } @@ -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/styles/configs/font-faces.css b/styles/configs/font-faces.css index 82bb3dd..6d4199a 100644 --- a/styles/configs/font-faces.css +++ b/styles/configs/font-faces.css @@ -1,5 +1,18 @@ @font-face { - font-family: "Roboto"; + font-family: "Open Sans"; src: url("assets/fonts/OpenSans-Regular.ttf"); font-weight: 400; } + +@font-face { + font-family: "Open Sans"; + src: url("assets/fonts/OpenSans-Light.ttf"); + font-weight: 300; +} + +@font-face { + font-family: "Open Sans"; + src: url("assets/fonts/OpenSans-Bold.ttf"); + font-weight: 700; +} + diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css index 7a6df69..03e8c8f 100644 --- a/styles/css/vtex.flex-layout.css +++ b/styles/css/vtex.flex-layout.css @@ -95,7 +95,7 @@ max-height: 100%; } -.flexColChild--quickviewDetails:first-child { +.flexRowContent .flexColChild--quickviewDetails:first-child { overflow-y: auto; height: 66% !important; overflow-x: hidden; diff --git a/styles/css/vtex.product-identifier.css b/styles/css/vtex.product-identifier.css index e3aa6d5..f956e09 100644 --- a/styles/css/vtex.product-identifier.css +++ b/styles/css/vtex.product-identifier.css @@ -1,3 +1,27 @@ -.product-identifier--productReference { +/* +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: 1rem; +} */ +.product-identifier__label { + display: none; } +.product-identifier__separator { + display: none; +} +.product-identifier__value { + display: flex; + justify-content: end; + font-weight: 400; + font-size: 14px; + line-height: 19px; + text-align: right; + color: rgba(146, 146, 146, 0.48); +} \ No newline at end of file diff --git a/styles/css/vtex.product-price.css b/styles/css/vtex.product-price.css index 3932d84..e26f032 100644 --- a/styles/css/vtex.product-price.css +++ b/styles/css/vtex.product-price.css @@ -11,29 +11,17 @@ display: none; } -.sellingPrice { - color: #3f3f40; - font-size: 1.25rem; -} - .sellingPriceValue { - font-size: 2.25rem; font-weight: 700; + font-size: 25px; + line-height: 38px; + color: #000000; + margin: 0; } .installments { - color: #727273; - margin-bottom: 1rem; -} - -.savings { - display: none; -} - -.sellingPriceValue--summary { - font-size: 1.25rem; - font-weight: 600; - color: #2e2e2e; + color: #929292; + margin-bottom: 16px; } .savings--summary { @@ -68,6 +56,16 @@ font-size: 0.875rem; } +.installments { + font-size: 16px; + line-height: 22px; + color: #929292; +} +.installments .installmentsNumber, +.installments .installmentValue { + font-weight: 700; +} + .savings--summaryPercentage { background: #0f3e99; border-radius: 1000px; diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 8ca4fd7..4ab4e3b 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -21,6 +21,14 @@ } } +.productNameContainer--quickview { + font-weight: 300; + font-size: 20px; + line-height: 34px; + text-align: right; + color: #575757; +} + .productImageTag--main { max-height: max-content !important; max-width: 664px; @@ -49,4 +57,86 @@ .productImagesThumb { max-width: 90px; margin-right: 16px; +} + +.skuSelectorContainer { + display: flex; + flex-direction: column; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor { + order: 2; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .frameAround, +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorItemImageValue, +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorInternalBox { + border-radius: 50%; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .frameAround { + border-color: #000000; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorTextContainer .skuSelectorName { + font-size: 0; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorTextContainer .skuSelectorName::after { + content: "OUTRAS CORES"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: gray; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorTextContainer .skuSelectorSelectorImageValue { + display: none; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho { + order: 1; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorItemTextValue { + padding: 0; + margin: auto; + font-weight: 400; + font-size: 14px; + line-height: 19px; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .frameAround, +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorInternalBox { + border-radius: 50%; + width: 40px; + height: 40px; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .frameAround { + border-color: #000000; + top: -2px; + left: 0; + right: 0; + bottom: 0; + z-index: 2; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .diagonalCross { + top: 4px; + right: 6px; + bottom: 0px; + z-index: 2; + width: 29px; + height: 29px; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorTextContainer .skuSelectorName { + font-size: 0; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorTextContainer .skuSelectorName::after { + content: "OUTROS TAMANHOS:"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #929292; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorTextContainer .skuSelectorSelectorImageValue { + display: none; +} + +.skuSelectorItem--size-sku--selected .skuSelectorItemTextValue--size-sku { + color: #000000; +} + +.skuSelectorItemTextValue { + color: rgba(185, 185, 185, 0.6); } \ 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 5be2ea5..d11c849 100644 --- a/styles/sass/pages/product/vtex.flex-layout.scss +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -89,6 +89,13 @@ max-height: 100%; } +// .flexColChild:first-child { +// display: flex; +// align-self: flex-end; +// } + +.flexRowContent + .flexColChild--quickviewDetails:first-child { overflow-y: auto; height: 66% !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..29581db --- /dev/null +++ b/styles/sass/pages/product/vtex.product-identifier.scss @@ -0,0 +1,29 @@ +/* .product-identifier--productReference { + margin-bottom: 1rem; +} */ + +// .info-availability { +// display: flex; +// align-self: flex-end; +// } + +.product-identifier { + + &__label { + display: none; + } + + &__separator { + display: none; + } + + &__value { + display: flex; + justify-content: end; + font-weight: 400; + font-size: 14px; + line-height: 19px; + text-align: right; + color: rgba(146, 146, 146, 0.48); + } +} diff --git a/styles/sass/pages/product/vtex.product-price.scss b/styles/sass/pages/product/vtex.product-price.scss index e7d8b24..1e892ab 100644 --- a/styles/sass/pages/product/vtex.product-price.scss +++ b/styles/sass/pages/product/vtex.product-price.scss @@ -5,30 +5,28 @@ // font-size: 1rem; } -.sellingPrice { - color: #3f3f40; - font-size: 1.25rem; -} +// .sellingPrice { +// margin: 0; +// } .sellingPriceValue { - font-size: 2.25rem; font-weight: 700; + font-size: 25px; + line-height: 38px; + color: $black; + margin: 0; } .installments { - color: #727273; - margin-bottom: 1rem; + color: $gray-500; + margin-bottom: 16px; } -.savings { -display: none; -} - -.sellingPriceValue--summary { - font-size: 1.25rem; - font-weight: 600; - color: #2e2e2e; -} +// .sellingPriceValue--summary { +// font-size: 1.25rem; +// font-weight: 600; +// color: $black; +// } .savings--summary { background: #8bc34a; @@ -63,6 +61,17 @@ display: none; font-size: 0.875rem; } +.installments { + font-size: 16px; + line-height: 22px; + color: $gray-500; + + .installmentsNumber, + .installmentValue { + font-weight: 700; + } +} + .savings--summaryPercentage { background: #0f3e99; border-radius: 1000px; diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index ec1e657..fda317e 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -23,6 +23,14 @@ // width: 664px !important; // } +.productNameContainer--quickview { + font-weight: 300; + font-size: 20px; + line-height: 34px; + text-align: right; + color: $gray-600; +} + .productImageTag--main { max-height: max-content !important; max-width: 664px; @@ -52,3 +60,105 @@ max-width: 90px; margin-right: 16px; } + +.skuSelectorContainer { + display: flex; + flex-direction: column; + + .skuSelectorSubcontainer--cor { + order: 2; + + .frameAround, + .skuSelectorItemImageValue, + .skuSelectorInternalBox { + border-radius: 50%; + } + + .frameAround { + border-color: $black; + } + + .skuSelectorTextContainer { + .skuSelectorName { + font-size: 0; + + &::after { + content: "OUTRAS CORES"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: gray; + } + } + + .skuSelectorSelectorImageValue { + display: none; + } + } + } + + .skuSelectorSubcontainer--tamanho { + order: 1; + + .skuSelectorItemTextValue{ + padding: 0; + margin: auto; + font-weight: 400; + font-size: 14px; + line-height: 19px; + } + + .frameAround, + .skuSelectorInternalBox { + border-radius: 50%; + width: 40px; + height: 40px; + } + + .frameAround { + border-color: $black; + top: -2px; + left: 0; + right: 0; + bottom: 0; + z-index: 2; + } + + .diagonalCross { + top: 4px; + right: 6px; + bottom: 0px; + z-index: 2; + width: 29px; + height: 29px; + } + + .skuSelectorTextContainer { + .skuSelectorName { + font-size: 0; + + &::after { + content: "OUTROS TAMANHOS:"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-500; + } + } + + .skuSelectorSelectorImageValue { + display: none; + } + } + } +} + +.skuSelectorItem--size-sku--selected { + .skuSelectorItemTextValue--size-sku { + color: $black; + } +} + +.skuSelectorItemTextValue { + color: rgba(185, 185, 185, 0.6); +} -- 2.34.1 From 34ca7b514275fe76cb954d881354cb4f11975455 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Wed, 25 Jan 2023 21:55:10 -0300 Subject: [PATCH 07/21] =?UTF-8?q?feat:=20Estiliza=20bot=C3=A3o=20de=20quan?= =?UTF-8?q?tidade=20e=20de=20adicionar=20=C3=A0=20sacola?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- react/Example.tsx | 4 +- store/blocks/minicart.jsonc | 3 +- store/blocks/pdp/product-assembly.jsonc | 12 +-- store/blocks/pdp/product.jsonc | 18 ++-- styles/css/vtex.add-to-cart-button.css | 17 +++ styles/css/vtex.flex-layout.css | 20 +++- styles/css/vtex.product-price.css | 29 +++-- styles/css/vtex.product-quantity.css | 37 ++++++- styles/css/vtex.store-components.css | 73 ++++++++++++- .../product/vtex.add-to-cart-button.scss | 8 ++ .../sass/pages/product/vtex.flex-layout.scss | 35 ++++-- .../pages/product/vtex.product-price.scss | 38 +++++-- .../pages/product/vtex.product-quantity.scss | 37 ++++++- .../pages/product/vtex.store-components.scss | 102 +++++++++++++++--- styles/sass/utils/_vars.scss | 3 + 15 files changed, 363 insertions(+), 73 deletions(-) create mode 100644 styles/css/vtex.add-to-cart-button.css create mode 100644 styles/sass/pages/product/vtex.add-to-cart-button.scss diff --git a/react/Example.tsx b/react/Example.tsx index 7d550e5..a355f89 100644 --- a/react/Example.tsx +++ b/react/Example.tsx @@ -1,3 +1,3 @@ -import Example from "./components/Example/Example"; +import Example from "./components/Example/ProductContext"; -export default Example; \ No newline at end of file +export default Example; diff --git a/store/blocks/minicart.jsonc b/store/blocks/minicart.jsonc index 5c797c2..1366c10 100644 --- a/store/blocks/minicart.jsonc +++ b/store/blocks/minicart.jsonc @@ -2,7 +2,8 @@ "add-to-cart-button": { "props": { "addToCartFeedback": "customEvent", - "customPixelEventId": "add-to-cart-button" + "customPixelEventId": "add-to-cart-button", + "text": "ADICIONAR À SACOLA" } }, diff --git a/store/blocks/pdp/product-assembly.jsonc b/store/blocks/pdp/product-assembly.jsonc index 43ad04e..f9e22eb 100644 --- a/store/blocks/pdp/product-assembly.jsonc +++ b/store/blocks/pdp/product-assembly.jsonc @@ -32,17 +32,13 @@ "props": { "verticalAlign": "middle" }, - "children": [ - "assembly-option-item-quantity-selector" - ] + "children": ["assembly-option-item-quantity-selector"] }, "flex-layout.col#product-assembly-image": { "props": { "marginRight": 4 }, - "children": [ - "assembly-option-item-image" - ] + "children": ["assembly-option-item-image"] }, "flex-layout.col#product-assembly-middle": { "props": { @@ -96,9 +92,7 @@ "horizontalAlign": "right", "verticalAlign": "middle" }, - "children": [ - "assembly-option-item-quantity-selector" - ] + "children": ["assembly-option-item-quantity-selector"] }, "assembly-option-item-customize#sec-level": { "props": { diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index 25c4c3c..d50443c 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -106,14 +106,11 @@ "children": [ "flex-layout.row#product-name", "product-identifier.product", - "product-rating-summary", "flex-layout.row#selling-price", "product-installments", "sku-selector", - "product-quantity", - "product-assembly-options", - "product-gifts", "flex-layout.row#buy-button", + "product-gifts", "availability-subscriber", "shipping-simulator" ] @@ -137,9 +134,10 @@ "flex-layout.row#buy-button": { "props": { "marginTop": 4, - "marginBottom": 7 + "marginBottom": 7, + "blockClass": "buy-button" }, - "children": ["add-to-cart-button"] + "children": ["product-quantity#size", "add-to-cart-button"] }, "flex-layout.row#product-availability": { @@ -172,5 +170,13 @@ "blockClass": "message-availability" }, "children": ["availability-subscriber"] + }, + + "product-quantity#size": { + "props": { + "size": "large", + "width": "28%", + "showLabel": false + } } } 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..cd587df --- /dev/null +++ b/styles/css/vtex.add-to-cart-button.css @@ -0,0 +1,17 @@ +/* +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 { + font-weight: 400; + font-size: 18px; + line-height: 25px; + text-align: center; + color: #fff; + padding: 7px 0; +} \ No newline at end of file diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css index 03e8c8f..50916b0 100644 --- a/styles/css/vtex.flex-layout.css +++ b/styles/css/vtex.flex-layout.css @@ -55,7 +55,7 @@ } .flexRow--deals { - background-color: #0F3E99; + background-color: #0f3e99; padding: 14px 0px; } @@ -95,7 +95,7 @@ max-height: 100%; } -.flexRowContent .flexColChild--quickviewDetails:first-child { +.flexColChild--quickviewDetails:first-child { overflow-y: auto; height: 66% !important; overflow-x: hidden; @@ -105,6 +105,18 @@ height: 34% !important; } -.flexRow--addToCartRow { - padding-bottom: 1rem; +.stretchChildrenWidth { + margin: 0; +} + +.flexRowContent--buy-button { + height: 49px; + display: flex; + justify-content: center; +} + +.flexRowContent--buy-button :global(.vtex-button) { + background: #000000; + border: none; + border-radius: 0; } \ No newline at end of file diff --git a/styles/css/vtex.product-price.css b/styles/css/vtex.product-price.css index e26f032..bc7fb01 100644 --- a/styles/css/vtex.product-price.css +++ b/styles/css/vtex.product-price.css @@ -19,11 +19,6 @@ margin: 0; } -.installments { - color: #929292; - margin-bottom: 16px; -} - .savings--summary { background: #8bc34a; border-radius: 1000px; @@ -57,13 +52,31 @@ } .installments { - font-size: 16px; - line-height: 22px; - color: #929292; + font-size: 0; } .installments .installmentsNumber, .installments .installmentValue { font-weight: 700; + font-size: 16px; + line-height: 22px; + color: #929292; + margin-bottom: 16px; +} +.installments .installmentsNumber { + font-size: 0 !important; +} +.installments .installmentsNumber::before { + content: "36 x"; + font-size: 16px; +} +.installments .installmentsNumber::after { + content: " de "; + font-weight: 400; + font-size: 16px; +} +.installments .installmentValue::after { + content: " sem juros"; + font-weight: 400; } .savings--summaryPercentage { diff --git a/styles/css/vtex.product-quantity.css b/styles/css/vtex.product-quantity.css index 1317f4f..4ae3361 100644 --- a/styles/css/vtex.product-quantity.css +++ b/styles/css/vtex.product-quantity.css @@ -7,6 +7,39 @@ */ /* Media Query M3 */ /* Grid breakpoints */ -.quantitySelectorTitle { - display: none; +:global(.vtex-numeric-stepper__minus-button), +:global(.vtex-numeric-stepper__plus-button) { + background-color: #fff; + font-weight: 400; + font-size: 16px; + line-height: 22px; + color: #000000; + border-radius: 0; +} + +:global(.vtex-numeric-stepper__minus-button) { + border-top: 1px; + border-left: 1px; + border-bottom: 1px; + border-style: solid; + border-color: #cccccc; +} + +:global(.vtex-numeric-stepper__plus-button) { + border-top: 1px; + border-right: 1px; + border-bottom: 1px; + border-style: solid; + border-color: #cccccc; +} + +:global(.vtex-numeric-stepper__input) { + border-top: 1px; + border-bottom: 1px; + border-style: solid; + border-right: none; + border-left: none; + border-color: #cccccc; + color: #929292; + outline: 0; } \ No newline at end of file diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 4ab4e3b..6ab8699 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -74,6 +74,16 @@ .skuSelectorContainer .skuSelectorSubcontainer--cor .frameAround { border-color: #000000; } +.skuSelectorContainer .skuSelectorSubcontainer--cor .diagonalCross { + color: #d5d5d5; + top: 5px; + left: 6px; + bottom: 0px; + z-index: 2; + width: 28px; + height: 28px; + transform: rotateY(180deg); +} .skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorTextContainer .skuSelectorName { font-size: 0; } @@ -82,7 +92,7 @@ font-weight: 400; font-size: 14px; line-height: 19px; - color: gray; + color: #929292; } .skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorTextContainer .skuSelectorSelectorImageValue { display: none; @@ -103,6 +113,9 @@ width: 40px; height: 40px; } +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorInternalBox { + border-color: #989898; +} .skuSelectorContainer .skuSelectorSubcontainer--tamanho .frameAround { border-color: #000000; top: -2px; @@ -112,12 +125,14 @@ z-index: 2; } .skuSelectorContainer .skuSelectorSubcontainer--tamanho .diagonalCross { + color: #d5d5d5; top: 4px; - right: 6px; + left: 6px; bottom: 0px; z-index: 2; - width: 29px; - height: 29px; + width: 28px; + height: 28px; + transform: rotateY(180deg); } .skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorTextContainer .skuSelectorName { font-size: 0; @@ -139,4 +154,54 @@ .skuSelectorItemTextValue { color: rgba(185, 185, 185, 0.6); +} + +.skuSelectorItem { + margin: 0 16px 0 0; +} + +.shippingContainer { + display: flex; +} +.shippingContainer :global(.vtex-address-form__postalCode) { + display: flex; + align-items: center; +} +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input__label) { + font-size: 0; +} +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input__label)::after { + content: "CALCULAR FRETE:"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #929292; +} +.shippingContainer :global(.vtex-button) { + font-size: 0; + position: relative; + top: -5px; + right: 148px; + width: 49px; + height: 49px; + margin-top: 27px; + background-color: #000000; +} +.shippingContainer :global(.vtex-button)::after { + content: "OK"; + font-size: 14px; + line-height: 19px; + font-weight: 600; + color: white; +} +.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) { + position: relative; + left: 32px; +} +.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) :last-child { + color: #000000; +} + +:global(.vtex-button__label) { + height: fit-content; } \ No newline at end of file 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..28ee7ae --- /dev/null +++ b/styles/sass/pages/product/vtex.add-to-cart-button.scss @@ -0,0 +1,8 @@ +.buttonText { + font-weight: 400; + font-size: 18px; + line-height: 25px; + text-align: center; + color: $white; + padding: 7px 0; +} diff --git a/styles/sass/pages/product/vtex.flex-layout.scss b/styles/sass/pages/product/vtex.flex-layout.scss index d11c849..d263571 100644 --- a/styles/sass/pages/product/vtex.flex-layout.scss +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -32,7 +32,6 @@ background-color: #f0f0f0; } - .flexRowContent--menu-link :global(.vtex-menu-2-x-styledLink) { color: #ffffff; font-size: 14px; @@ -49,7 +48,7 @@ } .flexRow--deals { - background-color: #0F3E99; + background-color: #0f3e99; padding: 14px 0px; } @@ -89,13 +88,6 @@ max-height: 100%; } -// .flexColChild:first-child { -// display: flex; -// align-self: flex-end; -// } - -.flexRowContent - .flexColChild--quickviewDetails:first-child { overflow-y: auto; height: 66% !important; @@ -106,6 +98,27 @@ height: 34% !important; } -.flexRow--addToCartRow { - padding-bottom: 1rem; +.stretchChildrenWidth { + margin: 0; + // display: flex; + // align-items: center; + // justify-content: center; +} + +// .input-button { +// display: flex; +// align-items: center; +// justify-content: center; +// } + +.flexRowContent--buy-button { + height: 49px; + display: flex; + justify-content: center; +} + +.flexRowContent--buy-button :global(.vtex-button) { + background: $black; + border: none; + border-radius: 0; } diff --git a/styles/sass/pages/product/vtex.product-price.scss b/styles/sass/pages/product/vtex.product-price.scss index 1e892ab..ef4e61d 100644 --- a/styles/sass/pages/product/vtex.product-price.scss +++ b/styles/sass/pages/product/vtex.product-price.scss @@ -17,10 +17,10 @@ margin: 0; } -.installments { - color: $gray-500; - margin-bottom: 16px; -} +// .installments { +// color: $gray-500; +// margin-bottom: 16px; +// } // .sellingPriceValue--summary { // font-size: 1.25rem; @@ -62,13 +62,37 @@ } .installments { - font-size: 16px; - line-height: 22px; - color: $gray-500; + font-size: 0; .installmentsNumber, .installmentValue { font-weight: 700; + font-size: 16px; + line-height: 22px; + color: $gray-500; + margin-bottom: 16px; + } + + .installmentsNumber { + font-size: 0 !important; + + &::before { + content: "36 x"; + font-size: 16px; + } + + &::after { + content: " de "; + font-weight: 400; + font-size: 16px; + } + } + + .installmentValue { + &::after { + content: " sem juros"; + font-weight: 400; + } } } diff --git a/styles/sass/pages/product/vtex.product-quantity.scss b/styles/sass/pages/product/vtex.product-quantity.scss index dd527e9..82e99fd 100644 --- a/styles/sass/pages/product/vtex.product-quantity.scss +++ b/styles/sass/pages/product/vtex.product-quantity.scss @@ -1,3 +1,36 @@ -.quantitySelectorTitle { - display: none; +:global(.vtex-numeric-stepper__minus-button), +:global(.vtex-numeric-stepper__plus-button) { + background-color: $white; + font-weight: 400; + font-size: 16px; + line-height: 22px; + color: $black; + border-radius: 0; +} + +:global(.vtex-numeric-stepper__minus-button) { + border-top: 1px; + border-left: 1px; + border-bottom: 1px; + border-style: solid; + border-color: $gray-1000; +} + +:global(.vtex-numeric-stepper__plus-button) { + border-top: 1px; + border-right: 1px; + border-bottom: 1px; + border-style: solid; + border-color: $gray-1000; +} + +:global(.vtex-numeric-stepper__input) { + border-top: 1px; + border-bottom: 1px; + border-style: solid; + border-right: none; + border-left: none; + border-color: $gray-1000; + color: $gray-500; + outline: 0; } diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index fda317e..db7382d 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -11,18 +11,6 @@ } } -// .stretchChildrenWidth { -// width: 664px; -// } - -// .stackItem--product { -// width: 664px; -// } - -// .productImagesGallerySlide { -// width: 664px !important; -// } - .productNameContainer--quickview { font-weight: 300; font-size: 20px; @@ -72,12 +60,29 @@ .skuSelectorItemImageValue, .skuSelectorInternalBox { border-radius: 50%; + // width: 48px; + // height: 48px; } + // .skuSelectorInternalBox { + // border-color: $gray-800; + // } + .frameAround { border-color: $black; } + .diagonalCross { + color: $gray-900; + top: 5px; + left: 6px; + bottom: 0px; + z-index: 2; + width: 28px; + height: 28px; + transform: rotateY(180deg); + } + .skuSelectorTextContainer { .skuSelectorName { font-size: 0; @@ -87,7 +92,7 @@ font-weight: 400; font-size: 14px; line-height: 19px; - color: gray; + color: $gray-500; } } @@ -100,7 +105,7 @@ .skuSelectorSubcontainer--tamanho { order: 1; - .skuSelectorItemTextValue{ + .skuSelectorItemTextValue { padding: 0; margin: auto; font-weight: 400; @@ -115,6 +120,10 @@ height: 40px; } + .skuSelectorInternalBox { + border-color: $gray-800; + } + .frameAround { border-color: $black; top: -2px; @@ -125,12 +134,14 @@ } .diagonalCross { + color: $gray-900; top: 4px; - right: 6px; + left: 6px; bottom: 0px; z-index: 2; - width: 29px; - height: 29px; + width: 28px; + height: 28px; + transform: rotateY(180deg); } .skuSelectorTextContainer { @@ -162,3 +173,60 @@ .skuSelectorItemTextValue { color: rgba(185, 185, 185, 0.6); } + +.skuSelectorItem { + margin: 0 16px 0 0; +} + +.shippingContainer { + display: flex; + + :global(.vtex-address-form__postalCode) { + display: flex; + align-items: center; + + :global(.vtex-input__label) { + font-size: 0; + + &::after { + content: "CALCULAR FRETE:"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-500; + } + } + } + + :global(.vtex-button) { + font-size: 0; + position: relative; + top: -5px; + right: 148px; + width: 49px; + height: 49px; + margin-top: 27px; + background-color: $black; + + &::after { + content: "OK"; + font-size: 14px; + line-height: 19px; + font-weight: 600; + color: white; + } + } + + :global(.vtex-address-form__postalCode-forgottenURL) { + position: relative; + left: 32px; + + :last-child { + color: $black; + } + } +} + +:global(.vtex-button__label) { + height: fit-content; +} diff --git a/styles/sass/utils/_vars.scss b/styles/sass/utils/_vars.scss index 1af1275..4541348 100644 --- a/styles/sass/utils/_vars.scss +++ b/styles/sass/utils/_vars.scss @@ -9,6 +9,9 @@ $gray-400: #AFAFAF; $gray-500: #929292; $gray-600: #575757; $gray-700: #202020; +$gray-800: #989898; +$gray-900: #d5d5d5; +$gray-1000: #cccccc; $black: #000000; -- 2.34.1 From d4f6624c34e48929038bc59865a726145d987441 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Wed, 25 Jan 2023 22:22:18 -0300 Subject: [PATCH 08/21] feat: Estiliza input de frete --- styles/css/vtex.store-components.css | 28 +++++++++--- .../pages/product/vtex.store-components.scss | 44 +++++++++++++------ 2 files changed, 53 insertions(+), 19 deletions(-) diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 6ab8699..8f86ec3 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -167,10 +167,16 @@ display: flex; align-items: center; } -.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input__label) { +.shippingContainer :global(.vtex-input-prefix__group) { + width: 280px; + height: 49px; + border-radius: 0; + border: 1px solid #cccccc; +} +.shippingContainer :global(.vtex-input__label) { font-size: 0; } -.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input__label)::after { +.shippingContainer :global(.vtex-input__label)::after { content: "CALCULAR FRETE:"; font-weight: 400; font-size: 14px; @@ -180,12 +186,13 @@ .shippingContainer :global(.vtex-button) { font-size: 0; position: relative; - top: -5px; + top: 25px; right: 148px; - width: 49px; - height: 49px; - margin-top: 27px; + width: 53px; + height: 53px; + margin-top: 0; background-color: #000000; + cursor: pointer; } .shippingContainer :global(.vtex-button)::after { content: "OK"; @@ -195,11 +202,20 @@ color: white; } .shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) { + padding: 0; position: relative; left: 32px; + top: 10px; } .shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) :last-child { color: #000000; + font-weight: 400; + font-size: 12px; + line-height: 16px; + text-decoration: underline; +} +.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) :last-child :global(.vtex__icon-external-link) { + display: none; } :global(.vtex-button__label) { diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index db7382d..1c4fb87 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -184,29 +184,37 @@ :global(.vtex-address-form__postalCode) { display: flex; align-items: center; + } - :global(.vtex-input__label) { - font-size: 0; + :global(.vtex-input-prefix__group) { + width: 280px; + height: 49px; + border-radius: 0; + border: 1px solid $gray-1000; + } - &::after { - content: "CALCULAR FRETE:"; - font-weight: 400; - font-size: 14px; - line-height: 19px; - color: $gray-500; - } + :global(.vtex-input__label) { + font-size: 0; + + &::after { + content: "CALCULAR FRETE:"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-500; } } :global(.vtex-button) { font-size: 0; position: relative; - top: -5px; + top: 25px; right: 148px; - width: 49px; - height: 49px; - margin-top: 27px; + width: 53px; + height: 53px; + margin-top: 0; background-color: $black; + cursor: pointer; &::after { content: "OK"; @@ -218,11 +226,21 @@ } :global(.vtex-address-form__postalCode-forgottenURL) { + padding: 0; position: relative; left: 32px; + top: 10px; :last-child { color: $black; + font-weight: 400; + font-size: 12px; + line-height: 16px; + text-decoration: underline; + + :global(.vtex__icon-external-link) { + display: none; + } } } } -- 2.34.1 From 5252930d8d1907f0c1fee16e508b17da203fbc96 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Sat, 28 Jan 2023 12:31:26 -0300 Subject: [PATCH 09/21] feat: Cria bloco de Newsletter --- manifest.json | 3 +- react/Example.tsx | 2 +- react/components/Html/index.tsx | 80 +++++++----- react/components/Html/styles.css | 12 ++ store/blocks/home/home.jsonc | 5 +- store/blocks/pdp/product-assembly.jsonc | 12 +- store/blocks/pdp/product.jsonc | 35 ++++- styles/css/vtex.product-price.css | 24 +--- styles/css/vtex.store-components.css | 98 +++++++++++++- .../sass/pages/product/vtex.flex-layout.scss | 9 -- .../pages/product/vtex.product-price.scss | 59 ++++----- .../pages/product/vtex.store-components.scss | 122 +++++++++++++++++- 12 files changed, 338 insertions(+), 123 deletions(-) create mode 100644 react/components/Html/styles.css diff --git a/manifest.json b/manifest.json index a2cde0d..6f9f3e2 100644 --- a/manifest.json +++ b/manifest.json @@ -65,7 +65,8 @@ "vtex.tab-layout": "0.x", "vtex.condition-layout": "2.x", "vtex.css-handles": "1.x", - "vtex.product-context": "0.x" + "vtex.product-context": "0.x", + "vtex.store-newsletter": "1.x" }, "$schema": "https://raw.githubusercontent.com/vtex/node-vtex-api/master/gen/manifest.schema" } diff --git a/react/Example.tsx b/react/Example.tsx index a355f89..fe63560 100644 --- a/react/Example.tsx +++ b/react/Example.tsx @@ -1,3 +1,3 @@ -import Example from "./components/Example/ProductContext"; +import Example from "./components/Example/Example"; export default Example; diff --git a/react/components/Html/index.tsx b/react/components/Html/index.tsx index d60d7f5..082c0f0 100644 --- a/react/components/Html/index.tsx +++ b/react/components/Html/index.tsx @@ -1,41 +1,53 @@ 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 - */ - 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 -} - -export const Html = ({ children = null, tag = "div", text = "", tachyonsClasses: classes = "", testId }: HtmlProps) => { - 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); - - return <>{Element}; + 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 + */ + testId?: string; +}; + +export const Html = ({ + children = null, + tag = "div", + text = "", + tachyonsClasses: classes = "", + testId, +}: HtmlProps) => { + 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); + + return <>{Element}; }; diff --git a/react/components/Html/styles.css b/react/components/Html/styles.css new file mode 100644 index 0000000..e28c0d3 --- /dev/null +++ b/react/components/Html/styles.css @@ -0,0 +1,12 @@ +[class*="html--buy-button"] { + display: flex; + gap: 10px; + margin-bottom: 5px; +} + +[class*="html--buy-button"] :global(.vtex-button) { + height: 49px; + background: black; + border: none; + border-radius: 0; +} diff --git a/store/blocks/home/home.jsonc b/store/blocks/home/home.jsonc index a4776bc..e18de24 100644 --- a/store/blocks/home/home.jsonc +++ b/store/blocks/home/home.jsonc @@ -2,8 +2,9 @@ "store.home": { "blocks": [ "list-context.image-list#demo", - "example-component", /* You can make references to blocks defined in other files. - * For example, `flex-layout.row#deals` is defined in the `deals.json` file. */ + "example-component" + /* You can make references to blocks defined in other files. + * For example, `flex-layout.row#deals` is defined in the `deals.json` file. */, "flex-layout.row#deals", "__fold__", "rich-text#shelf-title", diff --git a/store/blocks/pdp/product-assembly.jsonc b/store/blocks/pdp/product-assembly.jsonc index f9e22eb..34f4233 100644 --- a/store/blocks/pdp/product-assembly.jsonc +++ b/store/blocks/pdp/product-assembly.jsonc @@ -1,10 +1,10 @@ { - "sticky-layout#buy-button": { - "props": { - "position": "bottom" - }, - "children": ["flex-layout.row#buy-button"] - }, + // "sticky-layout#buy-button": { + // "props": { + // "position": "bottom" + // }, + // "children": ["flex-layout.row#buy-button"] + // }, "product-assembly-options": { "children": [ "flex-layout.row#product-assembly-options", diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index d50443c..cc5cfb1 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -7,7 +7,8 @@ "flex-layout.row#specifications-title", "product-specification-group#table", "shelf.relatedProducts", - "product-questions-and-answers" + "product-questions-and-answers", + "newsletter" ] }, "html#breadcrumb": { @@ -109,7 +110,8 @@ "flex-layout.row#selling-price", "product-installments", "sku-selector", - "flex-layout.row#buy-button", + // "flex-layout.row#buy-button", + "html#buy-button", "product-gifts", "availability-subscriber", "shipping-simulator" @@ -131,15 +133,30 @@ } }, - "flex-layout.row#buy-button": { + "product-installments": { + "props": { + "markers": ["discount"], + "message": "{installmentsNumber} x de {installmentValue} sem juros", + "installmentsCriteria": "max-quantity-without-interest" + } + }, + + "html#buy-button": { "props": { - "marginTop": 4, - "marginBottom": 7, "blockClass": "buy-button" }, "children": ["product-quantity#size", "add-to-cart-button"] }, + // "flex-layout.row#buy-button": { + // "props": { + // "marginTop": 4, + // "marginBottom": 7, + // "blockClass": "buy-button" + // }, + // "children": ["product-quantity#size", "add-to-cart-button"] + // }, + "flex-layout.row#product-availability": { "props": { "colGap": 7, @@ -178,5 +195,13 @@ "width": "28%", "showLabel": false } + }, + + "newsletter": { + "props": { + "label": "Assine nossa newsletter \n Receba ofertas e novidades por e-mail", + "placeholder": "Digite seu e-mail", + "submit": "ENVIAR" + } } } diff --git a/styles/css/vtex.product-price.css b/styles/css/vtex.product-price.css index bc7fb01..934c701 100644 --- a/styles/css/vtex.product-price.css +++ b/styles/css/vtex.product-price.css @@ -52,31 +52,15 @@ } .installments { - font-size: 0; -} -.installments .installmentsNumber, -.installments .installmentValue { - font-weight: 700; font-size: 16px; line-height: 22px; + font-weight: 400; color: #929292; margin-bottom: 16px; } -.installments .installmentsNumber { - font-size: 0 !important; -} -.installments .installmentsNumber::before { - content: "36 x"; - font-size: 16px; -} -.installments .installmentsNumber::after { - content: " de "; - font-weight: 400; - font-size: 16px; -} -.installments .installmentValue::after { - content: " sem juros"; - font-weight: 400; +.installments .installments-discount, +.installments .installmentValue { + font-weight: 700; } .savings--summaryPercentage { diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 8f86ec3..962e553 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -8,7 +8,20 @@ /* Media Query M3 */ /* Grid breakpoints */ .newsletter { - background: red; + display: block; + background: #000000; +} +.newsletter :global(.vtex-input-prefix__group) { + border: none; +} +.newsletter .label { + color: #fff; + font-weight: 400; + font-size: 18px; + line-height: 25px; +} +.newsletter .button-container :global(.vtex-button__label) { + background-color: transparent; } .container { @@ -186,11 +199,13 @@ .shippingContainer :global(.vtex-button) { font-size: 0; position: relative; - top: 25px; - right: 148px; - width: 53px; - height: 53px; + top: 27px; + right: 147px; + width: 49px; + height: 49px; margin-top: 0; + border: none; + border-radius: 0; background-color: #000000; cursor: pointer; } @@ -220,4 +235,77 @@ :global(.vtex-button__label) { height: fit-content; +} + +.shippingTable { + display: flex; + flex-direction: column; + border: none; +} +.shippingTable .shippingTableHead { + display: flex; + flex-direction: row; +} +.shippingTable .shippingTableHead .shippingTableHeadDeliveryName, +.shippingTable .shippingTableHead .shippingTableHeadDeliveryEstimate, +.shippingTable .shippingTableHead .shippingTableHeadDeliveryPrice { + padding: 0; +} +.shippingTable .shippingTableHead .shippingTableHeadDeliveryName { + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #202020; + text-transform: uppercase; + min-width: 140px; + text-align: left; +} +.shippingTable .shippingTableHead .shippingTableHeadDeliveryEstimate { + font-size: 0; + min-width: 140px; + text-align: left; +} +.shippingTable .shippingTableHead .shippingTableHeadDeliveryEstimate::after { + content: "FRETE"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #202020; +} +.shippingTable .shippingTableHead .shippingTableHeadDeliveryPrice { + font-size: 0; + min-width: 140px; + text-align: left; +} +.shippingTable .shippingTableHead .shippingTableHeadDeliveryPrice::after { + content: "PRAZO"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #202020; +} +.shippingTable .shippingTableBody .shippingTableRow { + display: flex; + flex-direction: row; +} +.shippingTable .shippingTableBody .shippingTableRow .shippingTableCellDeliveryEstimate { + display: flex; + order: 3; +} +.shippingTable .shippingTableBody .shippingTableRow .shippingTableCellDeliveryEstimate .shippingTableCellDeliveryPrice { + display: flex; + order: 2; +} +.shippingTable .shippingTableBody .shippingTableCell { + padding: 0; + display: flex; + color: #AFAFAF; + font-weight: 400; + font-size: 12px; + line-height: 16px; + min-width: 140px; + padding-top: 15px; +} +.shippingTable .shippingTableRadioBtn { + display: none; } \ 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 d263571..60b789a 100644 --- a/styles/sass/pages/product/vtex.flex-layout.scss +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -100,17 +100,8 @@ .stretchChildrenWidth { margin: 0; - // display: flex; - // align-items: center; - // justify-content: center; } -// .input-button { -// display: flex; -// align-items: center; -// justify-content: center; -// } - .flexRowContent--buy-button { height: 49px; display: flex; diff --git a/styles/sass/pages/product/vtex.product-price.scss b/styles/sass/pages/product/vtex.product-price.scss index ef4e61d..2c98406 100644 --- a/styles/sass/pages/product/vtex.product-price.scss +++ b/styles/sass/pages/product/vtex.product-price.scss @@ -17,17 +17,6 @@ margin: 0; } -// .installments { -// color: $gray-500; -// margin-bottom: 16px; -// } - -// .sellingPriceValue--summary { -// font-size: 1.25rem; -// font-weight: 600; -// color: $black; -// } - .savings--summary { background: #8bc34a; border-radius: 1000px; @@ -62,38 +51,38 @@ } .installments { - font-size: 0; + font-size: 16px; + line-height: 22px; + font-weight: 400; + color: $gray-500; + margin-bottom: 16px; - .installmentsNumber, + .installments-discount, .installmentValue { font-weight: 700; - font-size: 16px; - line-height: 22px; - color: $gray-500; - margin-bottom: 16px; } - .installmentsNumber { - font-size: 0 !important; + // .installmentsNumber { + // font-size: 0 !important; - &::before { - content: "36 x"; - font-size: 16px; - } + // &::before { + // content: "36 x"; + // font-size: 16px; + // } - &::after { - content: " de "; - font-weight: 400; - font-size: 16px; - } - } + // &::after { + // content: " de "; + // font-weight: 400; + // font-size: 16px; + // } + // } - .installmentValue { - &::after { - content: " sem juros"; - font-weight: 400; - } - } + // .installmentValue { + // &::after { + // content: " sem juros"; + // font-weight: 400; + // } + // } } .savings--summaryPercentage { diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 1c4fb87..f1b89a4 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -1,5 +1,27 @@ .newsletter { - background: red; + display: block; + background: $black; + + :global(.vtex-input-prefix__group) { + border: none; + + // background: $black; + } + + .label { + color: $white; + font-weight: 400; + // font-size: 24px; + // line-height: 38px; + font-size: 18px; + line-height: 25px; + } + + .button-container { + :global(.vtex-button__label) { + background-color: transparent; + } + } } .container { @@ -208,11 +230,13 @@ :global(.vtex-button) { font-size: 0; position: relative; - top: 25px; - right: 148px; - width: 53px; - height: 53px; + top: 27px; + right: 147px; + width: 49px; + height: 49px; margin-top: 0; + border: none; + border-radius: 0; background-color: $black; cursor: pointer; @@ -248,3 +272,91 @@ :global(.vtex-button__label) { height: fit-content; } + +.shippingTable { + display: flex; + flex-direction: column; + border: none; + + .shippingTableHead { + display: flex; + flex-direction: row; + + .shippingTableHeadDeliveryName, + .shippingTableHeadDeliveryEstimate, + .shippingTableHeadDeliveryPrice { + padding: 0; + } + + .shippingTableHeadDeliveryName { + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-700; + text-transform: uppercase; + min-width: 140px; + text-align: left; + } + + .shippingTableHeadDeliveryEstimate { + font-size: 0; + min-width: 140px; + text-align: left; + + &::after { + content: "FRETE"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-700; + // margin-right: 40px; + } + } + + .shippingTableHeadDeliveryPrice { + font-size: 0; + min-width: 140px; + text-align: left; + + &::after { + content: "PRAZO"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-700; + } + } + } + + .shippingTableBody { + .shippingTableRow { + display: flex; + flex-direction: row; + + .shippingTableCellDeliveryEstimate { + display: flex; + order: 3; + + .shippingTableCellDeliveryPrice { + display: flex; + order: 2; + } + } + } + + .shippingTableCell { + padding: 0; + display: flex; + color: $gray-400; + font-weight: 400; + font-size: 12px; + line-height: 16px; + min-width: 140px; + padding-top: 15px; + } + } + + .shippingTableRadioBtn { + display: none; + } +} -- 2.34.1 From 529f0db0095c203653b256254349dcd8672814d0 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Sat, 28 Jan 2023 19:19:19 -0300 Subject: [PATCH 10/21] =?UTF-8?q?feat:=20Cria=20bloco=20de=20descri=C3=A7?= =?UTF-8?q?=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- store/blocks/pdp/product.jsonc | 164 +++++++++++++++--- styles/css/vtex.store-components.css | 35 +++- styles/css/vtex.styleguide.css | 17 ++ styles/css/vtex.tab-layout.css | 55 ++++++ .../pages/product/vtex.store-components.scss | 47 ++++- .../sass/pages/product/vtex.tab-layout.scss | 77 ++++++++ styles/sass/utils/_vars.scss | 1 + 7 files changed, 367 insertions(+), 29 deletions(-) create mode 100644 styles/css/vtex.styleguide.css create mode 100644 styles/css/vtex.tab-layout.css create mode 100644 styles/sass/pages/product/vtex.tab-layout.scss diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index cc5cfb1..0c24007 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -3,9 +3,10 @@ "children": [ "html#breadcrumb", "condition-layout.product#availability", - "flex-layout.row#description", - "flex-layout.row#specifications-title", - "product-specification-group#table", + // "flex-layout.row#description", + // "flex-layout.row#specifications-title", + // "product-specification-group#table", + "tab-layout", "shelf.relatedProducts", "product-questions-and-answers", "newsletter" @@ -68,14 +69,14 @@ ] }, - "product-specification-badges": { - "props": { - "specificationGroupName": "Group", - "specificationName": "On Sale", - "visibleWhen": "True", - "displayValue": "SPECIFICATION_NAME" - } - }, + // "product-specification-badges": { + // "props": { + // "specificationGroupName": "Group", + // "specificationName": "On Sale", + // "visibleWhen": "True", + // "displayValue": "SPECIFICATION_NAME" + // } + // }, "flex-layout.col#stack": { "children": ["stack-layout"], @@ -110,7 +111,6 @@ "flex-layout.row#selling-price", "product-installments", "sku-selector", - // "flex-layout.row#buy-button", "html#buy-button", "product-gifts", "availability-subscriber", @@ -148,15 +148,6 @@ "children": ["product-quantity#size", "add-to-cart-button"] }, - // "flex-layout.row#buy-button": { - // "props": { - // "marginTop": 4, - // "marginBottom": 7, - // "blockClass": "buy-button" - // }, - // "children": ["product-quantity#size", "add-to-cart-button"] - // }, - "flex-layout.row#product-availability": { "props": { "colGap": 7, @@ -197,6 +188,137 @@ } }, + "tab-layout": { + "children": ["tab-list", "tab-content"], + "props": { + "blockClass": "tabLayout" + } + }, + + "tab-list": { + "children": [ + "tab-list.item#1", + "tab-list.item#2", + "tab-list.item#3", + "tab-list.item#4", + "tab-list.item#5" + ], + "props": { + "blockClass": "tabList" + } + }, + + "tab-content": { + "children": [ + "tab-content.item#1", + "tab-content.item#2", + "tab-content.item#3", + "tab-content.item#4", + "tab-content.item#5" + ], + "props": { + "blockClass": "tabContent" + } + }, + + "tab-list.item#1": { + "props": { + "tabId": "description#1", + "label": "Descrição", + "defaultActiveTab": true + } + }, + + "tab-list.item#2": { + "props": { + "tabId": "description#2", + "label": "Descrição" + } + }, + + "tab-list.item#3": { + "props": { + "tabId": "description#3", + "label": "Descrição" + } + }, + + "tab-list.item#4": { + "props": { + "tabId": "description#4", + "label": "Descrição" + } + }, + + "tab-list.item#5": { + "props": { + "tabId": "description#5", + "label": "Descrição" + } + }, + + "tab-content.item#1": { + "children": ["product-images", "rich-text#1"], + "props": { + "tabId": "description#1" + } + }, + "tab-content.item#2": { + "children": ["product-images", "rich-text#2"], + "props": { + "tabId": "description#2" + } + }, + "tab-content.item#3": { + "children": ["product-images", "rich-text#3"], + "props": { + "tabId": "description#3" + } + }, + "tab-content.item#4": { + "children": ["product-images", "rich-text#4"], + "props": { + "tabId": "description#4" + } + }, + "tab-content.item#5": { + "children": ["product-images", "rich-text#5"], + "props": { + "tabId": "description#5" + } + }, + + "rich-text#1": { + "props": { + "text": "Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque.", + "textPosition": "CENTER" + } + }, + "rich-text#2": { + "props": { + "text": "Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque.", + "textPosition": "CENTER" + } + }, + "rich-text#3": { + "props": { + "text": "Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque.", + "textPosition": "CENTER" + } + }, + "rich-text#4": { + "props": { + "text": "Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque.", + "textPosition": "CENTER" + } + }, + "rich-text#5": { + "props": { + "text": "Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque.", + "textPosition": "CENTER" + } + }, + "newsletter": { "props": { "label": "Assine nossa newsletter \n Receba ofertas e novidades por e-mail", diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 962e553..689f6d3 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 @@ -25,8 +26,7 @@ } .container { - margin: 0 36px; - padding: 0 4px; + padding: 0 40px; } @media screen and (min-width: 112.5em) { .container { @@ -308,4 +308,35 @@ } .shippingTable .shippingTableRadioBtn { display: none; +} + +.subscriberContainer .title { + font-size: 0; + margin: 0; +} +.subscriberContainer .title::after { + content: "Produto indisponível"; + font-weight: 700; + font-size: 14px; + line-height: 19px; + color: #868686; +} +.subscriberContainer .subscribeLabel { + font-size: 0; +} +.subscriberContainer .subscribeLabel::after { + content: "Deseja saber quando estiver disponível?"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #868686; +} +.subscriberContainer .form :global(.vtex-input-prefix__group) { + border-radius: 0; + border: 1px solid #989898; +} +.subscriberContainer .form :global(.vtex-input-prefix__group) :global(.vtex-styleguide-9-x-input) { + font-weight: 400; + font-size: 12px; + line-height: 16px; } \ No newline at end of file diff --git a/styles/css/vtex.styleguide.css b/styles/css/vtex.styleguide.css new file mode 100644 index 0000000..8f117f8 --- /dev/null +++ b/styles/css/vtex.styleguide.css @@ -0,0 +1,17 @@ +/* +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 */ +.subscriberContainer .hideDecorators::placeholder { + font-weight: 400; + font-size: 12px; + line-height: 16px; +} +.subscriberContainer :global(.vtex-styleguide-9-x-input) { + border: 1px solid red; +} \ No newline at end of file diff --git a/styles/css/vtex.tab-layout.css b/styles/css/vtex.tab-layout.css new file mode 100644 index 0000000..c47bf34 --- /dev/null +++ b/styles/css/vtex.tab-layout.css @@ -0,0 +1,55 @@ +/* +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 */ +:global(.vtex-tab-layout-0-x-container) { + padding: 0 40px; +} +:global(.vtex-tab-layout-0-x-container) .listContainer--tabList { + border-bottom: 1px solid #bfbfbf; + height: 43px; + justify-content: space-between; + padding: 0 70px; +} +:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button):hover { + height: 43px; + border: none; + background-color: white; + padding: 0; + margin: 0; +} +:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button__label) { + font-weight: 400; + font-size: 18px; + line-height: 18px; + color: #bfbfbf; + text-transform: capitalize; + padding: 0; +} +:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button__label):hover { + background-color: #fff; + padding: 0; +} +:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button) { + background-color: white; + border: none; +} +:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button__label) { + color: #000000; + background-color: #fff; + border-bottom: 2px solid #000000; + padding: 0; +} +:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button__label):hover { + border-bottom: 2px solid #000000; +} +:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) :global(.vtex-tab-layout-0-x-contentItem) .paragraph { + font-weight: 400; + font-size: 16px; + line-height: 22px; +} \ 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 f1b89a4..b35c956 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -25,8 +25,7 @@ } .container { - margin: 0 36px; - padding: 0 4px; + padding: 0 40px; @media screen and (min-width: 112.5em) { margin: 6px 356px; @@ -86,10 +85,6 @@ // height: 48px; } - // .skuSelectorInternalBox { - // border-color: $gray-800; - // } - .frameAround { border-color: $black; } @@ -360,3 +355,43 @@ display: none; } } + +.subscriberContainer { + .title { + font-size: 0; + margin: 0; + + &::after { + content: "Produto indisponível"; + font-weight: 700; + font-size: 14px; + line-height: 19px; + color: $gray-50; + } + } + + .subscribeLabel { + font-size: 0; + + &::after { + content: "Deseja saber quando estiver disponível?"; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-50; + } + } + + .form { + :global(.vtex-input-prefix__group) { + border-radius: 0; + border: 1px solid $gray-800; + + :global(.vtex-styleguide-9-x-input) { + font-weight: 400; + font-size: 12px; + line-height: 16px; + } + } + } +} diff --git a/styles/sass/pages/product/vtex.tab-layout.scss b/styles/sass/pages/product/vtex.tab-layout.scss new file mode 100644 index 0000000..e4a4e9e --- /dev/null +++ b/styles/sass/pages/product/vtex.tab-layout.scss @@ -0,0 +1,77 @@ +:global(.vtex-tab-layout-0-x-container) { + padding: 0 40px; + + .listContainer--tabList { + border-bottom: 1px solid $gray-100; + height: 43px; + justify-content: space-between; + padding: 0 70px; + + .listItem { + :global(.vtex-button) { + &:hover { + height: 43px; + border: none; + background-color: white; + padding: 0; + margin: 0; + } + } + + :global(.vtex-button__label) { + font-weight: 400; + font-size: 18px; + line-height: 18px; + color: $gray-100; + text-transform: capitalize; + padding: 0; + + &:hover { + background-color: $white; + padding: 0; + } + } + } + + .listItemActive { + :global(.vtex-button) { + background-color: white; + border: none; + + } + :global(.vtex-button__label) { + color: $black; + background-color: $white; + border-bottom: 2px solid $black; + padding: 0; + + &:hover { + border-bottom: 2px solid $black; + } + } + } + } + + :global(.vtex-tab-layout-0-x-contentContainer) { + + :global(.vtex-tab-layout-0-x-contentItem) { + .paragraph { + font-weight: 400; + font-size: 16px; + line-height: 22px; + } + } + } + + // .contentItem { + // display: flex; + // flex-direction: row; + + // .productImageTag { + // width: 50%; + // } + // } + // .carouselGaleryThumbs { + // display: none; + // } +} diff --git a/styles/sass/utils/_vars.scss b/styles/sass/utils/_vars.scss index 4541348..7e8167d 100644 --- a/styles/sass/utils/_vars.scss +++ b/styles/sass/utils/_vars.scss @@ -2,6 +2,7 @@ $white: #fff; +$gray-50: #868686; $gray-100: #bfbfbf; $gray-200: #b9b9b9; $gray-300: #bababa; -- 2.34.1 From 15ad1c3b84422637ca28079ae55f75c67713b386 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Sun, 29 Jan 2023 16:44:35 -0300 Subject: [PATCH 11/21] =?UTF-8?q?feat:=20Estiliza=20bloco=20de=20descri?= =?UTF-8?q?=C3=A7=C3=A3o=20desktop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- store/blocks/pdp/product.jsonc | 35 +++++++++++++------ styles/css/vtex.flex-layout.css | 2 +- styles/css/vtex.store-components.css | 2 ++ styles/css/vtex.tab-layout.css | 23 ++++++++++-- .../sass/pages/product/vtex.flex-layout.scss | 2 +- .../pages/product/vtex.store-components.scss | 2 ++ .../sass/pages/product/vtex.tab-layout.scss | 34 +++++++++++++++--- 7 files changed, 80 insertions(+), 20 deletions(-) diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index 0c24007..ebdf639 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -258,63 +258,78 @@ }, "tab-content.item#1": { - "children": ["product-images", "rich-text#1"], + "children": ["product-images#description", "rich-text#1"], "props": { "tabId": "description#1" } }, "tab-content.item#2": { - "children": ["product-images", "rich-text#2"], + "children": ["product-images#description", "rich-text#2"], "props": { "tabId": "description#2" } }, "tab-content.item#3": { - "children": ["product-images", "rich-text#3"], + "children": ["product-images#description", "rich-text#3"], "props": { "tabId": "description#3" } }, "tab-content.item#4": { - "children": ["product-images", "rich-text#4"], + "children": ["product-images#description", "rich-text#4"], "props": { "tabId": "description#4" } }, "tab-content.item#5": { - "children": ["product-images", "rich-text#5"], + "children": ["product-images#description", "rich-text#5"], "props": { "tabId": "description#5" } }, + "product-images#description": { + "props": { + "aspectRatio": { + "desktop": "auto", + "phone": "16:9" + }, + "showNavigationArrows": false, + "showPaginationDots": false, + "displayThumbnailsArrows": false, + "thumbnailsOrientation": "horizontal", + "zoomMode": "disabled", + "displayMode": "first-image" + } + }, + "rich-text#1": { "props": { - "text": "Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque.", + "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", "textPosition": "CENTER" } }, "rich-text#2": { "props": { - "text": "Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque.", + "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", "textPosition": "CENTER" } }, "rich-text#3": { "props": { - "text": "Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque.", + "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", "textPosition": "CENTER" } }, "rich-text#4": { "props": { - "text": "Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque.", + "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", "textPosition": "CENTER" } }, "rich-text#5": { "props": { - "text": "Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40.*Consulte disponibilidade de estoque.", + "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", "textPosition": "CENTER" } }, diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css index 50916b0..75f1a05 100644 --- a/styles/css/vtex.flex-layout.css +++ b/styles/css/vtex.flex-layout.css @@ -55,7 +55,7 @@ } .flexRow--deals { - background-color: #0f3e99; + background-color: #fff; padding: 14px 0px; } diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 689f6d3..011065c 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -179,6 +179,7 @@ .shippingContainer :global(.vtex-address-form__postalCode) { display: flex; align-items: center; + padding-bottom: 0; } .shippingContainer :global(.vtex-input-prefix__group) { width: 280px; @@ -241,6 +242,7 @@ display: flex; flex-direction: column; border: none; + padding: 4px 0; } .shippingTable .shippingTableHead { display: flex; diff --git a/styles/css/vtex.tab-layout.css b/styles/css/vtex.tab-layout.css index c47bf34..aaf9764 100644 --- a/styles/css/vtex.tab-layout.css +++ b/styles/css/vtex.tab-layout.css @@ -19,7 +19,7 @@ :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button):hover { height: 43px; border: none; - background-color: white; + background-color: transparent; padding: 0; margin: 0; } @@ -32,7 +32,6 @@ padding: 0; } :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button__label):hover { - background-color: #fff; padding: 0; } :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button) { @@ -48,8 +47,26 @@ :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button__label):hover { border-bottom: 2px solid #000000; } -:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) :global(.vtex-tab-layout-0-x-contentItem) .paragraph { +:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem { + display: flex; + flex-direction: row; + gap: 32px; + align-items: flex-start; + padding: 32px; +} +:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-store-components-3-x-productImageTag) { + width: inherit !important; +} +:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-heading) { + font-weight: 400; + font-size: 24px; + line-height: 32px; + color: #575757; + margin-top: 0; +} +:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-paragraph) { font-weight: 400; font-size: 16px; line-height: 22px; + color: #929292; } \ 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 60b789a..b93fe1e 100644 --- a/styles/sass/pages/product/vtex.flex-layout.scss +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -48,7 +48,7 @@ } .flexRow--deals { - background-color: #0f3e99; + background-color: $white; padding: 14px 0px; } diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index b35c956..90dff93 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -201,6 +201,7 @@ :global(.vtex-address-form__postalCode) { display: flex; align-items: center; + padding-bottom: 0; } :global(.vtex-input-prefix__group) { @@ -272,6 +273,7 @@ display: flex; flex-direction: column; border: none; + padding: 4px 0; .shippingTableHead { display: flex; diff --git a/styles/sass/pages/product/vtex.tab-layout.scss b/styles/sass/pages/product/vtex.tab-layout.scss index e4a4e9e..02ee78a 100644 --- a/styles/sass/pages/product/vtex.tab-layout.scss +++ b/styles/sass/pages/product/vtex.tab-layout.scss @@ -8,11 +8,13 @@ padding: 0 70px; .listItem { + :global(.vtex-button) { + &:hover { height: 43px; border: none; - background-color: white; + background-color: transparent; padding: 0; margin: 0; } @@ -27,7 +29,6 @@ padding: 0; &:hover { - background-color: $white; padding: 0; } } @@ -37,7 +38,6 @@ :global(.vtex-button) { background-color: white; border: none; - } :global(.vtex-button__label) { color: $black; @@ -53,12 +53,36 @@ } :global(.vtex-tab-layout-0-x-contentContainer) { + .contentItem { + display: flex; + flex-direction: row; + gap: 32px; + align-items: flex-start; + padding: 32px; - :global(.vtex-tab-layout-0-x-contentItem) { - .paragraph { + // :global(.vtex-store-components-3-x-content) { + // max-width: 100%; + + // } + :global(.vtex-store-components-3-x-productImageTag) { + width: inherit !important; + // max-width: 872px; + } + + :global(.vtex-rich-text-0-x-heading) { + font-weight: 400; + font-size: 24px; + line-height: 32px; + color: $gray-600; + margin-top: 0; + } + + :global(.vtex-rich-text-0-x-paragraph) { font-weight: 400; font-size: 16px; line-height: 22px; + color: $gray-500; + // width: 50%; } } } -- 2.34.1 From d631739c782e2e86591a72910d55b821bfab576f Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Sun, 29 Jan 2023 18:48:16 -0300 Subject: [PATCH 12/21] feat: Estiliza bloco de Newsletter desktop --- store/blocks/pdp/product.jsonc | 2 +- styles/css/vtex.shelf.css | 14 +++ styles/css/vtex.store-components.css | 75 +++++++++++---- styles/css/vtex.tab-layout.css | 2 +- styles/sass/pages/product/vtex.shelf.scss | 5 + .../pages/product/vtex.store-components.scss | 92 +++++++++++++------ .../sass/pages/product/vtex.tab-layout.scss | 3 +- 7 files changed, 147 insertions(+), 46 deletions(-) create mode 100644 styles/css/vtex.shelf.css create mode 100644 styles/sass/pages/product/vtex.shelf.scss diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index ebdf639..ed98ae1 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -336,7 +336,7 @@ "newsletter": { "props": { - "label": "Assine nossa newsletter \n Receba ofertas e novidades por e-mail", + "label": "Assine nossa newsletter", "placeholder": "Digite seu e-mail", "submit": "ENVIAR" } diff --git a/styles/css/vtex.shelf.css b/styles/css/vtex.shelf.css new file mode 100644 index 0000000..cd805d2 --- /dev/null +++ b/styles/css/vtex.shelf.css @@ -0,0 +1,14 @@ +/* +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 */ +.title { + font-weight: 400; + font-size: 24px; + line-height: 38px; +} \ No newline at end of file diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 011065c..2e9c75b 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -8,23 +8,6 @@ */ /* Media Query M3 */ /* Grid breakpoints */ -.newsletter { - display: block; - background: #000000; -} -.newsletter :global(.vtex-input-prefix__group) { - border: none; -} -.newsletter .label { - color: #fff; - font-weight: 400; - font-size: 18px; - line-height: 25px; -} -.newsletter .button-container :global(.vtex-button__label) { - background-color: transparent; -} - .container { padding: 0 40px; } @@ -341,4 +324,62 @@ font-weight: 400; font-size: 12px; line-height: 16px; +} + +.newsletter { + display: block; + background: #000000; +} +.newsletter :global(.vtex-store-components-3-x-form) { + padding: 32px 0 13px; + width: 774px; + max-width: 774px; + position: relative; +} +.newsletter :global(.vtex-store-components-3-x-form) .label { + color: #fff; + font-weight: 400; + font-size: 24px; + line-height: 38px; +} +.newsletter :global(.vtex-store-components-3-x-form) .label::after { + content: "Receba ofertas e novidades por e-mail"; + font-size: 18px; + line-height: 25px; + color: #929292; + position: absolute; + top: 85px; + right: 225px; +} +.newsletter :global(.vtex-store-components-3-x-form) :global(.vtex-store-components-3-x-inputGroup) { + padding-top: 52px; +} +.newsletter :global(.vtex-store-components-3-x-form) :global(.vtex-store-components-3-x-inputGroup) :global(.vtex-input-prefix__group) { + border: none; + border-radius: 0; +} +.newsletter :global(.vtex-store-components-3-x-form) :global(.vtex-store-components-3-x-inputGroup) :global(.vtex-input-prefix__group) :global(.vtex-styleguide-9-x-input) { + font-weight: 400; + font-size: 18px; + line-height: 25px; + color: #929292; + border-radius: 0; + border-bottom: 1px solid #929292; + background: transparent; + padding: 0; +} +.newsletter :global(.vtex-store-components-3-x-form) .buttonContainer { + padding: 0; +} +.newsletter :global(.vtex-store-components-3-x-form) .buttonContainer :global(.vtex-button) { + font-weight: 700; + font-size: 14px; + line-height: 19px; + color: #fff; + background-color: transparent; + border: none; +} +.newsletter :global(.vtex-store-components-3-x-form) .buttonContainer :global(.vtex-button__label) { + border-bottom: 3px solid #929292; + padding: 6px 17px 12px !important; } \ No newline at end of file diff --git a/styles/css/vtex.tab-layout.css b/styles/css/vtex.tab-layout.css index aaf9764..a777015 100644 --- a/styles/css/vtex.tab-layout.css +++ b/styles/css/vtex.tab-layout.css @@ -52,7 +52,7 @@ flex-direction: row; gap: 32px; align-items: flex-start; - padding: 32px; + padding: 32px 32px 16px; } :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-store-components-3-x-productImageTag) { width: inherit !important; diff --git a/styles/sass/pages/product/vtex.shelf.scss b/styles/sass/pages/product/vtex.shelf.scss new file mode 100644 index 0000000..1f4bf5d --- /dev/null +++ b/styles/sass/pages/product/vtex.shelf.scss @@ -0,0 +1,5 @@ +.title { + font-weight: 400; + font-size: 24px; + line-height: 38px; +} diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 90dff93..e1a6ecd 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -1,29 +1,3 @@ -.newsletter { - display: block; - background: $black; - - :global(.vtex-input-prefix__group) { - border: none; - - // background: $black; - } - - .label { - color: $white; - font-weight: 400; - // font-size: 24px; - // line-height: 38px; - font-size: 18px; - line-height: 25px; - } - - .button-container { - :global(.vtex-button__label) { - background-color: transparent; - } - } -} - .container { padding: 0 40px; @@ -397,3 +371,69 @@ } } } + +.newsletter { + display: block; + background: $black; + :global(.vtex-store-components-3-x-form) { + padding: 32px 0 13px; + width: 774px; + max-width: 774px; + position: relative; + + .label { + color: $white; + font-weight: 400; + font-size: 24px; + line-height: 38px; + + &::after { + content: "Receba ofertas e novidades por e-mail"; + font-size: 18px; + line-height: 25px; + color: $gray-500; + position: absolute; + top: 85px; + right: 225px; + } + } + + :global(.vtex-store-components-3-x-inputGroup) { + padding-top: 52px; + + :global(.vtex-input-prefix__group) { + border: none; + border-radius: 0; + + :global(.vtex-styleguide-9-x-input) { + font-weight: 400; + font-size: 18px; + line-height: 25px; + color: $gray-500; + border-radius: 0; + border-bottom: 1px solid $gray-500; + background: transparent; + padding: 0; + } + } + } + + .buttonContainer { + padding: 0; + + :global(.vtex-button) { + font-weight: 700; + font-size: 14px; + line-height: 19px; + color: $white; + background-color: transparent; + border: none; + } + + :global(.vtex-button__label) { + border-bottom: 3px solid $gray-500; + padding: 6px 17px 12px !important; + } + } + } +} diff --git a/styles/sass/pages/product/vtex.tab-layout.scss b/styles/sass/pages/product/vtex.tab-layout.scss index 02ee78a..eb01625 100644 --- a/styles/sass/pages/product/vtex.tab-layout.scss +++ b/styles/sass/pages/product/vtex.tab-layout.scss @@ -35,6 +35,7 @@ } .listItemActive { + :global(.vtex-button) { background-color: white; border: none; @@ -58,7 +59,7 @@ flex-direction: row; gap: 32px; align-items: flex-start; - padding: 32px; + padding: 32px 32px 16px; // :global(.vtex-store-components-3-x-content) { // max-width: 100%; -- 2.34.1 From 38ce16fbf596b139a28571ee128f0712db8abfe3 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Mon, 30 Jan 2023 12:09:57 -0300 Subject: [PATCH 13/21] feat: Cria bloco de desconto Pix --- assets/fonts/OpenSans-SemiBold.ttf | Bin 0 -> 129716 bytes react/Pix.tsx | 3 + react/components/Pix/Pix.tsx | 35 ++++++ react/components/Pix/style.module.css | 28 +++++ react/typings/css.d.ts | 4 + react/typings/global.d.ts | 7 ++ react/typings/graphql.d.ts | 6 + react/typings/storefront.d.ts | 15 +++ react/typings/vtex.css-handles.ts | 1 + react/typings/vtex.order-manager.d.ts | 103 ++++++++++++++++++ react/typings/vtex.render-runtime.d.ts | 38 +++++++ react/typings/vtex.styleguide.d.ts | 9 ++ store/blocks/pdp/product.jsonc | 1 + store/interfaces.json | 3 + styles/configs/font-faces.css | 6 + styles/css/vtex.flex-layout.css | 4 + styles/css/vtex.store-components.css | 26 +++++ styles/css/vtex.tab-layout.css | 7 +- .../sass/pages/product/vtex.flex-layout.scss | 4 + .../pages/product/vtex.store-components.scss | 34 ++++++ .../sass/pages/product/vtex.tab-layout.scss | 10 +- 21 files changed, 335 insertions(+), 9 deletions(-) create mode 100644 assets/fonts/OpenSans-SemiBold.ttf create mode 100644 react/Pix.tsx create mode 100644 react/components/Pix/Pix.tsx create mode 100644 react/components/Pix/style.module.css create mode 100644 react/typings/css.d.ts create mode 100644 react/typings/global.d.ts create mode 100644 react/typings/graphql.d.ts create mode 100644 react/typings/storefront.d.ts create mode 100644 react/typings/vtex.css-handles.ts create mode 100644 react/typings/vtex.order-manager.d.ts create mode 100644 react/typings/vtex.render-runtime.d.ts create mode 100644 react/typings/vtex.styleguide.d.ts diff --git a/assets/fonts/OpenSans-SemiBold.ttf b/assets/fonts/OpenSans-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..66acb2075c51aebeeb9a72b840309beaff31ca6b GIT binary patch literal 129716 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%0Ab(8?4ey`_ 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 literal 0 HcmV?d00001 diff --git a/react/Pix.tsx b/react/Pix.tsx new file mode 100644 index 0000000..52ecbb2 --- /dev/null +++ b/react/Pix.tsx @@ -0,0 +1,3 @@ +import Pix from "./components/Pix/Pix"; + +export default Pix; diff --git a/react/components/Pix/Pix.tsx b/react/components/Pix/Pix.tsx new file mode 100644 index 0000000..d6e114b --- /dev/null +++ b/react/components/Pix/Pix.tsx @@ -0,0 +1,35 @@ +import React from "react"; +import { useProduct } from "vtex.product-context"; +import styles from "./style.module.css"; + +const Pix = () => { + const productValue = useProduct(); + + const priceProduct = + productValue?.product?.priceRange?.sellingPrice?.lowPrice; + + const descountValue = (Number(priceProduct) * 10) / 100; + + const totalValue = Number(priceProduct) - Number(descountValue); + + return ( +

+
+
+ 10% de desconto no Pix +
+
+

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

+

10 % de desconto

+
+
+
+ ); +}; + +export default Pix; diff --git a/react/components/Pix/style.module.css b/react/components/Pix/style.module.css new file mode 100644 index 0000000..ba3c6ad --- /dev/null +++ b/react/components/Pix/style.module.css @@ -0,0 +1,28 @@ +/* .pix-container { + +} */ + +.pix-content { + display: flex; + align-items: center; + gap: 26px; + margin: 8px 0 16px; +} + +.pix-image { + height: fit-content; +} + +.pix-value { + font-weight: 700; + font-size: 18px; + color: rgba(0, 0, 0, 0.58); + margin: 0; +} + +.pix-text { + font-weight: 300; + font-size: 13px; + color: #929292; + margin: 0; +} diff --git a/react/typings/css.d.ts b/react/typings/css.d.ts new file mode 100644 index 0000000..c5862b6 --- /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/global.d.ts b/react/typings/global.d.ts new file mode 100644 index 0000000..17b4165 --- /dev/null +++ b/react/typings/global.d.ts @@ -0,0 +1,7 @@ +export interface TimeSplit { + hours: string + minutes: string + seconds: string +} + +type GenericObject = Record 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 ed98ae1..9210559 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -110,6 +110,7 @@ "product-identifier.product", "flex-layout.row#selling-price", "product-installments", + "Pix", "sku-selector", "html#buy-button", "product-gifts", diff --git a/store/interfaces.json b/store/interfaces.json index c4b2ac4..2d07e38 100644 --- a/store/interfaces.json +++ b/store/interfaces.json @@ -5,5 +5,8 @@ "html": { "component": "html", "composition": "children" + }, + "Pix": { + "component": "Pix" } } diff --git a/styles/configs/font-faces.css b/styles/configs/font-faces.css index 6d4199a..a8c0c05 100644 --- a/styles/configs/font-faces.css +++ b/styles/configs/font-faces.css @@ -10,6 +10,12 @@ font-weight: 300; } +@font-face { + font-family: "Open Sans"; + src: url("assets/fonts/OpenSans-SemiBold.ttf"); + font-weight: 600; +} + @font-face { font-family: "Open Sans"; src: url("assets/fonts/OpenSans-Bold.ttf"); diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css index 75f1a05..e523ef0 100644 --- a/styles/css/vtex.flex-layout.css +++ b/styles/css/vtex.flex-layout.css @@ -7,6 +7,10 @@ */ /* Media Query M3 */ /* Grid breakpoints */ +.flexRowContent { + margin: 0; +} + .flexRowContent--menu-link, .flexRowContent--main-header { padding: 0 0.5rem; diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 2e9c75b..5151187 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -325,6 +325,32 @@ font-size: 12px; line-height: 16px; } +.subscriberContainer .form :global(.vtex-store-components-3-x-content) { + display: grid; + grid-template-areas: "name email" "submit submit"; +} +.subscriberContainer .form :global(.vtex-store-components-3-x-content) .inputName { + grid-area: name; +} +.subscriberContainer .form :global(.vtex-store-components-3-x-content) .inputEmail { + grid-area: email; +} +.subscriberContainer .form :global(.vtex-store-components-3-x-content) :global(.vtex-button) { + grid-area: submit; + background-color: #000000; + border: none; + border-radius: 0; +} +.subscriberContainer .form :global(.vtex-store-components-3-x-content) :global(.vtex-button__label) { + font-size: 0; +} +.subscriberContainer .form :global(.vtex-store-components-3-x-content) :global(.vtex-button__label)::after { + content: "AVISE-ME"; + font-weight: 600; + font-size: 18px; + line-height: 25px; + color: #fff; +} .newsletter { display: block; diff --git a/styles/css/vtex.tab-layout.css b/styles/css/vtex.tab-layout.css index a777015..814cab3 100644 --- a/styles/css/vtex.tab-layout.css +++ b/styles/css/vtex.tab-layout.css @@ -29,10 +29,10 @@ line-height: 18px; color: #bfbfbf; text-transform: capitalize; - padding: 0; + padding: 0.25em 10px 0.32em; } :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button__label):hover { - padding: 0; + padding: 0.25em 10px 0.32em; } :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button) { background-color: white; @@ -42,10 +42,11 @@ color: #000000; background-color: #fff; border-bottom: 2px solid #000000; - padding: 0; + padding: 0.25em 10px 0.32em; } :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button__label):hover { border-bottom: 2px solid #000000; + padding: 0.25em 10px 0.32em; } :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem { display: flex; diff --git a/styles/sass/pages/product/vtex.flex-layout.scss b/styles/sass/pages/product/vtex.flex-layout.scss index b93fe1e..af79240 100644 --- a/styles/sass/pages/product/vtex.flex-layout.scss +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -1,3 +1,7 @@ +.flexRowContent { + margin: 0; +} + .flexRowContent--menu-link, .flexRowContent--main-header { padding: 0 0.5rem; diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index e1a6ecd..7e5b351 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -369,6 +369,40 @@ line-height: 16px; } } + + :global(.vtex-store-components-3-x-content) { + display: grid; + grid-template-areas: + "name email" + "submit submit"; + + .inputName { + grid-area: name; + } + + .inputEmail { + grid-area: email; + } + + :global(.vtex-button) { + grid-area: submit; + background-color: $black; + border: none; + border-radius: 0; + } + + :global(.vtex-button__label) { + font-size: 0; + + &::after { + content: "AVISE-ME"; + font-weight: 600; + font-size: 18px; + line-height: 25px; + color: $white; + } + } + } } } diff --git a/styles/sass/pages/product/vtex.tab-layout.scss b/styles/sass/pages/product/vtex.tab-layout.scss index eb01625..358e9dd 100644 --- a/styles/sass/pages/product/vtex.tab-layout.scss +++ b/styles/sass/pages/product/vtex.tab-layout.scss @@ -8,9 +8,7 @@ padding: 0 70px; .listItem { - :global(.vtex-button) { - &:hover { height: 43px; border: none; @@ -26,16 +24,15 @@ line-height: 18px; color: $gray-100; text-transform: capitalize; - padding: 0; + padding: 0.25em 10px 0.32em; &:hover { - padding: 0; + padding: 0.25em 10px 0.32em; } } } .listItemActive { - :global(.vtex-button) { background-color: white; border: none; @@ -44,10 +41,11 @@ color: $black; background-color: $white; border-bottom: 2px solid $black; - padding: 0; + padding: 0.25em 10px 0.32em; &:hover { border-bottom: 2px solid $black; + padding: 0.25em 10px 0.32em; } } } -- 2.34.1 From fbe6eb7bbd79cf830d55e65ab4704d8d4435a2ab Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Mon, 30 Jan 2023 21:37:44 -0300 Subject: [PATCH 14/21] feat: Cria bloco de prateleira --- store/blocks/pdp/product.jsonc | 35 +++++--- styles/css/vtex.breadcrumb.css | 4 +- styles/css/vtex.flex-layout.css | 1 + styles/css/vtex.product-summary.css | 87 +++++++++++++------ styles/css/vtex.rich-text.css | 9 +- styles/css/vtex.store-components.css | 18 ++-- styles/css/vtex.tab-layout.css | 1 + .../sass/pages/product/vtex.breadcrumb.scss | 4 +- .../sass/pages/product/vtex.flex-layout.scss | 1 + .../pages/product/vtex.product-summary.scss | 86 ++++++++++++++++++ styles/sass/pages/product/vtex.rich-text.scss | 7 ++ styles/sass/pages/product/vtex.shelf.scss | 5 -- .../pages/product/vtex.store-components.scss | 23 +++-- .../sass/pages/product/vtex.tab-layout.scss | 1 + 14 files changed, 222 insertions(+), 60 deletions(-) create mode 100644 styles/sass/pages/product/vtex.product-summary.scss delete mode 100644 styles/sass/pages/product/vtex.shelf.scss diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index 9210559..dc0ddf6 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -7,7 +7,9 @@ // "flex-layout.row#specifications-title", // "product-specification-group#table", "tab-layout", - "shelf.relatedProducts", + // "product-summary.shelf#carousel", + "rich-text#carousel", + "list-context.product-list#product-carousel", "product-questions-and-answers", "newsletter" ] @@ -69,15 +71,6 @@ ] }, - // "product-specification-badges": { - // "props": { - // "specificationGroupName": "Group", - // "specificationName": "On Sale", - // "visibleWhen": "True", - // "displayValue": "SPECIFICATION_NAME" - // } - // }, - "flex-layout.col#stack": { "children": ["stack-layout"], "props": { @@ -335,6 +328,28 @@ } }, + "rich-text#carousel": { + "props": { + "text": "Você também pode gostar:", + "textAlignment": "CENTER", + "textPosition": "CENTER", + "blockClass": "carousel-title" + } + }, + + "product-summary.shelf#carousel": { + "children": [ + "product-summary-image", + "product-summary-name", + "product-price" + ] + }, + + "list-context.product-list#product-carousel": { + "blocks": ["product-summary.shelf#carousel"], + "children": ["slider-layout#demo-products"] + }, + "newsletter": { "props": { "label": "Assine nossa newsletter", diff --git a/styles/css/vtex.breadcrumb.css b/styles/css/vtex.breadcrumb.css index 58d74c0..4ec87c2 100644 --- a/styles/css/vtex.breadcrumb.css +++ b/styles/css/vtex.breadcrumb.css @@ -8,11 +8,11 @@ /* Media Query M3 */ /* Grid breakpoints */ .container { - margin: 6px 36px; + padding: 16px 36px; } @media screen and (min-width: 112.5em) { .container { - margin: 6px 356px; + margin: 0px 356px; } } .container .link, diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css index e523ef0..96a5a69 100644 --- a/styles/css/vtex.flex-layout.css +++ b/styles/css/vtex.flex-layout.css @@ -9,6 +9,7 @@ /* Grid breakpoints */ .flexRowContent { margin: 0; + padding-top: 0; } .flexRowContent--menu-link, diff --git a/styles/css/vtex.product-summary.css b/styles/css/vtex.product-summary.css index 0a6e420..a2fc014 100644 --- a/styles/css/vtex.product-summary.css +++ b/styles/css/vtex.product-summary.css @@ -1,42 +1,73 @@ -.skuSelectorContainer--quickview .skuSelectorItemImage .frameAround, .skuSelectorContainer--quickview .skuSelectorItemImage .skuSelectorInternalBox { - border-radius: 50%; +/* +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 */ +:global(.vtex-slider-layout-0-x-slideChildrenContainer) { + width: 314px; } -.container :global(.vtex-modal-layout-0-x-triggerContainer) { - opacity: 0; - transition: opacity 200ms ease-in-out; -} - -.container:hover :global(.vtex-modal-layout-0-x-triggerContainer) { - opacity: 1; -} - -@media screen and (max-width: 40em) { - .container :global(.vtex-modal-layout-0-x-triggerContainer) { - display: none; - } +.imageWrapper { + height: 314px; + display: flex; + justify-content: center; + align-items: center; } .nameContainer { - justify-content: start; - padding-top: 1rem; - padding-bottom: 1rem; + padding: 0 0 8px; +} +.nameContainer .brandName { + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #000000; } -.brandName { - font-weight: 600; - font-size: 18px; - color: #2E2E2E; +:global(.vtex-store-components-3-x-sellingPrice) { + padding: 0; +} +:global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceLabel) { + display: none; +} +:global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceValue) { + font-weight: 700; + font-size: 24px; + line-height: 33px; + color: #000000; } -.container { - text-align: start; +:global(.vtex-store-components-3-x-listPrice) { + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #bababa; + margin: 0; + padding-bottom: 8px; +} +:global(.vtex-store-components-3-x-listPrice) :global(.vtex-store-components-3-x-listPriceLabel) { + display: none; +} +:global(.vtex-store-components-3-x-listPrice) :global(.vtex-store-components-3-x-currencyContainer)::before { + content: "de "; +} +:global(.vtex-store-components-3-x-listPrice) :global(.vtex-store-components-3-x-currencyContainer)::after { + content: " por"; } -.imageContainer { - text-align: center; +:global(.vtex-slider-layout-0-x-sliderRightArrow) :global(.vtex-slider-layout-0-x-caretIcon)::after { + display: block; + content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); } -.image { - border-radius: 0.25rem; +:global(.vtex-store-components-3-x-discountInsideContainer) { + display: none; } + +:global(.vtex-slider-layout-0-x-paginationDotsContainer) :global(.vtex-slider-layout-0-x-paginationDot--shelf) { + color: #000000; +} \ No newline at end of file diff --git a/styles/css/vtex.rich-text.css b/styles/css/vtex.rich-text.css index 34c4328..844ba9e 100644 --- a/styles/css/vtex.rich-text.css +++ b/styles/css/vtex.rich-text.css @@ -6,4 +6,11 @@ 1800px + : Big desktop */ /* Media Query M3 */ -/* Grid breakpoints */ \ No newline at end of file +/* Grid breakpoints */ +.paragraph--carousel-title { + font-weight: 400; + font-size: 24px; + line-height: 38px; + color: #575757; + margin: 0; +} \ No newline at end of file diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 5151187..b2b27a9 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -27,7 +27,6 @@ .productImageTag--main { max-height: max-content !important; - max-width: 664px; } .carouselGaleryThumbs { @@ -96,6 +95,12 @@ .skuSelectorContainer .skuSelectorSubcontainer--tamanho { order: 1; } +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorNameContainer { + margin: 0; +} +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorNameContainer .skuSelectorOptionsList { + margin: 0; +} .skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorItemTextValue { padding: 0; margin: auto; @@ -335,8 +340,10 @@ .subscriberContainer .form :global(.vtex-store-components-3-x-content) .inputEmail { grid-area: email; } -.subscriberContainer .form :global(.vtex-store-components-3-x-content) :global(.vtex-button) { +.subscriberContainer .form :global(.vtex-store-components-3-x-content) .submit { grid-area: submit; +} +.subscriberContainer .form :global(.vtex-store-components-3-x-content) :global(.vtex-button) { background-color: #000000; border: none; border-radius: 0; @@ -363,6 +370,8 @@ position: relative; } .newsletter :global(.vtex-store-components-3-x-form) .label { + display: flex; + flex-direction: column; color: #fff; font-weight: 400; font-size: 24px; @@ -373,12 +382,9 @@ font-size: 18px; line-height: 25px; color: #929292; - position: absolute; - top: 85px; - right: 225px; } .newsletter :global(.vtex-store-components-3-x-form) :global(.vtex-store-components-3-x-inputGroup) { - padding-top: 52px; + padding-top: 16px; } .newsletter :global(.vtex-store-components-3-x-form) :global(.vtex-store-components-3-x-inputGroup) :global(.vtex-input-prefix__group) { border: none; diff --git a/styles/css/vtex.tab-layout.css b/styles/css/vtex.tab-layout.css index 814cab3..3c3e217 100644 --- a/styles/css/vtex.tab-layout.css +++ b/styles/css/vtex.tab-layout.css @@ -57,6 +57,7 @@ } :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-store-components-3-x-productImageTag) { width: inherit !important; + display: block; } :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-heading) { font-weight: 400; diff --git a/styles/sass/pages/product/vtex.breadcrumb.scss b/styles/sass/pages/product/vtex.breadcrumb.scss index 04e2890..2318bbb 100644 --- a/styles/sass/pages/product/vtex.breadcrumb.scss +++ b/styles/sass/pages/product/vtex.breadcrumb.scss @@ -1,8 +1,8 @@ .container { - margin: 6px 36px; + padding: 16px 36px; @media screen and (min-width: 112.5em) { - margin: 6px 356px; + margin: 0px 356px; } .link, diff --git a/styles/sass/pages/product/vtex.flex-layout.scss b/styles/sass/pages/product/vtex.flex-layout.scss index af79240..7ae4654 100644 --- a/styles/sass/pages/product/vtex.flex-layout.scss +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -1,5 +1,6 @@ .flexRowContent { margin: 0; + padding-top: 0; } .flexRowContent--menu-link, diff --git a/styles/sass/pages/product/vtex.product-summary.scss b/styles/sass/pages/product/vtex.product-summary.scss new file mode 100644 index 0000000..caa47d2 --- /dev/null +++ b/styles/sass/pages/product/vtex.product-summary.scss @@ -0,0 +1,86 @@ +// :global(.vtex-slider-layout-0-x-slide--shelf) { +// width: 300px; +// } + +:global(.vtex-slider-layout-0-x-slideChildrenContainer) { + width: 314px; +} + +.imageWrapper { + height: 314px; + display: flex; + justify-content: center; + align-items: center; +} + +.nameContainer { + padding: 0 0 8px; + + .brandName { + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $black; + } +} + +:global(.vtex-store-components-3-x-sellingPrice) { + padding: 0; + + :global(.vtex-store-components-3-x-sellingPriceLabel) { + display: none; + } + + :global(.vtex-store-components-3-x-sellingPriceValue) { + font-weight: 700; + font-size: 24px; + line-height: 33px; + color: $black; + } +} + +:global(.vtex-store-components-3-x-listPrice) { + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-300; + margin: 0; + padding-bottom: 8px; + + :global(.vtex-store-components-3-x-listPriceLabel) { + display: none; + } + + :global(.vtex-store-components-3-x-currencyContainer) { + &::before { + content: "de "; + } + + &::after { + content: " por"; + } + } +} + +:global(.vtex-slider-layout-0-x-sliderRightArrow) { + // display: none; + + :global(.vtex-slider-layout-0-x-caretIcon) { + // display: none; + + &::after { + display: block; + content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); + } + } +} + +:global(.vtex-store-components-3-x-discountInsideContainer) { + display: none; +} + +:global(.vtex-slider-layout-0-x-paginationDotsContainer) { + :global(.vtex-slider-layout-0-x-paginationDot--shelf) { + color: $black; + } +} diff --git a/styles/sass/pages/product/vtex.rich-text.scss b/styles/sass/pages/product/vtex.rich-text.scss index e69de29..153cc80 100644 --- a/styles/sass/pages/product/vtex.rich-text.scss +++ b/styles/sass/pages/product/vtex.rich-text.scss @@ -0,0 +1,7 @@ +.paragraph--carousel-title { + font-weight: 400; + font-size: 24px; + line-height: 38px; + color: $gray-600; + margin: 0; +} diff --git a/styles/sass/pages/product/vtex.shelf.scss b/styles/sass/pages/product/vtex.shelf.scss deleted file mode 100644 index 1f4bf5d..0000000 --- a/styles/sass/pages/product/vtex.shelf.scss +++ /dev/null @@ -1,5 +0,0 @@ -.title { - font-weight: 400; - font-size: 24px; - line-height: 38px; -} diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 7e5b351..6357699 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -16,7 +16,7 @@ .productImageTag--main { max-height: max-content !important; - max-width: 664px; + // max-width: 664px; } .carouselGaleryThumbs { @@ -96,6 +96,14 @@ .skuSelectorSubcontainer--tamanho { order: 1; + .skuSelectorNameContainer { + margin: 0; + + .skuSelectorOptionsList { + margin: 0; + } + } + .skuSelectorItemTextValue { padding: 0; margin: auto; @@ -384,8 +392,11 @@ grid-area: email; } - :global(.vtex-button) { + .submit { grid-area: submit; + } + + :global(.vtex-button) { background-color: $black; border: none; border-radius: 0; @@ -409,6 +420,7 @@ .newsletter { display: block; background: $black; + :global(.vtex-store-components-3-x-form) { padding: 32px 0 13px; width: 774px; @@ -416,6 +428,8 @@ position: relative; .label { + display: flex; + flex-direction: column; color: $white; font-weight: 400; font-size: 24px; @@ -426,14 +440,11 @@ font-size: 18px; line-height: 25px; color: $gray-500; - position: absolute; - top: 85px; - right: 225px; } } :global(.vtex-store-components-3-x-inputGroup) { - padding-top: 52px; + padding-top: 16px; :global(.vtex-input-prefix__group) { border: none; diff --git a/styles/sass/pages/product/vtex.tab-layout.scss b/styles/sass/pages/product/vtex.tab-layout.scss index 358e9dd..9091399 100644 --- a/styles/sass/pages/product/vtex.tab-layout.scss +++ b/styles/sass/pages/product/vtex.tab-layout.scss @@ -65,6 +65,7 @@ // } :global(.vtex-store-components-3-x-productImageTag) { width: inherit !important; + display: block; // max-width: 872px; } -- 2.34.1 From 50eaf17c02201333927c8bb9580c8741b5ff5140 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Tue, 31 Jan 2023 14:21:27 -0300 Subject: [PATCH 15/21] feat: Inclui placeholder no input CEP --- react/components/Pix/Pix.tsx | 8 ++++- store/blocks/pdp/product.jsonc | 4 +-- styles/css/vtex.breadcrumb.css | 5 ++-- styles/css/vtex.product-summary.css | 11 ++++--- styles/css/vtex.store-components.css | 16 ++++++++-- styles/css/vtex.tab-layout.css | 12 ++++++++ .../sass/pages/product/vtex.breadcrumb.scss | 5 ++-- .../pages/product/vtex.product-summary.scss | 29 ++++++++++--------- .../pages/product/vtex.store-components.scss | 18 ++++++++++-- .../sass/pages/product/vtex.tab-layout.scss | 24 +++++++-------- 10 files changed, 90 insertions(+), 42 deletions(-) diff --git a/react/components/Pix/Pix.tsx b/react/components/Pix/Pix.tsx index d6e114b..69917fa 100644 --- a/react/components/Pix/Pix.tsx +++ b/react/components/Pix/Pix.tsx @@ -1,8 +1,14 @@ -import React from "react"; +import React, { useEffect } from "react"; import { useProduct } from "vtex.product-context"; import styles from "./style.module.css"; const Pix = () => { + useEffect(() => { + const cepInput = document.querySelector(".vtex-address-form-4-x-input"); + + cepInput?.setAttribute("placeholder", "Digite seu CEP"); + }); + const productValue = useProduct(); const priceProduct = diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index dc0ddf6..0facc42 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -163,8 +163,8 @@ "children": [ "flex-layout.row#product-name", "product-identifier.product", - "sku-selector", - "flex-layout.row#availability" + "flex-layout.row#availability", + "sku-selector" ] }, "flex-layout.row#availability": { diff --git a/styles/css/vtex.breadcrumb.css b/styles/css/vtex.breadcrumb.css index 4ec87c2..c88ac4a 100644 --- a/styles/css/vtex.breadcrumb.css +++ b/styles/css/vtex.breadcrumb.css @@ -8,11 +8,12 @@ /* Media Query M3 */ /* Grid breakpoints */ .container { - padding: 16px 36px; + padding: 14px 36px; } -@media screen and (min-width: 112.5em) { +@media screen and (min-width: 1920px) and (max-width: 2560px) { .container { margin: 0px 356px; + padding: 14px 0; } } .container .link, diff --git a/styles/css/vtex.product-summary.css b/styles/css/vtex.product-summary.css index a2fc014..13722d4 100644 --- a/styles/css/vtex.product-summary.css +++ b/styles/css/vtex.product-summary.css @@ -59,15 +59,14 @@ content: " por"; } -:global(.vtex-slider-layout-0-x-sliderRightArrow) :global(.vtex-slider-layout-0-x-caretIcon)::after { - display: block; +:global(.vtex-slider-layout-0-x-sliderRightArrow) { + visibility: hidden; +} +:global(.vtex-slider-layout-0-x-sliderRightArrow)::after { + visibility: visible; content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); } :global(.vtex-store-components-3-x-discountInsideContainer) { display: none; -} - -:global(.vtex-slider-layout-0-x-paginationDotsContainer) :global(.vtex-slider-layout-0-x-paginationDot--shelf) { - color: #000000; } \ No newline at end of file diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index b2b27a9..ef75ad2 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -10,10 +10,12 @@ /* Grid breakpoints */ .container { padding: 0 40px; + margin: 0; } -@media screen and (min-width: 112.5em) { +@media screen and (min-width: 1920px) and (max-width: 2560px) { .container { - margin: 6px 356px; + margin: 6px 360px; + padding: 0; } } @@ -27,6 +29,7 @@ .productImageTag--main { max-height: max-content !important; + max-width: max-content; } .carouselGaleryThumbs { @@ -175,6 +178,15 @@ border-radius: 0; border: 1px solid #cccccc; } +.shippingContainer :global(.vtex-input-prefix__group) :global(.vtex-address-form-4-x-input) { + padding: 16.5px 16px; +} +.shippingContainer :global(.vtex-input-prefix__group) :global(.vtex-address-form-4-x-input)::placeholder { + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: #AFAFAF; +} .shippingContainer :global(.vtex-input__label) { font-size: 0; } diff --git a/styles/css/vtex.tab-layout.css b/styles/css/vtex.tab-layout.css index 3c3e217..f6b2179 100644 --- a/styles/css/vtex.tab-layout.css +++ b/styles/css/vtex.tab-layout.css @@ -9,6 +9,13 @@ /* Grid breakpoints */ :global(.vtex-tab-layout-0-x-container) { padding: 0 40px; + margin: 0; +} +@media screen and (min-width: 1920px) and (max-width: 2560px) { + :global(.vtex-tab-layout-0-x-container) { + margin: 6px 360px; + padding: 0; + } } :global(.vtex-tab-layout-0-x-container) .listContainer--tabList { border-bottom: 1px solid #bfbfbf; @@ -55,8 +62,13 @@ align-items: flex-start; padding: 32px 32px 16px; } +:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem .productImagesContainer { + width: 50%; + max-width: 50%; +} :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-store-components-3-x-productImageTag) { width: inherit !important; + max-width: 632px; display: block; } :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-heading) { diff --git a/styles/sass/pages/product/vtex.breadcrumb.scss b/styles/sass/pages/product/vtex.breadcrumb.scss index 2318bbb..6744966 100644 --- a/styles/sass/pages/product/vtex.breadcrumb.scss +++ b/styles/sass/pages/product/vtex.breadcrumb.scss @@ -1,8 +1,9 @@ .container { - padding: 16px 36px; + padding: 14px 36px; - @media screen and (min-width: 112.5em) { + @media screen and (min-width: 1920px) and (max-width: 2560px) { margin: 0px 356px; + padding: 14px 0; } .link, diff --git a/styles/sass/pages/product/vtex.product-summary.scss b/styles/sass/pages/product/vtex.product-summary.scss index caa47d2..b3c3c6d 100644 --- a/styles/sass/pages/product/vtex.product-summary.scss +++ b/styles/sass/pages/product/vtex.product-summary.scss @@ -1,6 +1,15 @@ // :global(.vtex-slider-layout-0-x-slide--shelf) { // width: 300px; // } +// :global(.vtex-slider-layout-0-x-sliderLayoutContainer) { +// margin: 0 40px; +// // margin: 0 auto; + +// @media screen and (min-width: 1920px) and (max-width: 2560px) { +// margin: 6px 360px; +// padding: 0; +// } +// } :global(.vtex-slider-layout-0-x-slideChildrenContainer) { width: 314px; @@ -63,15 +72,11 @@ } :global(.vtex-slider-layout-0-x-sliderRightArrow) { - // display: none; + visibility: hidden; - :global(.vtex-slider-layout-0-x-caretIcon) { - // display: none; - - &::after { - display: block; - content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); - } + &::after { + visibility: visible; + content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); } } @@ -79,8 +84,6 @@ display: none; } -:global(.vtex-slider-layout-0-x-paginationDotsContainer) { - :global(.vtex-slider-layout-0-x-paginationDot--shelf) { - color: $black; - } -} +// .paginationDot--container { +// color: $black; +// } diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 6357699..fc70e62 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -1,8 +1,10 @@ .container { padding: 0 40px; + margin: 0; - @media screen and (min-width: 112.5em) { - margin: 6px 356px; + @media screen and (min-width: 1920px) and (max-width: 2560px) { + margin: 6px 360px; + padding: 0; } } @@ -16,6 +18,7 @@ .productImageTag--main { max-height: max-content !important; + max-width: max-content; // max-width: 664px; } @@ -191,6 +194,17 @@ height: 49px; border-radius: 0; border: 1px solid $gray-1000; + + :global(.vtex-address-form-4-x-input) { + padding: 16.5px 16px; + + &::placeholder { + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: $gray-400; + } + } } :global(.vtex-input__label) { diff --git a/styles/sass/pages/product/vtex.tab-layout.scss b/styles/sass/pages/product/vtex.tab-layout.scss index 9091399..40266d5 100644 --- a/styles/sass/pages/product/vtex.tab-layout.scss +++ b/styles/sass/pages/product/vtex.tab-layout.scss @@ -1,5 +1,11 @@ :global(.vtex-tab-layout-0-x-container) { padding: 0 40px; + margin: 0; + + @media screen and (min-width: 1920px) and (max-width: 2560px) { + margin: 6px 360px; + padding: 0; + } .listContainer--tabList { border-bottom: 1px solid $gray-100; @@ -63,8 +69,14 @@ // max-width: 100%; // } + .productImagesContainer { + width: 50%; + max-width: 50%; + } + :global(.vtex-store-components-3-x-productImageTag) { width: inherit !important; + max-width: 632px; display: block; // max-width: 872px; } @@ -86,16 +98,4 @@ } } } - - // .contentItem { - // display: flex; - // flex-direction: row; - - // .productImageTag { - // width: 50%; - // } - // } - // .carouselGaleryThumbs { - // display: none; - // } } -- 2.34.1 From a49c71cdd51bdca34b01530adf560476c106a01d Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Tue, 31 Jan 2023 16:24:16 -0300 Subject: [PATCH 16/21] feat: Estiliza prateleira de produtos --- styles/css/vtex.product-summary.css | 32 ++++++++++++ styles/css/vtex.slider-layout.css | 49 ++++++++----------- styles/css/vtex.store-components.css | 2 + .../pages/product/vtex.product-summary.scss | 40 ++++++++++----- .../pages/product/vtex.slider-layout.scss | 15 ++++++ .../pages/product/vtex.store-components.scss | 2 + 6 files changed, 99 insertions(+), 41 deletions(-) create mode 100644 styles/sass/pages/product/vtex.slider-layout.scss diff --git a/styles/css/vtex.product-summary.css b/styles/css/vtex.product-summary.css index 13722d4..b4f3f75 100644 --- a/styles/css/vtex.product-summary.css +++ b/styles/css/vtex.product-summary.css @@ -7,8 +7,20 @@ */ /* Media Query M3 */ /* Grid breakpoints */ +:global(.vtex-slider-layout-0-x-sliderLayoutContainer) { + width: 94%; + margin: auto; + padding: 0; +} +@media screen and (min-width: 1920px) and (max-width: 2560px) { + :global(.vtex-slider-layout-0-x-sliderLayoutContainer) { + width: 62%; + } +} + :global(.vtex-slider-layout-0-x-slideChildrenContainer) { width: 314px; + padding-right: 16px; } .imageWrapper { @@ -65,6 +77,26 @@ :global(.vtex-slider-layout-0-x-sliderRightArrow)::after { visibility: visible; content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); + margin: 0 40px 0 0; +} +@media screen and (min-width: 1920px) and (max-width: 2560px) { + :global(.vtex-slider-layout-0-x-sliderRightArrow)::after { + margin: 0; + } +} + +:global(.vtex-slider-layout-0-x-sliderLeftArrow) { + visibility: hidden; +} +:global(.vtex-slider-layout-0-x-sliderLeftArrow)::before { + visibility: visible; + content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-left-eleonoraotz.png); + margin: 0 0 0 40px; +} +@media screen and (min-width: 1920px) and (max-width: 2560px) { + :global(.vtex-slider-layout-0-x-sliderLeftArrow)::before { + margin: 0; + } } :global(.vtex-store-components-3-x-discountInsideContainer) { diff --git a/styles/css/vtex.slider-layout.css b/styles/css/vtex.slider-layout.css index 55f431f..24de56d 100644 --- a/styles/css/vtex.slider-layout.css +++ b/styles/css/vtex.slider-layout.css @@ -1,31 +1,22 @@ -.sliderLayoutContainer { - justify-content: center; +/* +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 */ +.paginationDotsContainer--shelf { + align-items: center; + bottom: -30px; } - -.sliderLayoutContainer--carousel { - background-color: #F0F0F0; - min-height: 450px; -} - -.sliderTrackContainer { - max-width: 100%; -} - -.paginationDotsContainer { - margin-top: .5rem; - margin-bottom: .5rem; -} - -.layoutContainer--shelf { - margin-top: 20px; - margin-bottom: 20px; - max-width: 96rem; - min-height: 550px; -} - -.slide--shelf { - margin-bottom: 25px; - padding-left: .5rem; - padding-right: .5rem; - min-height: 550px; +.paginationDotsContainer--shelf .paginationDot--shelf { + background-color: #000000; } +.paginationDotsContainer--shelf .paginationDot--isActive { + background-color: white; + border: 1px solid #000000; + width: 17px !important; + height: 17px !important; +} \ No newline at end of file diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index ef75ad2..1dac09a 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -38,6 +38,7 @@ } .thumbImg { + border-radius: 8px; height: 90px; max-width: 90px; } @@ -374,6 +375,7 @@ .newsletter { display: block; background: #000000; + margin-top: 96px; } .newsletter :global(.vtex-store-components-3-x-form) { padding: 32px 0 13px; diff --git a/styles/sass/pages/product/vtex.product-summary.scss b/styles/sass/pages/product/vtex.product-summary.scss index b3c3c6d..78696d7 100644 --- a/styles/sass/pages/product/vtex.product-summary.scss +++ b/styles/sass/pages/product/vtex.product-summary.scss @@ -1,18 +1,19 @@ // :global(.vtex-slider-layout-0-x-slide--shelf) { // width: 300px; // } -// :global(.vtex-slider-layout-0-x-sliderLayoutContainer) { -// margin: 0 40px; -// // margin: 0 auto; +:global(.vtex-slider-layout-0-x-sliderLayoutContainer) { + width: 94%; + margin: auto; + padding: 0; -// @media screen and (min-width: 1920px) and (max-width: 2560px) { -// margin: 6px 360px; -// padding: 0; -// } -// } + @media screen and (min-width: 1920px) and (max-width: 2560px) { + width: 62%; + } +} :global(.vtex-slider-layout-0-x-slideChildrenContainer) { width: 314px; + padding-right: 16px; } .imageWrapper { @@ -77,13 +78,28 @@ &::after { visibility: visible; content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); + margin: 0 40px 0 0; + + @media screen and (min-width: 1920px) and (max-width: 2560px) { + margin: 0; + } + } +} + +:global(.vtex-slider-layout-0-x-sliderLeftArrow) { + visibility: hidden; + + &::before { + visibility: visible; + content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-left-eleonoraotz.png); + margin: 0 0 0 40px; + + @media screen and (min-width: 1920px) and (max-width: 2560px) { + margin: 0; + } } } :global(.vtex-store-components-3-x-discountInsideContainer) { display: none; } - -// .paginationDot--container { -// color: $black; -// } diff --git a/styles/sass/pages/product/vtex.slider-layout.scss b/styles/sass/pages/product/vtex.slider-layout.scss new file mode 100644 index 0000000..8117965 --- /dev/null +++ b/styles/sass/pages/product/vtex.slider-layout.scss @@ -0,0 +1,15 @@ +.paginationDotsContainer--shelf { + align-items: center; + bottom: -30px; + + .paginationDot--shelf { + background-color: $black; + } + + .paginationDot--isActive { + background-color: white; + border: 1px solid $black; + width: 17px !important; + height: 17px !important; + } +} diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index fc70e62..4fd81eb 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -28,6 +28,7 @@ } .thumbImg { + border-radius: 8px; height: 90px; max-width: 90px; } @@ -434,6 +435,7 @@ .newsletter { display: block; background: $black; + margin-top: 96px; :global(.vtex-store-components-3-x-form) { padding: 32px 0 13px; -- 2.34.1 From 6e86de8d25295e8f6e355dfd2892433312e1fe2a Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Tue, 31 Jan 2023 17:16:38 -0300 Subject: [PATCH 17/21] =?UTF-8?q?feat:=20Estiliza=20bloco=20de=20produto?= =?UTF-8?q?=20indispon=C3=ADvel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- styles/css/vtex.store-components.css | 46 +++++++---- .../pages/product/vtex.store-components.scss | 79 ++++++++++++------- 2 files changed, 82 insertions(+), 43 deletions(-) diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 1dac09a..644b44b 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -334,38 +334,56 @@ line-height: 19px; color: #868686; } -.subscriberContainer .form :global(.vtex-input-prefix__group) { +.subscriberContainer .form .content { + display: grid; + grid-template-areas: " nome email" " submit submit"; + justify-content: inherit; + gap: 8px; +} +.subscriberContainer .form .content .inputName { + grid-area: nome; +} +.subscriberContainer .form .content .inputName :global(.vtex-input-prefix__group), +.subscriberContainer .form .content .inputEmail :global(.vtex-input-prefix__group) { border-radius: 0; border: 1px solid #989898; } -.subscriberContainer .form :global(.vtex-input-prefix__group) :global(.vtex-styleguide-9-x-input) { +.subscriberContainer .form .content .inputName :global(.vtex-input-prefix__group) :global(.vtex-styleguide-9-x-input), +.subscriberContainer .form .content .inputEmail :global(.vtex-input-prefix__group) :global(.vtex-styleguide-9-x-input) { + padding: 12px 14px; font-weight: 400; font-size: 12px; line-height: 16px; + color: #989898; } -.subscriberContainer .form :global(.vtex-store-components-3-x-content) { - display: grid; - grid-template-areas: "name email" "submit submit"; +.subscriberContainer .form .content .inputName :global(.vtex-input-prefix__group) :global(.vtex-styleguide-9-x-input)::placeholder, +.subscriberContainer .form .content .inputEmail :global(.vtex-input-prefix__group) :global(.vtex-styleguide-9-x-input)::placeholder { + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: #989898; } -.subscriberContainer .form :global(.vtex-store-components-3-x-content) .inputName { - grid-area: name; -} -.subscriberContainer .form :global(.vtex-store-components-3-x-content) .inputEmail { +.subscriberContainer .form .content .inputEmail { grid-area: email; } -.subscriberContainer .form :global(.vtex-store-components-3-x-content) .submit { +.subscriberContainer .form .content .submit { grid-area: submit; + width: 100%; } -.subscriberContainer .form :global(.vtex-store-components-3-x-content) :global(.vtex-button) { +.subscriberContainer .form .content .submit :global(.vtex-button) { + width: 100%; + height: 49px; + cursor: pointer; background-color: #000000; border: none; border-radius: 0; } -.subscriberContainer .form :global(.vtex-store-components-3-x-content) :global(.vtex-button__label) { +.subscriberContainer .form .content .submit :global(.vtex-button__label) { font-size: 0; } -.subscriberContainer .form :global(.vtex-store-components-3-x-content) :global(.vtex-button__label)::after { - content: "AVISE-ME"; +.subscriberContainer .form .content .submit :global(.vtex-button__label)::after { + content: "avise-me"; + text-transform: uppercase; font-weight: 600; font-size: 18px; line-height: 25px; diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 4fd81eb..bd61f7c 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -382,25 +382,41 @@ } .form { - :global(.vtex-input-prefix__group) { - border-radius: 0; - border: 1px solid $gray-800; - - :global(.vtex-styleguide-9-x-input) { - font-weight: 400; - font-size: 12px; - line-height: 16px; - } - } - - :global(.vtex-store-components-3-x-content) { + .content { display: grid; grid-template-areas: - "name email" - "submit submit"; + " nome email" + " submit submit"; + justify-content: inherit; + gap: 8px; .inputName { - grid-area: name; + grid-area: nome; + } + + .inputName, + .inputEmail { + :global(.vtex-input-prefix__group) { + border-radius: 0; + border: 1px solid $gray-800; + + :global(.vtex-styleguide-9-x-input) { + padding: 12px 14px; + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: $gray-800; + + &::placeholder { + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: $gray-800; + } + } + + } + } .inputEmail { @@ -409,23 +425,28 @@ .submit { grid-area: submit; - } + width: 100%; - :global(.vtex-button) { - background-color: $black; - border: none; - border-radius: 0; - } + :global(.vtex-button) { + width: 100%; + height: 49px; + cursor: pointer; + background-color: $black; + border: none; + border-radius: 0; + } - :global(.vtex-button__label) { - font-size: 0; + :global(.vtex-button__label) { + font-size: 0; - &::after { - content: "AVISE-ME"; - font-weight: 600; - font-size: 18px; - line-height: 25px; - color: $white; + &::after { + content: "avise-me"; + text-transform: uppercase; + font-weight: 600; + font-size: 18px; + line-height: 25px; + color: $white; + } } } } -- 2.34.1 From 23f0e8a3e8e6d6db6f6070c27b30023dabf92bff Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Tue, 31 Jan 2023 21:36:33 -0300 Subject: [PATCH 18/21] feat: Inclui testIds nos blocos --- react/components/Html/styles.css | 4 ++ store/blocks/pdp/product.jsonc | 95 +++++++++++++++++++++++++++----- 2 files changed, 86 insertions(+), 13 deletions(-) diff --git a/react/components/Html/styles.css b/react/components/Html/styles.css index e28c0d3..2df4658 100644 --- a/react/components/Html/styles.css +++ b/react/components/Html/styles.css @@ -4,6 +4,10 @@ margin-bottom: 5px; } +[class*="html--cart-button"] { + width: 100%; +} + [class*="html--buy-button"] :global(.vtex-button) { height: 49px; background: black; diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index 0facc42..60b0872 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -14,6 +14,8 @@ "newsletter" ] }, + + // Breadcrumb "html#breadcrumb": { "props": { "tag": "section", @@ -22,6 +24,8 @@ }, "children": ["breadcrumb"] }, + + // Produto "flex-layout.row#specifications-title": { "children": ["rich-text#specifications"] }, @@ -71,6 +75,7 @@ ] }, + // Imagens de produto "flex-layout.col#stack": { "children": ["stack-layout"], "props": { @@ -79,8 +84,15 @@ } }, "flex-layout.row#product-image": { - "children": ["product-images"] + "children": ["html#product-images"] }, +"html#product-images": { + "children": ["product-images"], + "props": { + "testId": "product-images" + } +}, + "product-images": { "props": { "aspectRatio": { @@ -93,6 +105,8 @@ "thumbnailsOrientation": "horizontal" } }, + + // Especificações de produto "flex-layout.col#right-col": { "props": { "preventVerticalStretch": true, @@ -103,8 +117,10 @@ "product-identifier.product", "flex-layout.row#selling-price", "product-installments", - "Pix", - "sku-selector", + "html#pix-price", + // "Pix", + // "sku-selector", + "html#sku-selector", "html#buy-button", "product-gifts", "availability-subscriber", @@ -119,6 +135,13 @@ "children": ["vtex.store-components:product-name"] }, + "html#sku-selector": { + "children": ["sku-selector"], + "props": { + "testId": "sku-selector" + } + }, + "sku-selector": { "props": { "variationsSpacing": 3, @@ -127,6 +150,7 @@ } }, + // Parcelamento "product-installments": { "props": { "markers": ["discount"], @@ -135,13 +159,38 @@ } }, + // Quantidade e botão de compra "html#buy-button": { "props": { "blockClass": "buy-button" }, - "children": ["product-quantity#size", "add-to-cart-button"] + "children": [ "html#product-quantity-size", "html#cart-button"] }, + "html#cart-button": { + "children": ["add-to-cart-button"], + "props": { + "testId": "add-to-cart-button", + "blockClass": "cart-button" + } + }, + + "html#product-quantity-size": { + "children": ["product-quantity#size"], + "props": { + "testId": "product-quantity" + } + }, + + "product-quantity#size": { + "props": { + "size": "large", + "width": "28%", + "showLabel": false + } + }, + + // Produto indisponível "flex-layout.row#product-availability": { "props": { "colGap": 7, @@ -154,6 +203,7 @@ "flex-layout.col#right-col-availability" ] }, + "flex-layout.col#right-col-availability": { "props": { "preventVerticalStretch": true, @@ -167,6 +217,8 @@ "sku-selector" ] }, + + // Formulário produto indisponível "flex-layout.row#availability": { "props": { "blockClass": "message-availability" @@ -174,14 +226,15 @@ "children": ["availability-subscriber"] }, - "product-quantity#size": { + // Desconto Pix + "html#pix-price": { + "children": ["Pix"], "props": { - "size": "large", - "width": "28%", - "showLabel": false + "testId": "pix-price" } }, + // Descrição "tab-layout": { "children": ["tab-list", "tab-content"], "props": { @@ -328,6 +381,7 @@ } }, + // Prateleira de produtos "rich-text#carousel": { "props": { "text": "Você também pode gostar:", @@ -338,6 +392,25 @@ }, "product-summary.shelf#carousel": { + "children": ["html#product-summary"] + }, + + "list-context.product-list#product-carousel": { + "blocks": ["product-summary.shelf#carousel"], + "children": ["html#product-summary-list"] + }, + + "html#product-summary-list": { + "children": ["slider-layout#demo-products"], + "props": { + "testId": "product-summary-list" + } + }, + + "html#product-summary": { + "props": { + "testId": "vtex-product-summary" + }, "children": [ "product-summary-image", "product-summary-name", @@ -345,11 +418,7 @@ ] }, - "list-context.product-list#product-carousel": { - "blocks": ["product-summary.shelf#carousel"], - "children": ["slider-layout#demo-products"] - }, - + // Newsletter "newsletter": { "props": { "label": "Assine nossa newsletter", -- 2.34.1 From ed0dba74d7145062672a449c41cd7a969ae9d86a Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Tue, 31 Jan 2023 22:24:50 -0300 Subject: [PATCH 19/21] =?UTF-8?q?feat:=20Inclui=20coment=C3=A1rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- store/blocks/pdp/product.jsonc | 32 ++++++----- styles/css/vtex.product-identifier.css | 3 -- styles/css/vtex.product-price.css | 47 ---------------- styles/css/vtex.product-summary.css | 26 ++++----- .../sass/pages/product/vtex.breadcrumb.scss | 6 +++ .../product/vtex.product-identifier.scss | 8 +-- .../pages/product/vtex.product-price.scss | 54 +------------------ .../pages/product/vtex.product-quantity.scss | 10 ++++ .../pages/product/vtex.product-summary.scss | 49 +++++++++++------ styles/sass/pages/product/vtex.rich-text.scss | 2 + .../pages/product/vtex.slider-layout.scss | 2 + .../pages/product/vtex.store-components.scss | 22 ++++++++ .../sass/pages/product/vtex.tab-layout.scss | 18 +++++-- styles/sass/utils/_vars.scss | 24 ++++----- 14 files changed, 136 insertions(+), 167 deletions(-) diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index 60b0872..ce6a66c 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -3,11 +3,7 @@ "children": [ "html#breadcrumb", "condition-layout.product#availability", - // "flex-layout.row#description", - // "flex-layout.row#specifications-title", - // "product-specification-group#table", "tab-layout", - // "product-summary.shelf#carousel", "rich-text#carousel", "list-context.product-list#product-carousel", "product-questions-and-answers", @@ -16,6 +12,7 @@ }, // Breadcrumb + "html#breadcrumb": { "props": { "tag": "section", @@ -26,6 +23,7 @@ }, // Produto + "flex-layout.row#specifications-title": { "children": ["rich-text#specifications"] }, @@ -76,6 +74,7 @@ }, // Imagens de produto + "flex-layout.col#stack": { "children": ["stack-layout"], "props": { @@ -86,12 +85,12 @@ "flex-layout.row#product-image": { "children": ["html#product-images"] }, -"html#product-images": { - "children": ["product-images"], - "props": { - "testId": "product-images" - } -}, + "html#product-images": { + "children": ["product-images"], + "props": { + "testId": "product-images" + } + }, "product-images": { "props": { @@ -107,6 +106,7 @@ }, // Especificações de produto + "flex-layout.col#right-col": { "props": { "preventVerticalStretch": true, @@ -118,8 +118,6 @@ "flex-layout.row#selling-price", "product-installments", "html#pix-price", - // "Pix", - // "sku-selector", "html#sku-selector", "html#buy-button", "product-gifts", @@ -151,6 +149,7 @@ }, // Parcelamento + "product-installments": { "props": { "markers": ["discount"], @@ -160,11 +159,12 @@ }, // Quantidade e botão de compra + "html#buy-button": { "props": { "blockClass": "buy-button" }, - "children": [ "html#product-quantity-size", "html#cart-button"] + "children": ["html#product-quantity-size", "html#cart-button"] }, "html#cart-button": { @@ -191,6 +191,7 @@ }, // Produto indisponível + "flex-layout.row#product-availability": { "props": { "colGap": 7, @@ -219,6 +220,7 @@ }, // Formulário produto indisponível + "flex-layout.row#availability": { "props": { "blockClass": "message-availability" @@ -227,6 +229,7 @@ }, // Desconto Pix + "html#pix-price": { "children": ["Pix"], "props": { @@ -235,6 +238,7 @@ }, // Descrição + "tab-layout": { "children": ["tab-list", "tab-content"], "props": { @@ -382,6 +386,7 @@ }, // Prateleira de produtos + "rich-text#carousel": { "props": { "text": "Você também pode gostar:", @@ -419,6 +424,7 @@ }, // Newsletter + "newsletter": { "props": { "label": "Assine nossa newsletter", diff --git a/styles/css/vtex.product-identifier.css b/styles/css/vtex.product-identifier.css index f956e09..a43054f 100644 --- a/styles/css/vtex.product-identifier.css +++ b/styles/css/vtex.product-identifier.css @@ -7,9 +7,6 @@ */ /* Media Query M3 */ /* Grid breakpoints */ -/* .product-identifier--productReference { - margin-bottom: 1rem; -} */ .product-identifier__label { display: none; } diff --git a/styles/css/vtex.product-price.css b/styles/css/vtex.product-price.css index 934c701..6a44c8a 100644 --- a/styles/css/vtex.product-price.css +++ b/styles/css/vtex.product-price.css @@ -19,38 +19,6 @@ margin: 0; } -.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: 0.875rem; -} - -.installments--summary { - margin-bottom: 2rem; - font-size: 0.875rem; -} - .installments { font-size: 16px; line-height: 22px; @@ -61,19 +29,4 @@ .installments .installments-discount, .installments .installmentValue { font-weight: 700; -} - -.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; } \ No newline at end of file diff --git a/styles/css/vtex.product-summary.css b/styles/css/vtex.product-summary.css index b4f3f75..cf16934 100644 --- a/styles/css/vtex.product-summary.css +++ b/styles/css/vtex.product-summary.css @@ -40,19 +40,6 @@ color: #000000; } -:global(.vtex-store-components-3-x-sellingPrice) { - padding: 0; -} -:global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceLabel) { - display: none; -} -:global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceValue) { - font-weight: 700; - font-size: 24px; - line-height: 33px; - color: #000000; -} - :global(.vtex-store-components-3-x-listPrice) { font-weight: 400; font-size: 14px; @@ -71,6 +58,19 @@ content: " por"; } +:global(.vtex-store-components-3-x-sellingPrice) { + padding: 0; +} +:global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceLabel) { + display: none; +} +:global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceValue) { + font-weight: 700; + font-size: 24px; + line-height: 33px; + color: #000000; +} + :global(.vtex-slider-layout-0-x-sliderRightArrow) { visibility: hidden; } diff --git a/styles/sass/pages/product/vtex.breadcrumb.scss b/styles/sass/pages/product/vtex.breadcrumb.scss index 6744966..c440bc5 100644 --- a/styles/sass/pages/product/vtex.breadcrumb.scss +++ b/styles/sass/pages/product/vtex.breadcrumb.scss @@ -1,3 +1,5 @@ +// Breadcrumb + .container { padding: 14px 36px; @@ -13,6 +15,8 @@ color: $gray-500; } + // Home + .homeIcon { display: none; } @@ -24,6 +28,8 @@ color: $gray-500; } + // Outros links + .link--1, .link--2 { &::after { diff --git a/styles/sass/pages/product/vtex.product-identifier.scss b/styles/sass/pages/product/vtex.product-identifier.scss index 29581db..313250e 100644 --- a/styles/sass/pages/product/vtex.product-identifier.scss +++ b/styles/sass/pages/product/vtex.product-identifier.scss @@ -1,11 +1,5 @@ -/* .product-identifier--productReference { - margin-bottom: 1rem; -} */ -// .info-availability { -// display: flex; -// align-self: flex-end; -// } +// Código de identificação do produto .product-identifier { diff --git a/styles/sass/pages/product/vtex.product-price.scss b/styles/sass/pages/product/vtex.product-price.scss index 2c98406..60c41dd 100644 --- a/styles/sass/pages/product/vtex.product-price.scss +++ b/styles/sass/pages/product/vtex.product-price.scss @@ -1,13 +1,8 @@ .listPrice { display: none; - // color: #727273; - // margin-bottom: 0.25rem; - // font-size: 1rem; } -// .sellingPrice { -// margin: 0; -// } +// Preço .sellingPriceValue { font-weight: 700; @@ -17,38 +12,8 @@ margin: 0; } -.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: 0.875rem; -} - -.installments--summary { - margin-bottom: 2rem; - font-size: 0.875rem; -} +// Informações de parcelamento .installments { font-size: 16px; @@ -84,18 +49,3 @@ // } // } } - -.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; -} diff --git a/styles/sass/pages/product/vtex.product-quantity.scss b/styles/sass/pages/product/vtex.product-quantity.scss index 82e99fd..2e2e17c 100644 --- a/styles/sass/pages/product/vtex.product-quantity.scss +++ b/styles/sass/pages/product/vtex.product-quantity.scss @@ -1,3 +1,7 @@ +// Quantidade de produtos + +// Botões + :global(.vtex-numeric-stepper__minus-button), :global(.vtex-numeric-stepper__plus-button) { background-color: $white; @@ -8,6 +12,8 @@ border-radius: 0; } +// Botão de - + :global(.vtex-numeric-stepper__minus-button) { border-top: 1px; border-left: 1px; @@ -16,6 +22,8 @@ border-color: $gray-1000; } +// Botão de + + :global(.vtex-numeric-stepper__plus-button) { border-top: 1px; border-right: 1px; @@ -24,6 +32,8 @@ border-color: $gray-1000; } +// Input + :global(.vtex-numeric-stepper__input) { border-top: 1px; border-bottom: 1px; diff --git a/styles/sass/pages/product/vtex.product-summary.scss b/styles/sass/pages/product/vtex.product-summary.scss index 78696d7..d3ffbc5 100644 --- a/styles/sass/pages/product/vtex.product-summary.scss +++ b/styles/sass/pages/product/vtex.product-summary.scss @@ -1,6 +1,7 @@ -// :global(.vtex-slider-layout-0-x-slide--shelf) { -// width: 300px; -// } +// Prateleira de produtos + +// Container + :global(.vtex-slider-layout-0-x-sliderLayoutContainer) { width: 94%; margin: auto; @@ -11,11 +12,15 @@ } } +// Informações de cada produto + :global(.vtex-slider-layout-0-x-slideChildrenContainer) { width: 314px; padding-right: 16px; } +// Imagem do produto + .imageWrapper { height: 314px; display: flex; @@ -23,6 +28,8 @@ align-items: center; } +// Nome do produto + .nameContainer { padding: 0 0 8px; @@ -34,20 +41,7 @@ } } -:global(.vtex-store-components-3-x-sellingPrice) { - padding: 0; - - :global(.vtex-store-components-3-x-sellingPriceLabel) { - display: none; - } - - :global(.vtex-store-components-3-x-sellingPriceValue) { - font-weight: 700; - font-size: 24px; - line-height: 33px; - color: $black; - } -} +// Preço sem desconto :global(.vtex-store-components-3-x-listPrice) { font-weight: 400; @@ -72,6 +66,25 @@ } } +// Preço com desconto + +:global(.vtex-store-components-3-x-sellingPrice) { + padding: 0; + + :global(.vtex-store-components-3-x-sellingPriceLabel) { + display: none; + } + + :global(.vtex-store-components-3-x-sellingPriceValue) { + font-weight: 700; + font-size: 24px; + line-height: 33px; + color: $black; + } +} + +// Arrows + :global(.vtex-slider-layout-0-x-sliderRightArrow) { visibility: hidden; @@ -100,6 +113,8 @@ } } +// Desconto + :global(.vtex-store-components-3-x-discountInsideContainer) { display: none; } diff --git a/styles/sass/pages/product/vtex.rich-text.scss b/styles/sass/pages/product/vtex.rich-text.scss index 153cc80..0c1a292 100644 --- a/styles/sass/pages/product/vtex.rich-text.scss +++ b/styles/sass/pages/product/vtex.rich-text.scss @@ -1,3 +1,5 @@ +// Título da prateleira + .paragraph--carousel-title { font-weight: 400; font-size: 24px; diff --git a/styles/sass/pages/product/vtex.slider-layout.scss b/styles/sass/pages/product/vtex.slider-layout.scss index 8117965..4f1e574 100644 --- a/styles/sass/pages/product/vtex.slider-layout.scss +++ b/styles/sass/pages/product/vtex.slider-layout.scss @@ -1,3 +1,5 @@ +// Dots da prateleira de produtos + .paginationDotsContainer--shelf { align-items: center; bottom: -30px; diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index bd61f7c..845a056 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -1,3 +1,5 @@ +// Produto + .container { padding: 0 40px; margin: 0; @@ -8,6 +10,8 @@ } } +// Nome do produto + .productNameContainer--quickview { font-weight: 300; font-size: 20px; @@ -16,6 +20,8 @@ color: $gray-600; } +// Imagens do produto + .productImageTag--main { max-height: max-content !important; max-width: max-content; @@ -48,10 +54,14 @@ margin-right: 16px; } +// Skus + .skuSelectorContainer { display: flex; flex-direction: column; + // Skus cor + .skuSelectorSubcontainer--cor { order: 2; @@ -97,6 +107,8 @@ } } + // Skus tamanho + .skuSelectorSubcontainer--tamanho { order: 1; @@ -181,6 +193,8 @@ margin: 0 16px 0 0; } +// Código Postal + .shippingContainer { display: flex; @@ -242,6 +256,8 @@ } } + // Não sei meu CEP + :global(.vtex-address-form__postalCode-forgottenURL) { padding: 0; position: relative; @@ -266,6 +282,8 @@ height: fit-content; } +// Informações de entrega + .shippingTable { display: flex; flex-direction: column; @@ -355,6 +373,8 @@ } } +// Formulário de produto indisponível + .subscriberContainer { .title { font-size: 0; @@ -453,6 +473,8 @@ } } +// Newsletter + .newsletter { display: block; background: $black; diff --git a/styles/sass/pages/product/vtex.tab-layout.scss b/styles/sass/pages/product/vtex.tab-layout.scss index 40266d5..c362b3b 100644 --- a/styles/sass/pages/product/vtex.tab-layout.scss +++ b/styles/sass/pages/product/vtex.tab-layout.scss @@ -1,3 +1,5 @@ +// Descrição do produto + :global(.vtex-tab-layout-0-x-container) { padding: 0 40px; margin: 0; @@ -7,12 +9,16 @@ padding: 0; } + // Header descrição do produto + .listContainer--tabList { border-bottom: 1px solid $gray-100; height: 43px; justify-content: space-between; padding: 0 70px; + // Títulos do header da descrição do produto + .listItem { :global(.vtex-button) { &:hover { @@ -38,6 +44,8 @@ } } + // Título ativo do header da descrição do produto + .listItemActive { :global(.vtex-button) { background-color: white; @@ -57,6 +65,8 @@ } } + // Container do conteúdo + :global(.vtex-tab-layout-0-x-contentContainer) { .contentItem { display: flex; @@ -65,10 +75,8 @@ align-items: flex-start; padding: 32px 32px 16px; - // :global(.vtex-store-components-3-x-content) { - // max-width: 100%; + // Imagem do produto - // } .productImagesContainer { width: 50%; max-width: 50%; @@ -81,6 +89,8 @@ // max-width: 872px; } + // Título da descrição do produto + :global(.vtex-rich-text-0-x-heading) { font-weight: 400; font-size: 24px; @@ -89,6 +99,8 @@ margin-top: 0; } + // Texto descrição do produto + :global(.vtex-rich-text-0-x-paragraph) { font-weight: 400; font-size: 16px; diff --git a/styles/sass/utils/_vars.scss b/styles/sass/utils/_vars.scss index 7e8167d..3a1288a 100644 --- a/styles/sass/utils/_vars.scss +++ b/styles/sass/utils/_vars.scss @@ -6,7 +6,7 @@ $gray-50: #868686; $gray-100: #bfbfbf; $gray-200: #b9b9b9; $gray-300: #bababa; -$gray-400: #AFAFAF; +$gray-400: #afafaf; $gray-500: #929292; $gray-600: #575757; $gray-700: #202020; @@ -18,18 +18,18 @@ $black: #000000; /* Grid breakpoints */ $grid-breakpoints: ( - xs: 0, - cstm: 400, - sm: 576px, - md: 768px, - lg: 992px, - xl: 1200px + xs: 0, + cstm: 400, + sm: 576px, + md: 768px, + lg: 992px, + xl: 1200px, ) !default; $z-index: ( - level1: 5, - level2: 10, - level3: 15, - level4: 20, - level5: 25 + level1: 5, + level2: 10, + level3: 15, + level4: 20, + level5: 25, ) !default; -- 2.34.1 From 20b47985d148c45f6f98b658c1a762927cd9d286 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Wed, 1 Feb 2023 21:49:08 -0300 Subject: [PATCH 20/21] feat: Estiliza main mobile --- react/components/Html/styles.css | 17 +- store/blocks/pdp/product.jsonc | 32 +- styles/css/vtex.breadcrumb.css | 2 +- styles/css/vtex.flex-layout.css | 11 + styles/css/vtex.product-identifier.css | 6 +- styles/css/vtex.product-price.css | 6 + styles/css/vtex.product-quantity.css | 5 + styles/css/vtex.product-summary.css | 79 ----- styles/css/vtex.rich-text.css | 27 ++ styles/css/vtex.slider-layout.css | 90 +++++- styles/css/vtex.store-components.css | 180 ++++++++--- styles/css/vtex.tab-layout.css | 106 ++++++- .../sass/pages/product/vtex.breadcrumb.scss | 2 +- .../sass/pages/product/vtex.flex-layout.scss | 9 + .../product/vtex.product-identifier.scss | 5 +- .../pages/product/vtex.product-price.scss | 7 +- .../pages/product/vtex.product-quantity.scss | 7 + .../pages/product/vtex.product-summary.scss | 103 +----- styles/sass/pages/product/vtex.rich-text.scss | 27 ++ .../pages/product/vtex.slider-layout.scss | 107 ++++++- .../pages/product/vtex.store-components.scss | 300 ++++++++++++++---- .../sass/pages/product/vtex.tab-layout.scss | 96 +++++- 22 files changed, 898 insertions(+), 326 deletions(-) diff --git a/react/components/Html/styles.css b/react/components/Html/styles.css index 2df4658..e4c5c75 100644 --- a/react/components/Html/styles.css +++ b/react/components/Html/styles.css @@ -1,7 +1,7 @@ [class*="html--buy-button"] { display: flex; gap: 10px; - margin-bottom: 5px; + margin: 0; } [class*="html--cart-button"] { @@ -10,7 +10,22 @@ [class*="html--buy-button"] :global(.vtex-button) { height: 49px; + max-width: 766px; background: black; border: none; border-radius: 0; } + +@media only screen and (min-width: 280px) and (max-width: 768px) { + [class*="html--buy-button"] { + flex-direction: column; + } + + [class*="html--product-quantity"] { + height: 49px; + } + + [class*="html--buy-button"] :global(.vtex-button) { + height: 70px; + } +} diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index ce6a66c..1da3220 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -95,8 +95,7 @@ "product-images": { "props": { "aspectRatio": { - "desktop": "auto", - "phone": "16:9" + "desktop": "auto" }, "showNavigationArrows": false, "showPaginationDots": false, @@ -122,10 +121,20 @@ "html#buy-button", "product-gifts", "availability-subscriber", + "rich-text#labelCep", "shipping-simulator" ] }, + // Título CEP + + "rich-text#labelCep": { + "props": { + "blockClass": "labelCep", + "text": "CALCULAR FRETE:" + } + }, + "flex-layout.row#product-name": { "props": { "marginBottom": 3 @@ -178,7 +187,8 @@ "html#product-quantity-size": { "children": ["product-quantity#size"], "props": { - "testId": "product-quantity" + "testId": "product-quantity", + "blockClass": "product-quantity" } }, @@ -412,6 +422,16 @@ } }, + "slider-layout#demo-products": { + "props": { + "itemsPerPage": { + "desktop": 4, + "tablet": 3, + "phone": 2 + } + } + }, + "html#product-summary": { "props": { "testId": "vtex-product-summary" @@ -423,6 +443,12 @@ ] }, + // "product-summary-image": { + // "props": { + // "aspectRatio": "1:1" + // } + // }, + // Newsletter "newsletter": { diff --git a/styles/css/vtex.breadcrumb.css b/styles/css/vtex.breadcrumb.css index c88ac4a..5ac4f7d 100644 --- a/styles/css/vtex.breadcrumb.css +++ b/styles/css/vtex.breadcrumb.css @@ -10,7 +10,7 @@ .container { padding: 14px 36px; } -@media screen and (min-width: 1920px) and (max-width: 2560px) { +@media screen and (min-width: 1920px) { .container { margin: 0px 356px; padding: 14px 0; diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css index 96a5a69..f5c4c0d 100644 --- a/styles/css/vtex.flex-layout.css +++ b/styles/css/vtex.flex-layout.css @@ -58,6 +58,11 @@ margin: 0; padding: 0; } +@media screen and (max-width: 1024px) { + .flexRowContent--product-main { + flex-direction: column; + } +} .flexRow--deals { background-color: #fff; @@ -113,6 +118,12 @@ .stretchChildrenWidth { margin: 0; } +@media screen and (max-width: 1024px) { + .stretchChildrenWidth { + width: 100% !important; + padding: 0; + } +} .flexRowContent--buy-button { height: 49px; diff --git a/styles/css/vtex.product-identifier.css b/styles/css/vtex.product-identifier.css index a43054f..b23bead 100644 --- a/styles/css/vtex.product-identifier.css +++ b/styles/css/vtex.product-identifier.css @@ -19,6 +19,10 @@ font-weight: 400; font-size: 14px; line-height: 19px; - text-align: right; color: rgba(146, 146, 146, 0.48); +} +@media screen and (max-width: 1024px) { + .product-identifier__value { + justify-content: start; + } } \ No newline at end of file diff --git a/styles/css/vtex.product-price.css b/styles/css/vtex.product-price.css index 6a44c8a..0983b2f 100644 --- a/styles/css/vtex.product-price.css +++ b/styles/css/vtex.product-price.css @@ -11,6 +11,12 @@ display: none; } +@media screen and (max-width: 1024px) { + :global(.vtex-product-price-1-x-sellingPrice--hasListPrice) { + margin-top: 24px !important; + } +} + .sellingPriceValue { font-weight: 700; font-size: 25px; diff --git a/styles/css/vtex.product-quantity.css b/styles/css/vtex.product-quantity.css index 4ae3361..cba35d6 100644 --- a/styles/css/vtex.product-quantity.css +++ b/styles/css/vtex.product-quantity.css @@ -7,6 +7,10 @@ */ /* Media Query M3 */ /* Grid breakpoints */ +.QuantitySelectorContainer { + margin-bottom: 16px; +} + :global(.vtex-numeric-stepper__minus-button), :global(.vtex-numeric-stepper__plus-button) { background-color: #fff; @@ -34,6 +38,7 @@ } :global(.vtex-numeric-stepper__input) { + width: 32px; border-top: 1px; border-bottom: 1px; border-style: solid; diff --git a/styles/css/vtex.product-summary.css b/styles/css/vtex.product-summary.css index cf16934..215cc68 100644 --- a/styles/css/vtex.product-summary.css +++ b/styles/css/vtex.product-summary.css @@ -7,22 +7,6 @@ */ /* Media Query M3 */ /* Grid breakpoints */ -:global(.vtex-slider-layout-0-x-sliderLayoutContainer) { - width: 94%; - margin: auto; - padding: 0; -} -@media screen and (min-width: 1920px) and (max-width: 2560px) { - :global(.vtex-slider-layout-0-x-sliderLayoutContainer) { - width: 62%; - } -} - -:global(.vtex-slider-layout-0-x-slideChildrenContainer) { - width: 314px; - padding-right: 16px; -} - .imageWrapper { height: 314px; display: flex; @@ -38,67 +22,4 @@ font-size: 14px; line-height: 19px; color: #000000; -} - -:global(.vtex-store-components-3-x-listPrice) { - font-weight: 400; - font-size: 14px; - line-height: 19px; - color: #bababa; - margin: 0; - padding-bottom: 8px; -} -:global(.vtex-store-components-3-x-listPrice) :global(.vtex-store-components-3-x-listPriceLabel) { - display: none; -} -:global(.vtex-store-components-3-x-listPrice) :global(.vtex-store-components-3-x-currencyContainer)::before { - content: "de "; -} -:global(.vtex-store-components-3-x-listPrice) :global(.vtex-store-components-3-x-currencyContainer)::after { - content: " por"; -} - -:global(.vtex-store-components-3-x-sellingPrice) { - padding: 0; -} -:global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceLabel) { - display: none; -} -:global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceValue) { - font-weight: 700; - font-size: 24px; - line-height: 33px; - color: #000000; -} - -:global(.vtex-slider-layout-0-x-sliderRightArrow) { - visibility: hidden; -} -:global(.vtex-slider-layout-0-x-sliderRightArrow)::after { - visibility: visible; - content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); - margin: 0 40px 0 0; -} -@media screen and (min-width: 1920px) and (max-width: 2560px) { - :global(.vtex-slider-layout-0-x-sliderRightArrow)::after { - margin: 0; - } -} - -:global(.vtex-slider-layout-0-x-sliderLeftArrow) { - visibility: hidden; -} -:global(.vtex-slider-layout-0-x-sliderLeftArrow)::before { - visibility: visible; - content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-left-eleonoraotz.png); - margin: 0 0 0 40px; -} -@media screen and (min-width: 1920px) and (max-width: 2560px) { - :global(.vtex-slider-layout-0-x-sliderLeftArrow)::before { - margin: 0; - } -} - -:global(.vtex-store-components-3-x-discountInsideContainer) { - display: none; } \ No newline at end of file diff --git a/styles/css/vtex.rich-text.css b/styles/css/vtex.rich-text.css index 844ba9e..b734d82 100644 --- a/styles/css/vtex.rich-text.css +++ b/styles/css/vtex.rich-text.css @@ -13,4 +13,31 @@ line-height: 38px; color: #575757; margin: 0; +} +@media screen and (max-width: 1024px) { + .paragraph--carousel-title { + padding-top: 16px; + } +} +@media screen and (min-width: 280px) and (max-width: 768px) { + .paragraph--carousel-title { + font-size: 20px; + } +} + +.wrapper--labelCep { + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #929292; +} +.wrapper--labelCep .paragraph--labelCep { + margin: 0; +} +@media screen and (min-width: 280px) and (max-width: 768px) { + .wrapper--labelCep .paragraph--labelCep { + margin: 16px 0 0; + } } \ No newline at end of file diff --git a/styles/css/vtex.slider-layout.css b/styles/css/vtex.slider-layout.css index 24de56d..27b37b4 100644 --- a/styles/css/vtex.slider-layout.css +++ b/styles/css/vtex.slider-layout.css @@ -7,14 +7,98 @@ */ /* Media Query M3 */ /* Grid breakpoints */ -.paginationDotsContainer--shelf { +.sliderLayoutContainer { + width: 94%; + margin: auto; + padding: 0; +} +@media screen and (min-width: 1920px) { + .sliderLayoutContainer { + width: 62%; + } +} +@media screen and (max-width: 1024px) { + .sliderLayoutContainer { + width: 100%; + } +} + +.slideChildrenContainer { + width: 314px; + padding-right: 16px; +} + +.listPrice { + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: #bababa; + margin: 0; + padding-bottom: 8px; +} +.listPrice .listPriceLabel { + display: none; +} +.listPrice .currencyContainer::before { + content: "de "; +} +.listPrice .currencyContainer::after { + content: " por"; +} + +:global(.vtex-store-components-3-x-sellingPrice) { + padding: 0; +} +:global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceLabel) { + display: none; +} +:global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceValue) { + font-weight: 700; + font-size: 24px; + line-height: 33px; + color: #000000; +} + +:global(.vtex-slider-layout-0-x-sliderRightArrow) { + visibility: hidden; +} +:global(.vtex-slider-layout-0-x-sliderRightArrow)::after { + visibility: visible; + content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); + margin: 0 40px 0 0; +} +@media screen and (min-width: 1920px) { + :global(.vtex-slider-layout-0-x-sliderRightArrow)::after { + margin: 0; + } +} + +:global(.vtex-slider-layout-0-x-sliderLeftArrow) { + visibility: hidden; +} +:global(.vtex-slider-layout-0-x-sliderLeftArrow)::before { + visibility: visible; + content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-left-eleonoraotz.png); + margin: 0 0 0 40px; +} +@media screen and (min-width: 1920px) { + :global(.vtex-slider-layout-0-x-sliderLeftArrow)::before { + margin: 0; + } +} + +:global(.vtex-store-components-3-x-discountInsideContainer) { + display: none; +} + +.paginationDotsContainer { align-items: center; bottom: -30px; } -.paginationDotsContainer--shelf .paginationDot--shelf { +.paginationDotsContainer .paginationDot { background-color: #000000; } -.paginationDotsContainer--shelf .paginationDot--isActive { +.paginationDotsContainer .paginationDot--isActive { background-color: white; border: 1px solid #000000; width: 17px !important; diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 644b44b..8435dbc 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -12,7 +12,7 @@ padding: 0 40px; margin: 0; } -@media screen and (min-width: 1920px) and (max-width: 2560px) { +@media screen and (min-width: 1920px) { .container { margin: 6px 360px; padding: 0; @@ -26,13 +26,22 @@ text-align: right; color: #575757; } +@media screen and (max-width: 1024px) { + .productNameContainer--quickview { + margin-top: 32px; + text-align: left; + } +} .productImageTag--main { max-height: max-content !important; max-width: max-content; + max-width: 100%; } .carouselGaleryThumbs { + display: block; + margin-top: 16px; margin-right: 16px; max-height: 90px; } @@ -40,6 +49,7 @@ .thumbImg { border-radius: 8px; height: 90px; + width: 100%; max-width: 90px; } @@ -55,6 +65,7 @@ .productImagesThumb { max-width: 90px; + width: 90px !important; margin-right: 16px; } @@ -64,6 +75,10 @@ } .skuSelectorContainer .skuSelectorSubcontainer--cor { order: 2; + margin-bottom: 16px; +} +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorNameContainer { + margin: 0; } .skuSelectorContainer .skuSelectorSubcontainer--cor .frameAround, .skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorItemImageValue, @@ -83,6 +98,9 @@ height: 28px; transform: rotateY(180deg); } +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorTextContainer { + margin-bottom: 8px; +} .skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorTextContainer .skuSelectorName { font-size: 0; } @@ -167,72 +185,105 @@ .shippingContainer { display: flex; + position: relative; + width: 409px; + height: 49px; + margin-top: 16px; +} +@media (max-width: 1024px) { + .shippingContainer { + margin: 16px 0; + } +} +@media (max-width: 560px) { + .shippingContainer { + width: 296px; + margin-bottom: 40px; + } } .shippingContainer :global(.vtex-address-form__postalCode) { display: flex; - align-items: center; - padding-bottom: 0; + padding: 0; + margin: 0; } -.shippingContainer :global(.vtex-input-prefix__group) { +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input) { width: 280px; height: 49px; - border-radius: 0; - border: 1px solid #cccccc; } -.shippingContainer :global(.vtex-input-prefix__group) :global(.vtex-address-form-4-x-input) { +@media (max-width: 560px) { + .shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input) { + width: 247px; + } +} +@media (max-width: 280px) { + .shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input) { + width: 151px; + } +} +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input) :global(.vtex-input__label) { + display: none; +} +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input) :global(.vtex-input-prefix__group) { + border: 1px solid #cccccc; + border-radius: 0px; + height: 49px; + border-right: 0; +} +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input) :global(.vtex-input-prefix__group) :global(.vtex-address-form-4-x-input) { padding: 16.5px 16px; } -.shippingContainer :global(.vtex-input-prefix__group) :global(.vtex-address-form-4-x-input)::placeholder { +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input) :global(.vtex-input-prefix__group) :global(.vtex-address-form-4-x-input)::placeholder { font-weight: 400; font-size: 12px; line-height: 16px; - color: #AFAFAF; + color: #afafaf; } -.shippingContainer :global(.vtex-input__label) { - font-size: 0; +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-address-form__postalCode-forgottenURL) { + position: absolute; + right: -57px; } -.shippingContainer :global(.vtex-input__label)::after { - content: "CALCULAR FRETE:"; +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-address-form__postalCode-forgottenURL) :last-child { + font-family: "Open Sans"; + font-style: normal; font-weight: 400; - font-size: 14px; - line-height: 19px; - color: #929292; + font-size: 12px; + line-height: 16px; + display: flex; + align-items: center; + text-decoration-line: underline; + color: #000000 !important; +} +@media (max-width: 560px) { + .shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-address-form__postalCode-forgottenURL) { + top: 45px; + right: -4px; + } +} +@media (max-width: 280px) { + .shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-address-form__postalCode-forgottenURL) { + right: 96px; + } +} +.shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-address-form__postalCode-forgottenURL) :global(.vtex__icon-external-link) { + display: none; } .shippingContainer :global(.vtex-button) { font-size: 0; - position: relative; - top: 27px; - right: 147px; + background: black; width: 49px; height: 49px; - margin-top: 0; border: none; border-radius: 0; - background-color: #000000; - cursor: pointer; } -.shippingContainer :global(.vtex-button)::after { - content: "OK"; +.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; - font-weight: 600; - color: white; -} -.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) { + color: #fff; padding: 0; - position: relative; - left: 32px; - top: 10px; -} -.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) :last-child { - color: #000000; - font-weight: 400; - font-size: 12px; - line-height: 16px; - text-decoration: underline; -} -.shippingContainer :global(.vtex-address-form__postalCode-forgottenURL) :last-child :global(.vtex__icon-external-link) { - display: none; } :global(.vtex-button__label) { @@ -245,6 +296,11 @@ border: none; padding: 4px 0; } +@media screen and (max-width: 1024px) { + .shippingTable { + margin-bottom: 12px; + } +} .shippingTable .shippingTableHead { display: flex; flex-direction: row; @@ -263,11 +319,21 @@ min-width: 140px; text-align: left; } +@media screen and (max-width: 540px) { + .shippingTable .shippingTableHead .shippingTableHeadDeliveryName { + min-width: 100px; + } +} .shippingTable .shippingTableHead .shippingTableHeadDeliveryEstimate { font-size: 0; min-width: 140px; text-align: left; } +@media screen and (max-width: 540px) { + .shippingTable .shippingTableHead .shippingTableHeadDeliveryEstimate { + min-width: 100px; + } +} .shippingTable .shippingTableHead .shippingTableHeadDeliveryEstimate::after { content: "FRETE"; font-weight: 400; @@ -302,17 +368,27 @@ .shippingTable .shippingTableBody .shippingTableCell { padding: 0; display: flex; - color: #AFAFAF; + color: #afafaf; font-weight: 400; font-size: 12px; line-height: 16px; min-width: 140px; padding-top: 15px; } +@media screen and (max-width: 540px) { + .shippingTable .shippingTableBody .shippingTableCell { + min-width: 100px; + } +} .shippingTable .shippingTableRadioBtn { display: none; } +@media (max-width: 1024px) { + .subscriberContainer { + margin-top: 24px; + } +} .subscriberContainer .title { font-size: 0; margin: 0; @@ -401,6 +477,13 @@ max-width: 774px; position: relative; } +@media screen and (max-width: 1024px) { + .newsletter :global(.vtex-store-components-3-x-form) { + width: 100%; + max-width: 100%; + padding: 64px 0 32px; + } +} .newsletter :global(.vtex-store-components-3-x-form) .label { display: flex; flex-direction: column; @@ -415,8 +498,15 @@ line-height: 25px; color: #929292; } +@media screen and (max-width: 1024px) { + .newsletter :global(.vtex-store-components-3-x-form) .label::after { + font-size: 16px; + line-height: 22px; + } +} .newsletter :global(.vtex-store-components-3-x-form) :global(.vtex-store-components-3-x-inputGroup) { padding-top: 16px; + display: flex; } .newsletter :global(.vtex-store-components-3-x-form) :global(.vtex-store-components-3-x-inputGroup) :global(.vtex-input-prefix__group) { border: none; @@ -432,6 +522,12 @@ background: transparent; padding: 0; } +@media screen and (max-width: 1024px) { + .newsletter :global(.vtex-store-components-3-x-form) :global(.vtex-store-components-3-x-inputGroup) :global(.vtex-input-prefix__group) :global(.vtex-styleguide-9-x-input) { + font-size: 12px; + line-height: 16px; + } +} .newsletter :global(.vtex-store-components-3-x-form) .buttonContainer { padding: 0; } diff --git a/styles/css/vtex.tab-layout.css b/styles/css/vtex.tab-layout.css index f6b2179..1aa6bc2 100644 --- a/styles/css/vtex.tab-layout.css +++ b/styles/css/vtex.tab-layout.css @@ -11,7 +11,7 @@ padding: 0 40px; margin: 0; } -@media screen and (min-width: 1920px) and (max-width: 2560px) { +@media screen and (min-width: 1920px) { :global(.vtex-tab-layout-0-x-container) { margin: 6px 360px; padding: 0; @@ -21,14 +21,41 @@ border-bottom: 1px solid #bfbfbf; height: 43px; justify-content: space-between; - padding: 0 70px; + padding: 0 64px; +} +@media screen and (min-width: 1920px) { + :global(.vtex-tab-layout-0-x-container) .listContainer--tabList { + height: 49px; + } +} +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) .listContainer--tabList { + border-top: 1px solid #bfbfbf; + flex-direction: column; + height: fit-content; + padding: 16px 0 0 0; + margin: 0; + } +} +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem { + align-self: flex-start; + flex-direction: column; + height: fit-content; + padding: 0 0 16px; + margin: 0; + } +} +:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button) { + border: none; +} +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button) { + width: 100%; + } } :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button):hover { - height: 43px; - border: none; background-color: transparent; - padding: 0; - margin: 0; } :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button__label) { font-weight: 400; @@ -38,22 +65,59 @@ text-transform: capitalize; padding: 0.25em 10px 0.32em; } -:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button__label):hover { - padding: 0.25em 10px 0.32em; +@media screen and (min-width: 1920px) { + :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button__label) { + font-size: 24px; + line-height: 24px; + } +} +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button__label) { + text-align: left; + flex-direction: column; + height: fit-content; + padding: 0 !important; + font-size: 18px; + line-height: 18px; + } +} +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive { + align-self: flex-start; + flex-direction: column; + height: fit-content; + padding: 0 0 16px; + margin: 0; + } } :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button) { - background-color: white; + background-color: transparent; + width: 114px; border: none; } +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button) { + width: 100%; + } +} :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button__label) { color: #000000; - background-color: #fff; + background-color: transparent; border-bottom: 2px solid #000000; - padding: 0.25em 10px 0.32em; + padding: 0; } -:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button__label):hover { - border-bottom: 2px solid #000000; - padding: 0.25em 10px 0.32em; +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button__label) { + flex-direction: column; + text-align: left; + height: fit-content; + padding: 0; + } +} +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button__label) { + border: none; + } } :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem { display: flex; @@ -62,6 +126,14 @@ align-items: flex-start; padding: 32px 32px 16px; } +@media (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem { + flex-direction: column; + gap: 16px; + padding: 16px 0 0 0; + border-bottom: 1px solid #bfbfbf; + } +} :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem .productImagesContainer { width: 50%; max-width: 50%; @@ -71,6 +143,12 @@ max-width: 632px; display: block; } +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-store-components-3-x-productImageTag) { + width: 100% !important; + max-width: 100%; + } +} :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-heading) { font-weight: 400; font-size: 24px; diff --git a/styles/sass/pages/product/vtex.breadcrumb.scss b/styles/sass/pages/product/vtex.breadcrumb.scss index c440bc5..29d4ac3 100644 --- a/styles/sass/pages/product/vtex.breadcrumb.scss +++ b/styles/sass/pages/product/vtex.breadcrumb.scss @@ -3,7 +3,7 @@ .container { padding: 14px 36px; - @media screen and (min-width: 1920px) and (max-width: 2560px) { + @media screen and (min-width: 1920px) { margin: 0px 356px; padding: 14px 0; } diff --git a/styles/sass/pages/product/vtex.flex-layout.scss b/styles/sass/pages/product/vtex.flex-layout.scss index 7ae4654..16063bf 100644 --- a/styles/sass/pages/product/vtex.flex-layout.scss +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -50,6 +50,10 @@ .flexRowContent--product-main { margin: 0; padding: 0; + + @media screen and (max-width: 1024px) { + flex-direction: column; + } } .flexRow--deals { @@ -105,6 +109,11 @@ .stretchChildrenWidth { margin: 0; + + @media screen and (max-width: 1024px) { + width: 100% !important; + padding: 0; + } } .flexRowContent--buy-button { diff --git a/styles/sass/pages/product/vtex.product-identifier.scss b/styles/sass/pages/product/vtex.product-identifier.scss index 313250e..dc3a6b3 100644 --- a/styles/sass/pages/product/vtex.product-identifier.scss +++ b/styles/sass/pages/product/vtex.product-identifier.scss @@ -17,7 +17,10 @@ font-weight: 400; font-size: 14px; line-height: 19px; - text-align: right; color: rgba(146, 146, 146, 0.48); + + @media screen and (max-width: 1024px) { + justify-content: start; + } } } diff --git a/styles/sass/pages/product/vtex.product-price.scss b/styles/sass/pages/product/vtex.product-price.scss index 60c41dd..14c2225 100644 --- a/styles/sass/pages/product/vtex.product-price.scss +++ b/styles/sass/pages/product/vtex.product-price.scss @@ -4,6 +4,12 @@ // Preço +:global(.vtex-product-price-1-x-sellingPrice--hasListPrice) { + @media screen and (max-width: 1024px) { + margin-top: 24px !important; + } +} + .sellingPriceValue { font-weight: 700; font-size: 25px; @@ -12,7 +18,6 @@ margin: 0; } - // Informações de parcelamento .installments { diff --git a/styles/sass/pages/product/vtex.product-quantity.scss b/styles/sass/pages/product/vtex.product-quantity.scss index 2e2e17c..d755fda 100644 --- a/styles/sass/pages/product/vtex.product-quantity.scss +++ b/styles/sass/pages/product/vtex.product-quantity.scss @@ -1,5 +1,11 @@ // Quantidade de produtos +// Container + +.QuantitySelectorContainer { + margin-bottom: 16px; +} + // Botões :global(.vtex-numeric-stepper__minus-button), @@ -35,6 +41,7 @@ // Input :global(.vtex-numeric-stepper__input) { + width: 32px; border-top: 1px; border-bottom: 1px; border-style: solid; diff --git a/styles/sass/pages/product/vtex.product-summary.scss b/styles/sass/pages/product/vtex.product-summary.scss index d3ffbc5..f724285 100644 --- a/styles/sass/pages/product/vtex.product-summary.scss +++ b/styles/sass/pages/product/vtex.product-summary.scss @@ -1,24 +1,5 @@ // Prateleira de produtos -// Container - -:global(.vtex-slider-layout-0-x-sliderLayoutContainer) { - width: 94%; - margin: auto; - padding: 0; - - @media screen and (min-width: 1920px) and (max-width: 2560px) { - width: 62%; - } -} - -// Informações de cada produto - -:global(.vtex-slider-layout-0-x-slideChildrenContainer) { - width: 314px; - padding-right: 16px; -} - // Imagem do produto .imageWrapper { @@ -28,6 +9,12 @@ align-items: center; } +// .imageNormal { +// width: 314px; +// height: 314px; +// max-height: 100%; +// } + // Nome do produto .nameContainer { @@ -40,81 +27,3 @@ color: $black; } } - -// Preço sem desconto - -:global(.vtex-store-components-3-x-listPrice) { - font-weight: 400; - font-size: 14px; - line-height: 19px; - color: $gray-300; - margin: 0; - padding-bottom: 8px; - - :global(.vtex-store-components-3-x-listPriceLabel) { - display: none; - } - - :global(.vtex-store-components-3-x-currencyContainer) { - &::before { - content: "de "; - } - - &::after { - content: " por"; - } - } -} - -// Preço com desconto - -:global(.vtex-store-components-3-x-sellingPrice) { - padding: 0; - - :global(.vtex-store-components-3-x-sellingPriceLabel) { - display: none; - } - - :global(.vtex-store-components-3-x-sellingPriceValue) { - font-weight: 700; - font-size: 24px; - line-height: 33px; - color: $black; - } -} - -// Arrows - -:global(.vtex-slider-layout-0-x-sliderRightArrow) { - visibility: hidden; - - &::after { - visibility: visible; - content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); - margin: 0 40px 0 0; - - @media screen and (min-width: 1920px) and (max-width: 2560px) { - margin: 0; - } - } -} - -:global(.vtex-slider-layout-0-x-sliderLeftArrow) { - visibility: hidden; - - &::before { - visibility: visible; - content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-left-eleonoraotz.png); - margin: 0 0 0 40px; - - @media screen and (min-width: 1920px) and (max-width: 2560px) { - margin: 0; - } - } -} - -// Desconto - -:global(.vtex-store-components-3-x-discountInsideContainer) { - display: none; -} diff --git a/styles/sass/pages/product/vtex.rich-text.scss b/styles/sass/pages/product/vtex.rich-text.scss index 0c1a292..2f65099 100644 --- a/styles/sass/pages/product/vtex.rich-text.scss +++ b/styles/sass/pages/product/vtex.rich-text.scss @@ -6,4 +6,31 @@ line-height: 38px; color: $gray-600; margin: 0; + + @media screen and (max-width: 1024px) { + padding-top: 16px; + } + + @media screen and (min-width: 280px) and (max-width: 768px) { + font-size: 20px; + } +} + +// Título CEP + +.wrapper--labelCep { + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-500; + + .paragraph--labelCep { + margin: 0; + + @media screen and (min-width: 280px) and (max-width: 768px) { + margin: 16px 0 0; + } + } } diff --git a/styles/sass/pages/product/vtex.slider-layout.scss b/styles/sass/pages/product/vtex.slider-layout.scss index 4f1e574..697eea7 100644 --- a/styles/sass/pages/product/vtex.slider-layout.scss +++ b/styles/sass/pages/product/vtex.slider-layout.scss @@ -1,10 +1,113 @@ +// Prateleira de produtos + +// Container + +.sliderLayoutContainer { + width: 94%; + margin: auto; + padding: 0; + + @media screen and (min-width: 1920px) { + width: 62%; + } + + @media screen and (max-width: 1024px) { + width: 100%; + } +} + +// Informações de cada produto + +.slideChildrenContainer { + width: 314px; + padding-right: 16px; +} + +// Preço sem desconto + +.listPrice { + font-weight: 400; + font-size: 14px; + line-height: 19px; + color: $gray-300; + margin: 0; + padding-bottom: 8px; + + .listPriceLabel { + display: none; + } + + .currencyContainer { + &::before { + content: "de "; + } + + &::after { + content: " por"; + } + } +} + +// Preço com desconto + +:global(.vtex-store-components-3-x-sellingPrice) { + padding: 0; + + :global(.vtex-store-components-3-x-sellingPriceLabel) { + display: none; + } + + :global(.vtex-store-components-3-x-sellingPriceValue) { + font-weight: 700; + font-size: 24px; + line-height: 33px; + color: $black; + } +} + +// Arrows + +:global(.vtex-slider-layout-0-x-sliderRightArrow) { + visibility: hidden; + + &::after { + visibility: visible; + content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-right-eleonoraotz.png); + margin: 0 40px 0 0; + + @media screen and (min-width: 1920px) { + margin: 0; + } + } +} + +:global(.vtex-slider-layout-0-x-sliderLeftArrow) { + visibility: hidden; + + &::before { + visibility: visible; + content: url(https://agenciamagma.vtexassets.com/arquivos/arrow-left-eleonoraotz.png); + margin: 0 0 0 40px; + + @media screen and (min-width: 1920px) { + margin: 0; + } + } +} + +// Desconto + +:global(.vtex-store-components-3-x-discountInsideContainer) { + display: none; +} + // Dots da prateleira de produtos -.paginationDotsContainer--shelf { +.paginationDotsContainer { align-items: center; bottom: -30px; - .paginationDot--shelf { + .paginationDot { background-color: $black; } diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 845a056..309cdde 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -4,7 +4,7 @@ padding: 0 40px; margin: 0; - @media screen and (min-width: 1920px) and (max-width: 2560px) { + @media screen and (min-width: 1920px) { margin: 6px 360px; padding: 0; } @@ -18,6 +18,11 @@ line-height: 34px; text-align: right; color: $gray-600; + + @media screen and (max-width: 1024px) { + margin-top: 32px; + text-align: left; + } } // Imagens do produto @@ -25,10 +30,13 @@ .productImageTag--main { max-height: max-content !important; max-width: max-content; + max-width: 100%; // max-width: 664px; } .carouselGaleryThumbs { + display: block; + margin-top: 16px; margin-right: 16px; max-height: 90px; } @@ -36,6 +44,7 @@ .thumbImg { border-radius: 8px; height: 90px; + width: 100%; max-width: 90px; } @@ -51,6 +60,7 @@ .productImagesThumb { max-width: 90px; + width: 90px !important; margin-right: 16px; } @@ -64,6 +74,11 @@ .skuSelectorSubcontainer--cor { order: 2; + margin-bottom: 16px; + + .skuSelectorNameContainer { + margin: 0; + } .frameAround, .skuSelectorItemImageValue, @@ -89,6 +104,8 @@ } .skuSelectorTextContainer { + margin-bottom: 8px; + .skuSelectorName { font-size: 0; @@ -197,87 +214,206 @@ .shippingContainer { display: flex; + position: relative; + width: 409px; + height: 49px; + margin-top: 16px; + + @media (max-width: 1024px) { + margin: 16px 0; + } + + @media (max-width: 560px) { + width: 296px; + margin-bottom: 40px; + } :global(.vtex-address-form__postalCode) { display: flex; - align-items: center; - padding-bottom: 0; - } + padding: 0; + margin: 0; - :global(.vtex-input-prefix__group) { - width: 280px; - height: 49px; - border-radius: 0; - border: 1px solid $gray-1000; + :global(.vtex-input) { + width: 280px; + height: 49px; - :global(.vtex-address-form-4-x-input) { - padding: 16.5px 16px; + @media (max-width: 560px) { + width: 247px; + } - &::placeholder { + @media (max-width: 280px) { + width: 151px; + } + + :global(.vtex-input__label) { + display: none; + } + :global(.vtex-input-prefix__group) { + border: 1px solid #cccccc; + border-radius: 0px; + height: 49px; + border-right: 0; + + :global(.vtex-address-form-4-x-input) { + padding: 16.5px 16px; + + &::placeholder { + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: $gray-400; + } + } + } + } + :global(.vtex-address-form__postalCode-forgottenURL) { + position: absolute; + right: -57px; + + :last-child { + font-family: "Open Sans"; + font-style: normal; font-weight: 400; font-size: 12px; line-height: 16px; - color: $gray-400; + display: flex; + align-items: center; + text-decoration-line: underline; + color: #000000 !important; } - } - } - :global(.vtex-input__label) { - font-size: 0; + @media (max-width: 560px) { + top: 45px; + right: -4px; + } - &::after { - content: "CALCULAR FRETE:"; - font-weight: 400; - font-size: 14px; - line-height: 19px; - color: $gray-500; - } - } - - :global(.vtex-button) { - font-size: 0; - position: relative; - top: 27px; - right: 147px; - width: 49px; - height: 49px; - margin-top: 0; - border: none; - border-radius: 0; - background-color: $black; - cursor: pointer; - - &::after { - content: "OK"; - font-size: 14px; - line-height: 19px; - font-weight: 600; - color: white; - } - } - - // Não sei meu CEP - - :global(.vtex-address-form__postalCode-forgottenURL) { - padding: 0; - position: relative; - left: 32px; - top: 10px; - - :last-child { - color: $black; - font-weight: 400; - font-size: 12px; - line-height: 16px; - text-decoration: underline; + @media (max-width: 280px) { + right: 96px; + } :global(.vtex__icon-external-link) { display: none; } } } + + :global(.vtex-button) { + font-size: 0; + background: black; + width: 49px; + height: 49px; + border: none; + border-radius: 0; + + :global(.vtex-button__label)::after { + content: "Ok"; + font-family: "Open Sans"; + font-style: normal; + font-weight: 600; + font-size: 14px; + line-height: 19px; + color: $white; + padding: 0; + } + } } +// .shippingContainer { +// display: flex; +// width: 409px; +// height: 49px; + +// @media (max-width: 560px) { +// width: 296px; +// } + +// :global(.vtex-address-form__postalCode) { +// display: flex; +// align-items: center; +// padding-bottom: 0; + +// // @media screen and (min-width: 280px) and (max-width: 768px) { +// // max-width: 296px; +// // } +// } + +// :global(.vtex-input-prefix__group) { +// width: 280px; +// height: 49px; +// border-radius: 0; +// border: 1px solid $gray-1000; +// grid-area: input; + +// :global(.vtex-address-form-4-x-input) { +// padding: 16.5px 16px; + +// &::placeholder { +// font-weight: 400; +// font-size: 12px; +// line-height: 16px; +// color: $gray-400; +// } +// } +// } + +// :global(.vtex-input__label) { +// font-size: 0; + +// &::after { +// content: "CALCULAR FRETE:"; +// font-weight: 400; +// font-size: 14px; +// line-height: 19px; +// color: $gray-500; +// } +// } + +// :global(.vtex-button) { +// font-size: 0; +// position: relative; +// top: 27px; +// right: 147px; +// width: 49px; +// height: 49px; +// margin-top: 0; +// border: none; +// border-radius: 0; +// background-color: $black; +// cursor: pointer; +// grid-area: button; + +// &::after { +// content: "OK"; +// font-size: 14px; +// line-height: 19px; +// font-weight: 600; +// color: white; +// } +// } + +// // Não sei meu CEP + +// :global(.vtex-address-form__postalCode-forgottenURL) { +// grid-area: forgotten; +// padding: 0; +// position: relative; +// left: 32px; +// top: 10px; + +// :last-child { +// color: $black; +// font-weight: 400; +// font-size: 12px; +// line-height: 16px; +// text-decoration: underline; + +// :global(.vtex__icon-external-link) { +// display: none; +// } +// } +// } +// } + :global(.vtex-button__label) { height: fit-content; } @@ -290,6 +426,10 @@ border: none; padding: 4px 0; + @media screen and (max-width: 1024px) { + margin-bottom: 12px; + } + .shippingTableHead { display: flex; flex-direction: row; @@ -308,6 +448,10 @@ text-transform: uppercase; min-width: 140px; text-align: left; + + @media screen and (max-width: 540px) { + min-width: 100px; + } } .shippingTableHeadDeliveryEstimate { @@ -315,6 +459,10 @@ min-width: 140px; text-align: left; + @media screen and (max-width: 540px) { + min-width: 100px; + } + &::after { content: "FRETE"; font-weight: 400; @@ -365,6 +513,10 @@ line-height: 16px; min-width: 140px; padding-top: 15px; + + @media screen and (max-width: 540px) { + min-width: 100px; + } } } @@ -376,6 +528,11 @@ // Formulário de produto indisponível .subscriberContainer { + + @media (max-width: 1024px) { + margin-top: 24px + } + .title { font-size: 0; margin: 0; @@ -434,9 +591,7 @@ color: $gray-800; } } - } - } .inputEmail { @@ -486,6 +641,12 @@ max-width: 774px; position: relative; + @media screen and (max-width: 1024px) { + width: 100%; + max-width: 100%; + padding: 64px 0 32px; + } + .label { display: flex; flex-direction: column; @@ -499,11 +660,17 @@ font-size: 18px; line-height: 25px; color: $gray-500; + + @media screen and (max-width: 1024px) { + font-size: 16px; + line-height: 22px; + } } } :global(.vtex-store-components-3-x-inputGroup) { padding-top: 16px; + display: flex; :global(.vtex-input-prefix__group) { border: none; @@ -518,6 +685,11 @@ border-bottom: 1px solid $gray-500; background: transparent; padding: 0; + + @media screen and (max-width: 1024px) { + font-size: 12px; + line-height: 16px; + } } } } diff --git a/styles/sass/pages/product/vtex.tab-layout.scss b/styles/sass/pages/product/vtex.tab-layout.scss index c362b3b..d9c6884 100644 --- a/styles/sass/pages/product/vtex.tab-layout.scss +++ b/styles/sass/pages/product/vtex.tab-layout.scss @@ -4,7 +4,7 @@ padding: 0 40px; margin: 0; - @media screen and (min-width: 1920px) and (max-width: 2560px) { + @media screen and (min-width: 1920px) { margin: 6px 360px; padding: 0; } @@ -15,18 +15,40 @@ border-bottom: 1px solid $gray-100; height: 43px; justify-content: space-between; - padding: 0 70px; + padding: 0 64px; + + @media screen and (min-width: 1920px) { + height: 49px; + } + + @media screen and (max-width: 1024px) { + border-top: 1px solid $gray-100; + flex-direction: column; + height: fit-content; + padding: 16px 0 0 0; + margin: 0; + } // Títulos do header da descrição do produto .listItem { + @media screen and (max-width: 1024px) { + align-self: flex-start; + flex-direction: column; + height: fit-content; + padding: 0 0 16px; + margin: 0; + } + :global(.vtex-button) { + border: none; + + @media screen and (max-width: 1024px) { + width: 100%; + } + &:hover { - height: 43px; - border: none; background-color: transparent; - padding: 0; - margin: 0; } } @@ -38,8 +60,18 @@ text-transform: capitalize; padding: 0.25em 10px 0.32em; - &:hover { - padding: 0.25em 10px 0.32em; + @media screen and (min-width: 1920px) { + font-size: 24px; + line-height: 24px; + } + + @media screen and (max-width: 1024px) { + text-align: left; + flex-direction: column; + height: fit-content; + padding: 0 !important; + font-size: 18px; + line-height: 18px; } } } @@ -47,19 +79,39 @@ // Título ativo do header da descrição do produto .listItemActive { - :global(.vtex-button) { - background-color: white; - border: none; + @media screen and (max-width: 1024px) { + align-self: flex-start; + flex-direction: column; + height: fit-content; + padding: 0 0 16px; + margin: 0; } + + :global(.vtex-button) { + background-color: transparent; + width: 114px; + border: none; + + @media screen and (max-width: 1024px) { + width: 100%; + } + } + :global(.vtex-button__label) { color: $black; - background-color: $white; + background-color: transparent; border-bottom: 2px solid $black; - padding: 0.25em 10px 0.32em; + padding: 0; - &:hover { - border-bottom: 2px solid $black; - padding: 0.25em 10px 0.32em; + @media screen and (max-width: 1024px) { + flex-direction: column; + text-align: left; + height: fit-content; + padding: 0; + } + + @media screen and (max-width: 1024px) { + border: none; } } } @@ -75,6 +127,13 @@ align-items: flex-start; padding: 32px 32px 16px; + @media (max-width: 1024px) { + flex-direction: column; + gap: 16px; + padding: 16px 0 0 0; + border-bottom: 1px solid $gray-100; + } + // Imagem do produto .productImagesContainer { @@ -87,6 +146,11 @@ max-width: 632px; display: block; // max-width: 872px; + + @media screen and (max-width: 1024px) { + width: 100% !important; + max-width: 100%; + } } // Título da descrição do produto -- 2.34.1 From 2c71d5a52150a9b3a2727b3435bdc683e248a763 Mon Sep 17 00:00:00 2001 From: Eleonora Otz Date: Fri, 3 Feb 2023 16:55:24 -0300 Subject: [PATCH 21/21] feat: Finaliza detalhes de responsividade --- react/components/Html/styles.css | 2 +- store/blocks/minicart.jsonc | 3 +- store/blocks/pdp/product-tab-layout.jsonc | 160 ++++++++++++++++ store/blocks/pdp/product.jsonc | 175 ++---------------- styles/css/vtex.add-to-cart-button.css | 5 + styles/css/vtex.flex-layout.css | 6 + styles/css/vtex.product-summary.css | 10 +- styles/css/vtex.slider-layout.css | 41 +++- styles/css/vtex.store-components.css | 30 ++- styles/css/vtex.tab-layout.css | 44 ++++- .../product/vtex.add-to-cart-button.scss | 4 + .../sass/pages/product/vtex.flex-layout.scss | 7 + .../pages/product/vtex.product-summary.scss | 15 +- .../pages/product/vtex.slider-layout.scss | 44 ++++- .../pages/product/vtex.store-components.scss | 145 +++++---------- .../sass/pages/product/vtex.tab-layout.scss | 77 ++++++-- 16 files changed, 454 insertions(+), 314 deletions(-) create mode 100644 store/blocks/pdp/product-tab-layout.jsonc diff --git a/react/components/Html/styles.css b/react/components/Html/styles.css index e4c5c75..fd3a18d 100644 --- a/react/components/Html/styles.css +++ b/react/components/Html/styles.css @@ -10,7 +10,7 @@ [class*="html--buy-button"] :global(.vtex-button) { height: 49px; - max-width: 766px; + max-width: 806px; background: black; border: none; border-radius: 0; diff --git a/store/blocks/minicart.jsonc b/store/blocks/minicart.jsonc index 1366c10..a82979c 100644 --- a/store/blocks/minicart.jsonc +++ b/store/blocks/minicart.jsonc @@ -3,7 +3,8 @@ "props": { "addToCartFeedback": "customEvent", "customPixelEventId": "add-to-cart-button", - "text": "ADICIONAR À SACOLA" + "text": "ADICIONAR À SACOLA", + "blockClass": "add-to-cart-button" } }, diff --git a/store/blocks/pdp/product-tab-layout.jsonc b/store/blocks/pdp/product-tab-layout.jsonc new file mode 100644 index 0000000..b43fc2e --- /dev/null +++ b/store/blocks/pdp/product-tab-layout.jsonc @@ -0,0 +1,160 @@ + // Descrição + + { + "html#tab-layout": { + "props" : { + "testId": "tab-layout" + } + }, + + "tab-layout": { + "children": ["tab-list", "tab-content"], + "props": { + "blockClass": "tabLayout" + } + }, + + "tab-list": { + "children": [ + "tab-list.item#1", + "tab-list.item#2", + "tab-list.item#3", + "tab-list.item#4", + "tab-list.item#5" + ], + "props": { + "blockClass": "tabList" + } + }, + + "tab-content": { + "children": [ + "tab-content.item#1", + "tab-content.item#2", + "tab-content.item#3", + "tab-content.item#4", + "tab-content.item#5" + ], + "props": { + "blockClass": "tabContent" + } + }, + + "tab-list.item#1": { + "props": { + "tabId": "description#1", + "label": "Descrição", + "defaultActiveTab": true + } + }, + + "tab-list.item#2": { + "props": { + "tabId": "description#2", + "label": "Descrição" + } + }, + + "tab-list.item#3": { + "props": { + "tabId": "description#3", + "label": "Descrição" + } + }, + + "tab-list.item#4": { + "props": { + "tabId": "description#4", + "label": "Descrição" + } + }, + + "tab-list.item#5": { + "props": { + "tabId": "description#5", + "label": "Descrição" + } + }, + + "tab-content.item#1": { + "children": ["product-images#description", "rich-text#1"], + "props": { + "tabId": "description#1" + } + }, + "tab-content.item#2": { + "children": ["product-images#description", "rich-text#2"], + "props": { + "tabId": "description#2" + } + }, + "tab-content.item#3": { + "children": ["product-images#description", "rich-text#3"], + "props": { + "tabId": "description#3" + } + }, + "tab-content.item#4": { + "children": ["product-images#description", "rich-text#4"], + "props": { + "tabId": "description#4" + } + }, + "tab-content.item#5": { + "children": ["product-images#description", "rich-text#5"], + "props": { + "tabId": "description#5" + } + }, + + "product-images#description": { + "props": { + "aspectRatio": { + "desktop": "auto", + "phone": "auto" + }, + "showNavigationArrows": false, + "showPaginationDots": false, + "displayThumbnailsArrows": false, + "thumbnailsOrientation": "horizontal", + "zoomMode": "disabled", + "displayMode": "first-image" + } + }, + + "rich-text#1": { + "props": { + "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", + "textPosition": "CENTER", + "blockClass": "description-rich-text" + } + }, + "rich-text#2": { + "props": { + "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", + "textPosition": "CENTER", + "blockClass": "description-rich-text" + } + }, + "rich-text#3": { + "props": { + "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", + "textPosition": "CENTER", + "blockClass": "description-rich-text" + } + }, + "rich-text#4": { + "props": { + "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", + "textPosition": "CENTER", + "blockClass": "description-rich-text" + } + }, + "rich-text#5": { + "props": { + "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", + "textPosition": "CENTER", + "blockClass": "description-rich-text" + } + } +} diff --git a/store/blocks/pdp/product.jsonc b/store/blocks/pdp/product.jsonc index 1da3220..12fc1d4 100644 --- a/store/blocks/pdp/product.jsonc +++ b/store/blocks/pdp/product.jsonc @@ -3,7 +3,7 @@ "children": [ "html#breadcrumb", "condition-layout.product#availability", - "tab-layout", + "html#tab-layout", "rich-text#carousel", "list-context.product-list#product-carousel", "product-questions-and-answers", @@ -122,7 +122,7 @@ "product-gifts", "availability-subscriber", "rich-text#labelCep", - "shipping-simulator" + "html#shipping-simulator" ] }, @@ -142,6 +142,8 @@ "children": ["vtex.store-components:product-name"] }, + // Skus + "html#sku-selector": { "children": ["sku-selector"], "props": { @@ -204,6 +206,7 @@ "flex-layout.row#product-availability": { "props": { + "blockClass": "product-availability", "colGap": 7, "marginTop": 4, "marginBottom": 7, @@ -247,154 +250,6 @@ } }, - // Descrição - - "tab-layout": { - "children": ["tab-list", "tab-content"], - "props": { - "blockClass": "tabLayout" - } - }, - - "tab-list": { - "children": [ - "tab-list.item#1", - "tab-list.item#2", - "tab-list.item#3", - "tab-list.item#4", - "tab-list.item#5" - ], - "props": { - "blockClass": "tabList" - } - }, - - "tab-content": { - "children": [ - "tab-content.item#1", - "tab-content.item#2", - "tab-content.item#3", - "tab-content.item#4", - "tab-content.item#5" - ], - "props": { - "blockClass": "tabContent" - } - }, - - "tab-list.item#1": { - "props": { - "tabId": "description#1", - "label": "Descrição", - "defaultActiveTab": true - } - }, - - "tab-list.item#2": { - "props": { - "tabId": "description#2", - "label": "Descrição" - } - }, - - "tab-list.item#3": { - "props": { - "tabId": "description#3", - "label": "Descrição" - } - }, - - "tab-list.item#4": { - "props": { - "tabId": "description#4", - "label": "Descrição" - } - }, - - "tab-list.item#5": { - "props": { - "tabId": "description#5", - "label": "Descrição" - } - }, - - "tab-content.item#1": { - "children": ["product-images#description", "rich-text#1"], - "props": { - "tabId": "description#1" - } - }, - "tab-content.item#2": { - "children": ["product-images#description", "rich-text#2"], - "props": { - "tabId": "description#2" - } - }, - "tab-content.item#3": { - "children": ["product-images#description", "rich-text#3"], - "props": { - "tabId": "description#3" - } - }, - "tab-content.item#4": { - "children": ["product-images#description", "rich-text#4"], - "props": { - "tabId": "description#4" - } - }, - "tab-content.item#5": { - "children": ["product-images#description", "rich-text#5"], - "props": { - "tabId": "description#5" - } - }, - - "product-images#description": { - "props": { - "aspectRatio": { - "desktop": "auto", - "phone": "16:9" - }, - "showNavigationArrows": false, - "showPaginationDots": false, - "displayThumbnailsArrows": false, - "thumbnailsOrientation": "horizontal", - "zoomMode": "disabled", - "displayMode": "first-image" - } - }, - - "rich-text#1": { - "props": { - "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", - "textPosition": "CENTER" - } - }, - "rich-text#2": { - "props": { - "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", - "textPosition": "CENTER" - } - }, - "rich-text#3": { - "props": { - "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", - "textPosition": "CENTER" - } - }, - "rich-text#4": { - "props": { - "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", - "textPosition": "CENTER" - } - }, - "rich-text#5": { - "props": { - "text": "# Descrição do produto \n Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque. Sandália Lima Salto Bloco Baixo de amarração com palmilha levemente quadrada e aplicação de spikes na tira do cabedal. Possui variedade de cores no Prata Metalizado. Do 33 ao 40. Consulte disponibilidade de estoque.", - "textPosition": "CENTER" - } - }, - // Prateleira de produtos "rich-text#carousel": { @@ -443,11 +298,12 @@ ] }, - // "product-summary-image": { - // "props": { - // "aspectRatio": "1:1" - // } - // }, + "product-summary-image": { + "props": { + "aspectRatio": "1:1", + "showBadge": false + } + }, // Newsletter @@ -457,5 +313,14 @@ "placeholder": "Digite seu e-mail", "submit": "ENVIAR" } + }, + + // Informações de frete + + "html#shipping-simulator" : { + "props": { + "testId": "shipping-simulator" + }, + "children": ["shipping-simulator"] } } diff --git a/styles/css/vtex.add-to-cart-button.css b/styles/css/vtex.add-to-cart-button.css index cd587df..e86335b 100644 --- a/styles/css/vtex.add-to-cart-button.css +++ b/styles/css/vtex.add-to-cart-button.css @@ -14,4 +14,9 @@ text-align: center; color: #fff; padding: 7px 0; +} +@media screen and (max-width: 768px) { + .buttonText { + width: 168px; + } } \ No newline at end of file diff --git a/styles/css/vtex.flex-layout.css b/styles/css/vtex.flex-layout.css index f5c4c0d..899b74f 100644 --- a/styles/css/vtex.flex-layout.css +++ b/styles/css/vtex.flex-layout.css @@ -12,6 +12,12 @@ padding-top: 0; } +@media screen and (max-width: 1024px) { + .flexRowContent--product-availability { + flex-direction: column; + } +} + .flexRowContent--menu-link, .flexRowContent--main-header { padding: 0 0.5rem; diff --git a/styles/css/vtex.product-summary.css b/styles/css/vtex.product-summary.css index 215cc68..0abdbf6 100644 --- a/styles/css/vtex.product-summary.css +++ b/styles/css/vtex.product-summary.css @@ -19,7 +19,13 @@ } .nameContainer .brandName { font-weight: 400; - font-size: 14px; - line-height: 19px; + font-size: 18px; + line-height: 25px; color: #000000; +} +@media screen and (max-width: 1024px) { + .nameContainer .brandName { + font-size: 14px; + line-height: 19px; + } } \ No newline at end of file diff --git a/styles/css/vtex.slider-layout.css b/styles/css/vtex.slider-layout.css index 27b37b4..875005a 100644 --- a/styles/css/vtex.slider-layout.css +++ b/styles/css/vtex.slider-layout.css @@ -20,15 +20,30 @@ @media screen and (max-width: 1024px) { .sliderLayoutContainer { width: 100%; + padding: 0 40px; } } +.sliderLayoutContainer :global(.vtex-product-summary-2-x-containerNormal) { + max-width: unset !important; +} +.sliderLayoutContainer :global(.vtex-product-summary-2-x-containerNormal) :global(.vtex-product-summary-2-x-element) { + padding: 0; +} +.sliderLayoutContainer :global(.vtex-product-summary-2-x-imageNormal) { + height: 314px; + width: 105%; + max-height: unset !important; + object-fit: contain; +} +.sliderLayoutContainer :global(.vtex-product-summary-2-x-imageStackContainer) { + display: flex; +} .slideChildrenContainer { - width: 314px; padding-right: 16px; } -.listPrice { +:global(.vtex-store-components-3-x-listPrice) { font-weight: 400; font-size: 14px; line-height: 19px; @@ -36,13 +51,19 @@ margin: 0; padding-bottom: 8px; } -.listPrice .listPriceLabel { +@media screen and (max-width: 1024px) { + :global(.vtex-store-components-3-x-listPrice) { + font-size: 12px; + line-height: 16px; + } +} +:global(.vtex-store-components-3-x-listPrice) :global(.vtex-store-components-3-x-listPriceLabel) { display: none; } -.listPrice .currencyContainer::before { +:global(.vtex-store-components-3-x-listPrice) :global(.vtex-store-components-3-x-currencyContainer)::before { content: "de "; } -.listPrice .currencyContainer::after { +:global(.vtex-store-components-3-x-listPrice) :global(.vtex-store-components-3-x-currencyContainer)::after { content: " por"; } @@ -58,6 +79,12 @@ line-height: 33px; color: #000000; } +@media screen and (max-width: 1024px) { + :global(.vtex-store-components-3-x-sellingPrice) :global(.vtex-store-components-3-x-sellingPriceValue) { + font-size: 18px; + line-height: 25px; + } +} :global(.vtex-slider-layout-0-x-sliderRightArrow) { visibility: hidden; @@ -87,10 +114,6 @@ } } -:global(.vtex-store-components-3-x-discountInsideContainer) { - display: none; -} - .paginationDotsContainer { align-items: center; bottom: -30px; diff --git a/styles/css/vtex.store-components.css b/styles/css/vtex.store-components.css index 8435dbc..21221ed 100644 --- a/styles/css/vtex.store-components.css +++ b/styles/css/vtex.store-components.css @@ -35,7 +35,6 @@ .productImageTag--main { max-height: max-content !important; - max-width: max-content; max-width: 100%; } @@ -77,6 +76,9 @@ order: 2; margin-bottom: 16px; } +.skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorItem--selected .diagonalCross { + color: #000000; +} .skuSelectorContainer .skuSelectorSubcontainer--cor .skuSelectorNameContainer { margin: 0; } @@ -123,6 +125,9 @@ .skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorNameContainer .skuSelectorOptionsList { margin: 0; } +.skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorNameContainer .skuSelectorItem--selected .diagonalCross { + color: #000000; +} .skuSelectorContainer .skuSelectorSubcontainer--tamanho .skuSelectorItemTextValue { padding: 0; margin: auto; @@ -231,6 +236,10 @@ } .shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input) :global(.vtex-input-prefix__group) :global(.vtex-address-form-4-x-input) { padding: 16.5px 16px; + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: #afafaf; } .shippingContainer :global(.vtex-address-form__postalCode) :global(.vtex-input) :global(.vtex-input-prefix__group) :global(.vtex-address-form-4-x-input)::placeholder { font-weight: 400; @@ -269,11 +278,15 @@ } .shippingContainer :global(.vtex-button) { font-size: 0; - background: black; + background: #000000; width: 49px; height: 49px; border: none; border-radius: 0; + cursor: pointer; +} +.shippingContainer :global(.vtex-button):hover { + opacity: 0.8; } .shippingContainer :global(.vtex-button) :global(.vtex-button__label)::after { content: "Ok"; @@ -410,6 +423,10 @@ line-height: 19px; color: #868686; } +.subscriberContainer .form { + width: 100%; + margin: 0; +} .subscriberContainer .form .content { display: grid; grid-template-areas: " nome email" " submit submit"; @@ -454,6 +471,9 @@ border: none; border-radius: 0; } +.subscriberContainer .form .content .submit :global(.vtex-button):hover { + opacity: 0.8; +} .subscriberContainer .form .content .submit :global(.vtex-button__label) { font-size: 0; } @@ -471,6 +491,9 @@ background: #000000; margin-top: 96px; } +.newsletter :global(.vtex-store-components-3-x-container) { + margin: auto; +} .newsletter :global(.vtex-store-components-3-x-form) { padding: 32px 0 13px; width: 774px; @@ -539,6 +562,9 @@ background-color: transparent; border: none; } +.newsletter :global(.vtex-store-components-3-x-form) .buttonContainer :global(.vtex-button):hover { + opacity: 0.8; +} .newsletter :global(.vtex-store-components-3-x-form) .buttonContainer :global(.vtex-button__label) { border-bottom: 3px solid #929292; padding: 6px 17px 12px !important; diff --git a/styles/css/vtex.tab-layout.css b/styles/css/vtex.tab-layout.css index 1aa6bc2..2db2f49 100644 --- a/styles/css/vtex.tab-layout.css +++ b/styles/css/vtex.tab-layout.css @@ -65,6 +65,9 @@ text-transform: capitalize; padding: 0.25em 10px 0.32em; } +:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button__label):hover { + color: #929292; +} @media screen and (min-width: 1920px) { :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItem :global(.vtex-button__label) { font-size: 24px; @@ -106,6 +109,9 @@ border-bottom: 2px solid #000000; padding: 0; } +:global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button__label):hover { + color: #000000; +} @media screen and (max-width: 1024px) { :global(.vtex-tab-layout-0-x-container) .listContainer--tabList .listItemActive :global(.vtex-button__label) { flex-direction: column; @@ -139,26 +145,52 @@ max-width: 50%; } :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-store-components-3-x-productImageTag) { - width: inherit !important; - max-width: 632px; + width: 100%; + max-width: 100%; display: block; } +:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-container--description-rich-text) { + max-width: 50%; +} @media screen and (max-width: 1024px) { - :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-store-components-3-x-productImageTag) { - width: 100% !important; + :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-container--description-rich-text) { max-width: 100%; } } -:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-heading) { +:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-container--description-rich-text) :global(.vtex-rich-text-0-x-heading) { font-weight: 400; font-size: 24px; line-height: 32px; color: #575757; margin-top: 0; } -:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-paragraph) { +@media screen and (min-width: 1920px) { + :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-container--description-rich-text) :global(.vtex-rich-text-0-x-heading) { + font-size: 32px; + line-height: 32px; + } +} +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-container--description-rich-text) :global(.vtex-rich-text-0-x-heading) { + font-size: 20px; + line-height: 32px; + } +} +:global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-container--description-rich-text) :global(.vtex-rich-text-0-x-paragraph) { font-weight: 400; font-size: 16px; line-height: 22px; color: #929292; +} +@media screen and (min-width: 1920px) { + :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-container--description-rich-text) :global(.vtex-rich-text-0-x-paragraph) { + font-size: 18px; + line-height: 25px; + } +} +@media screen and (max-width: 1024px) { + :global(.vtex-tab-layout-0-x-container) :global(.vtex-tab-layout-0-x-contentContainer) .contentItem :global(.vtex-rich-text-0-x-container--description-rich-text) :global(.vtex-rich-text-0-x-paragraph) { + font-size: 14px; + line-height: 19px; + } } \ No newline at end of file diff --git a/styles/sass/pages/product/vtex.add-to-cart-button.scss b/styles/sass/pages/product/vtex.add-to-cart-button.scss index 28ee7ae..2eeca3b 100644 --- a/styles/sass/pages/product/vtex.add-to-cart-button.scss +++ b/styles/sass/pages/product/vtex.add-to-cart-button.scss @@ -5,4 +5,8 @@ text-align: center; color: $white; padding: 7px 0; + + @media screen and (max-width: 768px) { + width: 168px; + } } diff --git a/styles/sass/pages/product/vtex.flex-layout.scss b/styles/sass/pages/product/vtex.flex-layout.scss index 16063bf..456815c 100644 --- a/styles/sass/pages/product/vtex.flex-layout.scss +++ b/styles/sass/pages/product/vtex.flex-layout.scss @@ -1,6 +1,13 @@ .flexRowContent { margin: 0; padding-top: 0; + +} + +.flexRowContent--product-availability { + @media screen and (max-width: 1024px) { + flex-direction: column; + } } .flexRowContent--menu-link, diff --git a/styles/sass/pages/product/vtex.product-summary.scss b/styles/sass/pages/product/vtex.product-summary.scss index f724285..f893b4d 100644 --- a/styles/sass/pages/product/vtex.product-summary.scss +++ b/styles/sass/pages/product/vtex.product-summary.scss @@ -9,12 +9,6 @@ align-items: center; } -// .imageNormal { -// width: 314px; -// height: 314px; -// max-height: 100%; -// } - // Nome do produto .nameContainer { @@ -22,8 +16,13 @@ .brandName { font-weight: 400; - font-size: 14px; - line-height: 19px; + font-size: 18px; + line-height: 25px; color: $black; + + @media screen and (max-width: 1024px) { + font-size: 14px; + line-height: 19px; + } } } diff --git a/styles/sass/pages/product/vtex.slider-layout.scss b/styles/sass/pages/product/vtex.slider-layout.scss index 697eea7..f9b9374 100644 --- a/styles/sass/pages/product/vtex.slider-layout.scss +++ b/styles/sass/pages/product/vtex.slider-layout.scss @@ -13,19 +13,39 @@ @media screen and (max-width: 1024px) { width: 100%; + padding: 0 40px; + } + + :global(.vtex-product-summary-2-x-containerNormal) { + max-width: unset !important; + + :global(.vtex-product-summary-2-x-element) { + padding: 0; + } + } + + :global(.vtex-product-summary-2-x-imageNormal) { + height: 314px; + width: 105%; + max-height: unset !important; + object-fit: contain; + } + + :global(.vtex-product-summary-2-x-imageStackContainer) { + display: flex; } } // Informações de cada produto .slideChildrenContainer { - width: 314px; + // width: 314px; padding-right: 16px; } // Preço sem desconto -.listPrice { +:global(.vtex-store-components-3-x-listPrice) { font-weight: 400; font-size: 14px; line-height: 19px; @@ -33,11 +53,16 @@ margin: 0; padding-bottom: 8px; - .listPriceLabel { + @media screen and (max-width: 1024px) { + font-size: 12px; + line-height: 16px; + } + + :global(.vtex-store-components-3-x-listPriceLabel) { display: none; } - .currencyContainer { + :global(.vtex-store-components-3-x-currencyContainer) { &::before { content: "de "; } @@ -62,6 +87,11 @@ font-size: 24px; line-height: 33px; color: $black; + + @media screen and (max-width: 1024px) { + font-size: 18px; + line-height: 25px; + } } } @@ -95,12 +125,6 @@ } } -// Desconto - -:global(.vtex-store-components-3-x-discountInsideContainer) { - display: none; -} - // Dots da prateleira de produtos .paginationDotsContainer { diff --git a/styles/sass/pages/product/vtex.store-components.scss b/styles/sass/pages/product/vtex.store-components.scss index 309cdde..648aef4 100644 --- a/styles/sass/pages/product/vtex.store-components.scss +++ b/styles/sass/pages/product/vtex.store-components.scss @@ -29,8 +29,8 @@ .productImageTag--main { max-height: max-content !important; - max-width: max-content; max-width: 100%; + // max-width: max-content; // max-width: 664px; } @@ -76,6 +76,13 @@ order: 2; margin-bottom: 16px; + .skuSelectorItem--selected { + + .diagonalCross { + color: $black; + } + } + .skuSelectorNameContainer { margin: 0; } @@ -135,6 +142,13 @@ .skuSelectorOptionsList { margin: 0; } + + .skuSelectorItem--selected { + + .diagonalCross { + color: $black; + } + } } .skuSelectorItemTextValue { @@ -256,6 +270,10 @@ :global(.vtex-address-form-4-x-input) { padding: 16.5px 16px; + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: $gray-400; &::placeholder { font-weight: 400; @@ -266,6 +284,9 @@ } } } + + // Não sei meu CEP + :global(.vtex-address-form__postalCode-forgottenURL) { position: absolute; right: -57px; @@ -279,7 +300,7 @@ display: flex; align-items: center; text-decoration-line: underline; - color: #000000 !important; + color: $black !important; } @media (max-width: 560px) { @@ -299,11 +320,16 @@ :global(.vtex-button) { font-size: 0; - background: black; + background: $black; width: 49px; height: 49px; border: none; border-radius: 0; + cursor: pointer; + + &:hover { + opacity: 0.8; + } :global(.vtex-button__label)::after { content: "Ok"; @@ -318,102 +344,6 @@ } } -// .shippingContainer { -// display: flex; -// width: 409px; -// height: 49px; - -// @media (max-width: 560px) { -// width: 296px; -// } - -// :global(.vtex-address-form__postalCode) { -// display: flex; -// align-items: center; -// padding-bottom: 0; - -// // @media screen and (min-width: 280px) and (max-width: 768px) { -// // max-width: 296px; -// // } -// } - -// :global(.vtex-input-prefix__group) { -// width: 280px; -// height: 49px; -// border-radius: 0; -// border: 1px solid $gray-1000; -// grid-area: input; - -// :global(.vtex-address-form-4-x-input) { -// padding: 16.5px 16px; - -// &::placeholder { -// font-weight: 400; -// font-size: 12px; -// line-height: 16px; -// color: $gray-400; -// } -// } -// } - -// :global(.vtex-input__label) { -// font-size: 0; - -// &::after { -// content: "CALCULAR FRETE:"; -// font-weight: 400; -// font-size: 14px; -// line-height: 19px; -// color: $gray-500; -// } -// } - -// :global(.vtex-button) { -// font-size: 0; -// position: relative; -// top: 27px; -// right: 147px; -// width: 49px; -// height: 49px; -// margin-top: 0; -// border: none; -// border-radius: 0; -// background-color: $black; -// cursor: pointer; -// grid-area: button; - -// &::after { -// content: "OK"; -// font-size: 14px; -// line-height: 19px; -// font-weight: 600; -// color: white; -// } -// } - -// // Não sei meu CEP - -// :global(.vtex-address-form__postalCode-forgottenURL) { -// grid-area: forgotten; -// padding: 0; -// position: relative; -// left: 32px; -// top: 10px; - -// :last-child { -// color: $black; -// font-weight: 400; -// font-size: 12px; -// line-height: 16px; -// text-decoration: underline; - -// :global(.vtex__icon-external-link) { -// display: none; -// } -// } -// } -// } - :global(.vtex-button__label) { height: fit-content; } @@ -469,7 +399,6 @@ font-size: 14px; line-height: 19px; color: $gray-700; - // margin-right: 40px; } } @@ -559,6 +488,9 @@ } .form { + width: 100%; + margin: 0; + .content { display: grid; grid-template-areas: @@ -609,6 +541,10 @@ background-color: $black; border: none; border-radius: 0; + + &:hover { + opacity: 0.8; + } } :global(.vtex-button__label) { @@ -631,10 +567,15 @@ // Newsletter .newsletter { + display: block; background: $black; margin-top: 96px; + :global(.vtex-store-components-3-x-container) { + margin: auto; + } + :global(.vtex-store-components-3-x-form) { padding: 32px 0 13px; width: 774px; @@ -704,6 +645,10 @@ color: $white; background-color: transparent; border: none; + + &:hover { + opacity: 0.8; + } } :global(.vtex-button__label) { diff --git a/styles/sass/pages/product/vtex.tab-layout.scss b/styles/sass/pages/product/vtex.tab-layout.scss index d9c6884..cada9fb 100644 --- a/styles/sass/pages/product/vtex.tab-layout.scss +++ b/styles/sass/pages/product/vtex.tab-layout.scss @@ -60,6 +60,10 @@ text-transform: capitalize; padding: 0.25em 10px 0.32em; + &:hover { + color: $gray-500; + } + @media screen and (min-width: 1920px) { font-size: 24px; line-height: 24px; @@ -103,6 +107,10 @@ border-bottom: 2px solid $black; padding: 0; + &:hover { + color: $black; + } + @media screen and (max-width: 1024px) { flex-direction: column; text-align: left; @@ -134,7 +142,7 @@ border-bottom: 1px solid $gray-100; } - // Imagem do produto + // Imagem da descrição do produto .productImagesContainer { width: 50%; @@ -142,35 +150,64 @@ } :global(.vtex-store-components-3-x-productImageTag) { - width: inherit !important; - max-width: 632px; + width: 100%; + max-width: 100%; display: block; // max-width: 872px; + // @media screen and (max-width: 1024px) { + // width: 100% !important; + // max-width: 100%; + // } + } + + // Conteúdo de texto da descrição do produto + + :global(.vtex-rich-text-0-x-container--description-rich-text) { + max-width: 50%; + @media screen and (max-width: 1024px) { - width: 100% !important; max-width: 100%; } - } - // Título da descrição do produto + // Título da descrição do produto - :global(.vtex-rich-text-0-x-heading) { - font-weight: 400; - font-size: 24px; - line-height: 32px; - color: $gray-600; - margin-top: 0; - } + :global(.vtex-rich-text-0-x-heading) { + font-weight: 400; + font-size: 24px; + line-height: 32px; + color: $gray-600; + margin-top: 0; - // Texto descrição do produto + @media screen and (min-width: 1920px) { + font-size: 32px; + line-height: 32px; + } - :global(.vtex-rich-text-0-x-paragraph) { - font-weight: 400; - font-size: 16px; - line-height: 22px; - color: $gray-500; - // width: 50%; + @media screen and (max-width: 1024px) { + font-size: 20px; + line-height: 32px; + } + } + + // Texto descrição do produto + + :global(.vtex-rich-text-0-x-paragraph) { + font-weight: 400; + font-size: 16px; + line-height: 22px; + color: $gray-500; + + @media screen and (min-width: 1920px) { + font-size: 18px; + line-height: 25px; + } + + @media screen and (max-width: 1024px) { + font-size: 14px; + line-height: 19px; + } + } } } } -- 2.34.1