shoplazza-cli 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/.editorconfig +28 -0
  2. package/.prettierrc +9 -0
  3. package/LICENSE +21 -0
  4. package/README.md +208 -0
  5. package/bin/shoplazza +117 -0
  6. package/fixtures/assets/blog.scss +74 -0
  7. package/fixtures/assets/cart_modal.scss +450 -0
  8. package/fixtures/assets/collection_detail.js +234 -0
  9. package/fixtures/assets/collection_detail.scss +345 -0
  10. package/fixtures/assets/collection_list.scss +11 -0
  11. package/fixtures/assets/collection_slider.scss +169 -0
  12. package/fixtures/assets/feature_columns.scss +26 -0
  13. package/fixtures/assets/feature_product.scss +109 -0
  14. package/fixtures/assets/footer.js +58 -0
  15. package/fixtures/assets/footer.scss +337 -0
  16. package/fixtures/assets/four_images.scss +29 -0
  17. package/fixtures/assets/gallery.scss +55 -0
  18. package/fixtures/assets/header.js +178 -0
  19. package/fixtures/assets/header.scss +929 -0
  20. package/fixtures/assets/image_text.scss +72 -0
  21. package/fixtures/assets/logo_bar.scss +11 -0
  22. package/fixtures/assets/newsletter.scss +90 -0
  23. package/fixtures/assets/not_found.scss +39 -0
  24. package/fixtures/assets/page_detail.scss +16 -0
  25. package/fixtures/assets/pagination.scss +150 -0
  26. package/fixtures/assets/postcss.config.js +6 -0
  27. package/fixtures/assets/product_description.scss +88 -0
  28. package/fixtures/assets/product_detail.js +634 -0
  29. package/fixtures/assets/product_detail.scss +1106 -0
  30. package/fixtures/assets/relative_product.scss +45 -0
  31. package/fixtures/assets/reviews.scss +70 -0
  32. package/fixtures/assets/rich_text.scss +71 -0
  33. package/fixtures/assets/search.js +87 -0
  34. package/fixtures/assets/search.scss +67 -0
  35. package/fixtures/assets/slide.scss +51 -0
  36. package/fixtures/assets/slider.scss +141 -0
  37. package/fixtures/assets/theme.css +976 -0
  38. package/fixtures/assets/theme.scss +1100 -0
  39. package/fixtures/assets/three_images.scss +20 -0
  40. package/fixtures/assets/tools.scss +23 -0
  41. package/fixtures/assets/two_images.scss +24 -0
  42. package/fixtures/assets/video.scss +45 -0
  43. package/fixtures/assets/video_text.scss +63 -0
  44. package/fixtures/config/settings_data.json +107 -0
  45. package/fixtures/config/settings_schema.json +690 -0
  46. package/fixtures/layout/theme.liquid +76 -0
  47. package/fixtures/locales/ar-SA.json +212 -0
  48. package/fixtures/locales/de-DE.json +290 -0
  49. package/fixtures/locales/en-US.json +290 -0
  50. package/fixtures/locales/es-ES.json +290 -0
  51. package/fixtures/locales/fr-FR.json +290 -0
  52. package/fixtures/locales/id-ID.json +212 -0
  53. package/fixtures/locales/it-IT.json +212 -0
  54. package/fixtures/locales/ja-JP.json +289 -0
  55. package/fixtures/locales/ko-KR.json +290 -0
  56. package/fixtures/locales/nl-NL.json +290 -0
  57. package/fixtures/locales/pl-PL.json +290 -0
  58. package/fixtures/locales/pt-PT.json +212 -0
  59. package/fixtures/locales/ru-RU.json +212 -0
  60. package/fixtures/locales/th-TH.json +212 -0
  61. package/fixtures/locales/zh-CN.json +290 -0
  62. package/fixtures/locales/zh-TW.json +290 -0
  63. package/fixtures/sections/apps.liquid +47 -0
  64. package/fixtures/sections/blog.liquid +137 -0
  65. package/fixtures/sections/collection_desc.liquid +34 -0
  66. package/fixtures/sections/collection_detail.liquid +436 -0
  67. package/fixtures/sections/collection_image.liquid +104 -0
  68. package/fixtures/sections/collection_list.liquid +161 -0
  69. package/fixtures/sections/collection_name.liquid +34 -0
  70. package/fixtures/sections/collection_slider.liquid +330 -0
  71. package/fixtures/sections/feature_columns.liquid +275 -0
  72. package/fixtures/sections/feature_product.liquid +227 -0
  73. package/fixtures/sections/footer.liquid +488 -0
  74. package/fixtures/sections/four_images.liquid +160 -0
  75. package/fixtures/sections/gallery.liquid +258 -0
  76. package/fixtures/sections/header.liquid +1157 -0
  77. package/fixtures/sections/html.liquid +40 -0
  78. package/fixtures/sections/image_text.liquid +350 -0
  79. package/fixtures/sections/instagram_plus.liquid +393 -0
  80. package/fixtures/sections/logo_bar.liquid +183 -0
  81. package/fixtures/sections/newsletter.liquid +225 -0
  82. package/fixtures/sections/not_found.liquid +39 -0
  83. package/fixtures/sections/overlay_image.liquid +648 -0
  84. package/fixtures/sections/page_detail.liquid +39 -0
  85. package/fixtures/sections/photo_collection.liquid +433 -0
  86. package/fixtures/sections/product_description.liquid +208 -0
  87. package/fixtures/sections/product_detail.liquid +611 -0
  88. package/fixtures/sections/products.liquid +216 -0
  89. package/fixtures/sections/relative_product.liquid +121 -0
  90. package/fixtures/sections/reviews.liquid +115 -0
  91. package/fixtures/sections/rich_text.liquid +157 -0
  92. package/fixtures/sections/search.liquid +163 -0
  93. package/fixtures/sections/slide.liquid +719 -0
  94. package/fixtures/sections/three_images.liquid +157 -0
  95. package/fixtures/sections/two_images.liquid +125 -0
  96. package/fixtures/sections/video.liquid +95 -0
  97. package/fixtures/sections/video_text.liquid +128 -0
  98. package/fixtures/snippets/bgset.liquid +21 -0
  99. package/fixtures/snippets/card_title.liquid +8 -0
  100. package/fixtures/snippets/cart_modal.liquid +74 -0
  101. package/fixtures/snippets/collection.liquid +77 -0
  102. package/fixtures/snippets/collection_filter_modal.liquid +56 -0
  103. package/fixtures/snippets/default_image_4.liquid +14 -0
  104. package/fixtures/snippets/default_image_6.liquid +18 -0
  105. package/fixtures/snippets/default_image_8.liquid +23 -0
  106. package/fixtures/snippets/four_images_item.liquid +8 -0
  107. package/fixtures/snippets/header_ads.liquid +95 -0
  108. package/fixtures/snippets/hero_image.liquid +94 -0
  109. package/fixtures/snippets/icon_video_play_large.liquid +1 -0
  110. package/fixtures/snippets/icon_video_play_medium.liquid +4 -0
  111. package/fixtures/snippets/icon_video_play_small.liquid +4 -0
  112. package/fixtures/snippets/lazyimg.liquid +22 -0
  113. package/fixtures/snippets/lazyimg_art.liquid +36 -0
  114. package/fixtures/snippets/lazysizes.liquid +41 -0
  115. package/fixtures/snippets/link.liquid +2 -0
  116. package/fixtures/snippets/pagination.liquid +48 -0
  117. package/fixtures/snippets/product.liquid +126 -0
  118. package/fixtures/snippets/product_art_tpl.liquid +152 -0
  119. package/fixtures/snippets/product_info_body.liquid +337 -0
  120. package/fixtures/snippets/product_info_tpl.liquid +423 -0
  121. package/fixtures/snippets/product_label.liquid +46 -0
  122. package/fixtures/snippets/settings.liquid +295 -0
  123. package/fixtures/snippets/social-meta-tags.liquid +106 -0
  124. package/fixtures/snippets/video_html.liquid +11 -0
  125. package/fixtures/snippets/video_source.liquid +98 -0
  126. package/fixtures/snippets/video_thumb_icon.liquid +2 -0
  127. package/fixtures/templates/404.liquid +1 -0
  128. package/fixtures/templates/collection.liquid +92 -0
  129. package/fixtures/templates/index.liquid +206 -0
  130. package/fixtures/templates/page.liquid +1 -0
  131. package/fixtures/templates/product.liquid +99 -0
  132. package/fixtures/templates/search.liquid +1 -0
  133. package/jest.config.js +192 -0
  134. package/lib/__tests__/log.test.js +15 -0
  135. package/lib/__tests__/utils.test.js +69 -0
  136. package/lib/auth/__mocks__/getCode.js +7 -0
  137. package/lib/auth/__mocks__/index.js +0 -0
  138. package/lib/auth/child.js +23 -0
  139. package/lib/auth/getCode.js +35 -0
  140. package/lib/auth/index.js +91 -0
  141. package/lib/commands/__tests__/login.test.js +77 -0
  142. package/lib/commands/__tests__/logout.test.js +29 -0
  143. package/lib/commands/__tests__/store.test.js +44 -0
  144. package/lib/commands/__tests__/switch.test.js +45 -0
  145. package/lib/commands/login.js +99 -0
  146. package/lib/commands/logout.js +14 -0
  147. package/lib/commands/store.js +14 -0
  148. package/lib/commands/switch.js +52 -0
  149. package/lib/commands/theme/__tests__/delete.test.js +49 -0
  150. package/lib/commands/theme/__tests__/init.test.js +21 -0
  151. package/lib/commands/theme/__tests__/list.test.js +80 -0
  152. package/lib/commands/theme/__tests__/package.test.js +17 -0
  153. package/lib/commands/theme/__tests__/publish.test.js +61 -0
  154. package/lib/commands/theme/__tests__/pull.test.js +69 -0
  155. package/lib/commands/theme/__tests__/push.test.js +63 -0
  156. package/lib/commands/theme/__tests__/serve.test.js +107 -0
  157. package/lib/commands/theme/delete.js +64 -0
  158. package/lib/commands/theme/init.js +51 -0
  159. package/lib/commands/theme/list.js +28 -0
  160. package/lib/commands/theme/package.js +37 -0
  161. package/lib/commands/theme/publish.js +56 -0
  162. package/lib/commands/theme/pull.js +62 -0
  163. package/lib/commands/theme/push.js +106 -0
  164. package/lib/commands/theme/serve.js +153 -0
  165. package/lib/commands/theme/share.js +20 -0
  166. package/lib/commands/version.js +6 -0
  167. package/lib/config.js +5 -0
  168. package/lib/db/__mocks__/index.js +9 -0
  169. package/lib/db/__tests__/analytics.test.js +19 -0
  170. package/lib/db/__tests__/user.test.js +20 -0
  171. package/lib/db/analytics.js +48 -0
  172. package/lib/db/index.js +9 -0
  173. package/lib/db/user.js +68 -0
  174. package/lib/log.js +13 -0
  175. package/lib/openAPI/__mocks__/index.js +20 -0
  176. package/lib/openAPI/api.js +76 -0
  177. package/lib/openAPI/index.js +46 -0
  178. package/lib/report.js +37 -0
  179. package/lib/tracing.js +50 -0
  180. package/lib/utils.js +48 -0
  181. package/package.json +54 -0
@@ -0,0 +1,929 @@
1
+ @import './tools.scss';
2
+
3
+ $menu_width: px-to-rem(320);
4
+ $min_width: px-to-rem(270);
5
+
6
+ .c-text-truncate {
7
+ text-overflow: ellipsis;
8
+ white-space: nowrap;
9
+ overflow-x: hidden;
10
+ }
11
+
12
+ .c-rounded-lg {
13
+ border-radius: 0.5rem;
14
+ }
15
+
16
+ .type-text-font-family,
17
+ .type-heading-font-family {
18
+ font-style: normal;
19
+ font-weight: 400;
20
+ }
21
+
22
+ .c-inset-0 {
23
+ top: 0;
24
+ right: 0;
25
+ bottom: 0;
26
+ left: 0;
27
+ }
28
+
29
+ .c-mt-5 {
30
+ margin-top: 1.25rem;
31
+ }
32
+
33
+ .c-text-title-color {
34
+ color: #3D4246;
35
+ }
36
+
37
+ .c-text-menu-font-size {
38
+ font-size: 14px;
39
+ }
40
+
41
+ .c-leading-1\.3 {
42
+ line-height: 1.3;
43
+ }
44
+
45
+ .c-mt-2 {
46
+ margin-top: 0.5rem;
47
+ }
48
+
49
+ .c-tracking-normal {
50
+ letter-spacing: 0;
51
+ }
52
+
53
+ .c-normal-case {
54
+ text-transform: none;
55
+ }
56
+
57
+ .c-text-text-color {
58
+ color: #3D4246;
59
+ }
60
+
61
+ .c-text-text-font-size {
62
+ font-size: 14px;
63
+ font-weight: 600;
64
+ }
65
+
66
+ .c-leading-none {
67
+ line-height: 1;
68
+ }
69
+
70
+ .c-truncate {
71
+ overflow: hidden;
72
+ text-overflow: ellipsis;
73
+ white-space: nowrap;
74
+ }
75
+
76
+ .c-text-sm {
77
+ font-size: 0.875rem;
78
+ line-height: 1.25rem;
79
+ }
80
+
81
+ .c-text-price-color {
82
+ color: #3D4246;
83
+ }
84
+
85
+ .c-text-price-font-size {
86
+ font-size: 14px;
87
+ font-weight: 600;
88
+ }
89
+
90
+ .no-scroll {
91
+ overflow: hidden;
92
+ }
93
+
94
+ .logo-bg-color{
95
+ position: relative;
96
+ &:after{
97
+ content:"";
98
+ position: absolute;
99
+ height: calc(100% - 63px);
100
+ width: 100%;//不能用100vw,Window有留白
101
+ bottom: 0;
102
+ }
103
+ }
104
+
105
+ /* header starts */
106
+ .header {
107
+ height: px-to-rem(53);
108
+
109
+ @media ($pc) {
110
+ height: px-to-rem(63);
111
+ margin: 0 px-to-rem(-30);
112
+ }
113
+
114
+ &__popover-item {
115
+ &:hover {
116
+ background-color: #eee;
117
+ }
118
+ }
119
+
120
+ &__wrapper {
121
+ width: 100%;
122
+ background: white;
123
+ z-index: 99;
124
+ top: unset;
125
+ box-shadow: none;
126
+ position: relative;
127
+
128
+ &.header__fixed{
129
+ top: 0;
130
+ box-shadow: 0 2px 6px 0 rgba(0,0,0,0.1);
131
+ position: fixed;
132
+ }
133
+ }
134
+
135
+ &__icon {
136
+ position: relative;
137
+ cursor: pointer;
138
+ text-decoration: none;
139
+ color: #212121;
140
+ margin-left:px-to-rem(30);
141
+
142
+ @media ($mobile) {
143
+ padding: 0 px-to-rem(10);
144
+ margin: 0;
145
+
146
+ }
147
+
148
+ .sep-font-close,.sep-font-list {
149
+ font-size: px-to-rem(18) !important;
150
+ }
151
+
152
+ .sep-font {
153
+ font-size: px-to-rem(26);
154
+ z-index: 1;
155
+ }
156
+
157
+ &_left-inline {
158
+ height: px-to-rem(58);
159
+ }
160
+
161
+ &:empty{
162
+ margin: 0;
163
+ }
164
+ }
165
+
166
+ &__icon-row {
167
+ &_left-inline {
168
+ display: block;
169
+ height: unset;
170
+ }
171
+ }
172
+
173
+ &__cart-count {
174
+ position: absolute;
175
+ width: px-to-rem(21);
176
+ height: px-to-rem(21);
177
+ line-height: px-to-rem(21);
178
+ border-radius: 50%;
179
+ text-align: center;
180
+ font-size: px-to-rem(13);
181
+ transform: scale(0.9);
182
+ //超过99件商品,右上角需要+号
183
+ .header__cart-count_over {
184
+ &::after {
185
+ content: '+';
186
+ position: relative;
187
+ top: -6px;
188
+ right: 2px;
189
+ font-size: 10px;
190
+ transform: scale(0.8);
191
+ }
192
+ }
193
+ //购物袋需要内置数字
194
+ &_bag {
195
+ top: px-to-rem(13);
196
+ right: px-to-rem(3);
197
+ }
198
+ //购物车需要圆圈数字
199
+ &_cart {
200
+ top: px-to-rem(-3);
201
+ right: px-to-rem(-10);
202
+ color: #fff;
203
+ background: #de0a00;
204
+
205
+ @media ($mobile) {
206
+ //top: px-to-rem(-6);
207
+ right: px-to-rem(-8);
208
+ }
209
+
210
+ .header__cart-count_over {
211
+ display: inline-block;
212
+ position: relative;
213
+ top: 1px;
214
+ transform: scale(0.8);
215
+ }
216
+ }
217
+ }
218
+
219
+ &__logo {
220
+ width: 100%;
221
+ height: 100%;
222
+ font-size: px-to-rem(20);
223
+ color: inherit;
224
+ padding: px-to-rem(4) 0;
225
+ line-height: px-to-rem(48);
226
+
227
+ &:hover {
228
+ color: unset !important;
229
+ }
230
+
231
+ img {
232
+ max-width: px-to-rem(185);
233
+ max-height: px-to-rem(35);
234
+ }
235
+
236
+ @media ($pc) {
237
+ font-size: px-to-rem(28);
238
+
239
+ img {
240
+ max-width: 200px;
241
+ max-height: 50px;
242
+ }
243
+ }
244
+ }
245
+
246
+ &__logo-wrap,
247
+ &__icon-wrap {
248
+ position: relative;
249
+ z-index: 4;
250
+ padding-left: px-to-rem(15);
251
+ padding-right: px-to-rem(15);
252
+ height: px-to-rem(63);
253
+ }
254
+
255
+ &__account {
256
+ position: relative;
257
+
258
+ &-popover {
259
+ min-width: 126px;
260
+ max-width: 200px;
261
+ color: #000;
262
+ background: #fff;
263
+ position: absolute;
264
+ z-index: 9;
265
+ text-align: left;
266
+ font-size: px-to-rem(14);
267
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.2);
268
+ line-height: 38px;
269
+ white-space: nowrap;
270
+ }
271
+
272
+ &:hover {
273
+ .header__account-popover {
274
+ display: block !important;
275
+
276
+ &:hover {
277
+ display: block !important;
278
+ }
279
+ }
280
+ }
281
+
282
+ .header__popover-item {
283
+ line-height: px-to-rem(44);
284
+ overflow: hidden;
285
+ text-overflow: ellipsis;
286
+ white-space: nowrap;
287
+
288
+ a,
289
+ div {
290
+ color: inherit;
291
+ display: inline-block;
292
+ padding: 0 px-to-rem(20);
293
+ width: 100%;
294
+ }
295
+ }
296
+
297
+ ul {
298
+ list-style: none;
299
+ margin: 0;
300
+ padding: 0;
301
+ }
302
+ }
303
+
304
+ &__currency {
305
+ &-flag {
306
+ width: px-to-rem(24);
307
+ margin-right: px-to-rem(10);
308
+ border: 1px solid #212121;
309
+ }
310
+
311
+ &-select {
312
+ border: 1px solid #efefef;
313
+ background: #fff;
314
+
315
+ .header__popover-item {
316
+ color: #212121;
317
+ font-size: px-to-rem(14);
318
+ line-height: px-to-rem(45);
319
+ padding: 0 px-to-rem(20);
320
+ cursor: pointer;
321
+
322
+ &:first-child {
323
+ padding-top: 0;
324
+ }
325
+
326
+ &:last-child {
327
+ padding-bottom: 0;
328
+ }
329
+ }
330
+ }
331
+
332
+ &-content {
333
+ font-size: px-to-rem(14) !important;
334
+ cursor: pointer;
335
+ }
336
+ }
337
+
338
+ &__search {
339
+ &-input {
340
+ width: 0;
341
+ opacity: 0;
342
+ padding: px-to-rem(10) px-to-rem(5);
343
+ padding-right: px-to-rem(25);
344
+ font-size: px-to-rem(14);
345
+ position: relative;
346
+ right: px-to-rem(-25);
347
+ border: none;
348
+ line-height: px-to-rem(16);
349
+ background-color: unset !important;
350
+ border-bottom: 1px solid #000;
351
+
352
+ &::-webkit-input-placeholder {
353
+ color: #757575;
354
+ }
355
+
356
+ &:focus {
357
+ & ~ .header__search-label {
358
+ top: -200px;
359
+ }
360
+
361
+ width: px-to-rem(180) !important;
362
+ opacity: 1;
363
+ }
364
+ }
365
+
366
+ &-label {
367
+ transition: all 0.5s cubic-bezier(0.445, 0.05, 0.55, 0.95);
368
+ position: absolute;
369
+ right: 0;
370
+ top: 0;
371
+ cursor: pointer;
372
+ background: transparent;
373
+ width: px-to-rem(38);
374
+ z-index: 9;
375
+ height: px-to-rem(38);
376
+ outline: none;
377
+ }
378
+
379
+ // 覆盖表单的submit样式
380
+ &-icon {
381
+ -webkit-appearance: none;
382
+ padding: 0;
383
+ margin: 0;
384
+ background: transparent;
385
+ border: none;
386
+ outline: none;
387
+ cursor: pointer;
388
+ }
389
+ }
390
+ &__logout{
391
+ &_border{
392
+ border-top: 1px solid #D4D4D4
393
+ }
394
+ }
395
+ }
396
+
397
+ .navigation-m {
398
+ font-size: px-to-rem(17);
399
+ position: fixed;
400
+ z-index: 101;
401
+ background-color: #fff;
402
+ width: $menu_width;
403
+ bottom: 0;
404
+ top: 0;
405
+ left: -$menu_width;
406
+ padding: px-to-rem(25) px-to-rem(10) px-to-rem(100);
407
+ transition: margin 0.35s ease-out;
408
+ overflow-y: auto;
409
+ -webkit-overflow-scrolling: touch;
410
+ cursor: pointer;
411
+
412
+ .tip {
413
+ display: none;
414
+ }
415
+
416
+ .header-ads {
417
+ display: none !important;
418
+ }
419
+
420
+ .navigation-pc__menu-block {
421
+ margin: 0;
422
+ // padding: 0;
423
+ }
424
+
425
+ .nav_first-menu-icon-close {
426
+ & + .navigation-pc__menu-block {
427
+ margin: 0!important;
428
+ padding: 0!important;
429
+ height: 0;
430
+ }
431
+ }
432
+
433
+ .nav_second-menu-icon-close {
434
+ & + .navigation-pc__third-menu-items {
435
+ .navigation-pc__third-menu-item {
436
+ margin: 0!important;
437
+ padding: 0!important;
438
+ height: 0;
439
+ visibility: hidden;
440
+
441
+ a {
442
+ height: 0;
443
+ }
444
+ }
445
+ }
446
+ }
447
+
448
+ @media ($sm_mobile) {
449
+ width: $min_width;
450
+ left: -$min_width;
451
+ }
452
+
453
+ @media ($pc) {
454
+ padding: px-to-rem(40) px-to-rem(25);
455
+ }
456
+
457
+ &_on {
458
+ margin: 0 (-$menu_width) 0 $menu_width;
459
+ box-shadow: -9px 8px 16px 0 #5f5c5c;
460
+
461
+ @media ($sm_mobile) {
462
+ margin: 0 (-$min_width) 0 $min_width;
463
+ }
464
+ }
465
+
466
+ &__back {
467
+ padding-bottom: px-to-rem(26);
468
+ cursor: pointer;
469
+ }
470
+
471
+ &__menu-wrap{
472
+ overflow: auto;
473
+ height: 100%;
474
+ }
475
+
476
+ &__menu {
477
+ margin: 0 px-to-rem(15);
478
+ opacity: 0.6;
479
+ list-style: none;
480
+ padding: 0;
481
+ > li{
482
+ border-bottom: 1px solid #D4D4D4;
483
+ }
484
+ }
485
+
486
+ &__icon {
487
+ font-size: px-to-rem(12);
488
+ transition: transform 0.2s linear;
489
+ opacity: 0.6;
490
+ }
491
+
492
+ &__menu-item {
493
+ padding: px-to-rem(12) 0;
494
+ cursor: pointer;
495
+ transition: all 0.2s linear;
496
+
497
+ &_link {
498
+ color: inherit;
499
+ opacity: 0.6;
500
+ max-width: 90%;
501
+ display: block;
502
+ width: 100%;
503
+ &:last-child{
504
+ border: 0;
505
+ }
506
+ }
507
+
508
+ &_child {
509
+ padding-left: px-to-rem(30);
510
+ }
511
+ }
512
+
513
+ &__account {
514
+ padding: 0 px-to-rem(15);
515
+ padding-top: px-to-rem(12);
516
+ &_opacity{
517
+ opacity: 0.6;
518
+ }
519
+ }
520
+
521
+ &__setting {
522
+ padding: 0 px-to-rem(25);
523
+ position: absolute;
524
+ width: 100%;
525
+ left: 0;
526
+ bottom: 25px;
527
+ }
528
+
529
+ .common__select {
530
+ &::after {
531
+ top: 10px;
532
+ }
533
+ }
534
+
535
+ .form-control {
536
+ max-width: px-to-rem(110);
537
+ max-height: px-to-rem(34);
538
+ }
539
+
540
+ .navigation-pc__third-menu-blocks .navigation-pc__menu-item {
541
+ // padding-right: 0;
542
+ max-width: 90%;
543
+ }
544
+
545
+ .navigation-pc__menu-item_link {
546
+ display: inline-block;
547
+ max-width: 100%;
548
+ }
549
+ }
550
+
551
+ %tip {
552
+ position: absolute;
553
+ top: -16px;
554
+ margin-left: 2px;
555
+ border-radius: 2px;
556
+ font-size: 12px;
557
+ line-height: 14px;
558
+ padding: 1px 2px;
559
+ white-space: nowrap;
560
+ right: -16px;
561
+ font-weight: normal;
562
+ }
563
+
564
+ .pc_menu{
565
+ position: relative;
566
+ .navigation-pc {
567
+ &__menu-block {
568
+ padding: px-to-rem(12) px-to-rem(24);
569
+ &_has-child {
570
+ &:hover {
571
+ .navigation-pc__menu-block_child {
572
+ display: block;
573
+ }
574
+ }
575
+ .navigation-pc__menu-block_child {
576
+ display: none;
577
+ position: absolute;
578
+ z-index: 9;
579
+ overflow: auto;
580
+ white-space: nowrap;
581
+ max-height: px-to-rem(270);
582
+ }
583
+ }
584
+ &_child{
585
+ position: absolute;
586
+ border: 1px solid #e5e5e5;
587
+ }
588
+
589
+ .link-wrap {
590
+ position: relative;
591
+
592
+ &::after {
593
+ content: '';
594
+ position: absolute;
595
+ width: 0;
596
+ height: 1px;
597
+ left: 0;
598
+ bottom: -1px;
599
+ z-index: 1;
600
+ background-color: var(--menu-color);
601
+ transition: width .25s .2s;
602
+ }
603
+ }
604
+
605
+ &:hover {
606
+ .link-wrap::after {
607
+ width: 100%;
608
+ }
609
+ }
610
+
611
+ .tip {
612
+ @extend %tip;
613
+ }
614
+ }
615
+
616
+ &__menu-item_hover {
617
+ &::after{
618
+ @media ($pc) {
619
+ transform: rotate(-135deg)!important;
620
+ top: 22px!important;
621
+ }
622
+ }
623
+ }
624
+ &__menu-item_caret{
625
+ @media ($pc) {
626
+ &:hover {
627
+ &::after {
628
+ transform: rotate(-135deg);
629
+ top: 22px;
630
+ }
631
+ }
632
+ }
633
+ &::after{
634
+ @media ($pc) {
635
+ transform: rotate(45deg);
636
+ }
637
+ }
638
+ }
639
+ }
640
+ .navigation-m__icon{
641
+ display: none;
642
+ }
643
+ }
644
+
645
+ .navigation-pc {
646
+ width: 100%;
647
+
648
+ &__menu {
649
+ position: relative;
650
+ z-index: 3;
651
+ display: flex;
652
+ align-items: center;
653
+ justify-content: center;
654
+ font-size: px-to-rem(14);
655
+ flex-wrap: wrap;
656
+
657
+ ul {
658
+ margin: auto;
659
+ }
660
+
661
+ .row {
662
+ margin: 0 px-to-rem(-25);
663
+ list-style: none;
664
+ padding: 0;
665
+ }
666
+ }
667
+
668
+ &__menu-item {
669
+ &_on {
670
+ @media ($pc) {
671
+ text-decoration: underline;
672
+ }
673
+
674
+ &:hover {
675
+ text-decoration: none;
676
+ }
677
+
678
+ @media ($mobile) {
679
+ width: unset !important;
680
+ display: inline-block !important;
681
+ }
682
+ }
683
+
684
+ &_link {
685
+ color: inherit;
686
+ line-height: 1.3;
687
+ overflow-y: hidden;
688
+
689
+ @media ($pc) {
690
+ max-width: px-to-rem(200);
691
+ }
692
+
693
+ &.active {
694
+ font-weight: bold;
695
+ }
696
+ }
697
+ }
698
+
699
+ &__menu-block {
700
+ padding: px-to-rem(12) 0;
701
+
702
+ @media ($mobile) {
703
+ &:first-child {
704
+ padding-top: 0;
705
+ }
706
+ }
707
+
708
+ .navigation-pc__menu_align-left-inline & {
709
+ display: inline-block;
710
+ padding-left: 0;
711
+ }
712
+
713
+ &_has-child {
714
+ position: relative;
715
+ user-select: none;
716
+
717
+ @media ($mobile) {
718
+ margin-right: 0;
719
+ }
720
+ }
721
+
722
+ &:last-child {
723
+ margin-right: 0;
724
+ }
725
+
726
+ &_child {
727
+ color: #000;
728
+ overflow: auto;
729
+ padding: px-to-rem(20) 0 px-to-rem(20) px-to-rem(26);
730
+ top: 100%;
731
+ background: white;
732
+ display: flex;
733
+ flex-direction: column;
734
+ flex-wrap: wrap;
735
+ z-index: 2;
736
+ line-height: px-to-rem(19);
737
+ transition: all 0.2s linear;
738
+
739
+ @media ($mobile) {
740
+ margin-top: 12px;
741
+ }
742
+
743
+ .navigation-pc__menu_align-left-inline & {
744
+ display: none;
745
+ padding: px-to-rem(20) px-to-rem(40);
746
+ }
747
+
748
+ .navigation-pc__menu-item {
749
+ margin: px-to-rem(15) 0;
750
+ transition: all 0.2s linear;
751
+
752
+ }
753
+ }
754
+ }
755
+ &__third-menu-items {
756
+ @media ($mobile) {
757
+ padding-left: px-to-rem(15);
758
+ }
759
+ .navigation-pc__third-menu-item {
760
+ color: inherit;
761
+ margin: px-to-rem(8) 0;
762
+ transition: all 0.2s linear;
763
+ &:first-child{
764
+ margin-top: px-to-rem(10);
765
+ }
766
+ &:last-child {
767
+ margin-bottom: px-to-rem(10);
768
+ }
769
+ }
770
+ }
771
+ }
772
+
773
+ //三级菜单通屏占位
774
+ .menus_container {
775
+ display: none;
776
+ @media ($mobile) {
777
+ display: none!important;
778
+ }
779
+ position: absolute;
780
+ left: 0;
781
+ right: 0;
782
+ top: 100%;
783
+ background-color: #ffffff!important;
784
+ &_inner {
785
+ font-size: px-to-rem(14);
786
+ width: 100%;
787
+ padding-top: 1.75rem;
788
+ padding-bottom: 2.5rem;
789
+ overflow: auto;
790
+ &:empty {
791
+ display: none!important;
792
+ }
793
+ .navigation-pc__third-menu-blocks {
794
+ max-width: 15%;
795
+ margin: 0 1.25rem;
796
+
797
+ &:nth-child(n+6) {
798
+ margin-top: 0;
799
+ }
800
+
801
+ & > .navigation-pc__menu-item {
802
+ margin-bottom: px-to-rem(20);
803
+ }
804
+
805
+ .navigation-pc__second-menu-item {
806
+ padding-bottom: 0.5rem;
807
+ }
808
+
809
+ // .navigation-pc__third-menu-item {
810
+ // margin: 1rem 0 0 0;
811
+ // }
812
+ .navigation-pc__third-menu-item {
813
+ margin: 1rem 0 0 0;
814
+ width: 100%;
815
+ font-weight: normal;
816
+ }
817
+
818
+ .navigation-pc__menu-item {
819
+ width: 100%;
820
+ }
821
+
822
+ .navigation-pc__menu-item_link {
823
+ display: inline-block;
824
+ max-width: 100%;
825
+ }
826
+ }
827
+
828
+ .tip {
829
+ @extend %tip;
830
+ }
831
+
832
+ .header-ads {
833
+ width: 20%;
834
+ margin-left: 1.25rem;
835
+ margin-right: 1.25rem;
836
+ // padding-top: 1.75rem;
837
+ text-align: center;
838
+
839
+ --tw-translate-x: 0;
840
+ --tw-translate-y: 0;
841
+ --tw-rotate: 0;
842
+ --tw-skew-x: 0;
843
+ --tw-skew-y: 0;
844
+ --tw-scale-x: 1;
845
+ --tw-scale-y: 1;
846
+
847
+ transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
848
+
849
+ .title {
850
+ margin: 1.25rem 0 0 0;
851
+ }
852
+ }
853
+ }
854
+ }
855
+
856
+ // px-to-rem(15)
857
+ .navigation-pc__third-menu-blocks {
858
+ .navigation-pc__menu-item {
859
+ padding-right: px-to-rem(12);
860
+ }
861
+ }
862
+
863
+ .navigation-pc__menu-block_has-child {
864
+ position: relative;
865
+ display: block;
866
+ &:last-child .navigation-pc__menu-block_child {
867
+ right: 0;
868
+ }
869
+ }
870
+
871
+ .fast-bar {
872
+ width: 100%;
873
+ display: block;
874
+
875
+ &__text-wrapper {
876
+ text-align: center;
877
+ }
878
+
879
+ &__text {
880
+ font-size: px-to-rem(14);
881
+ padding: px-to-rem(10) 0;
882
+ display: inline-block;
883
+ }
884
+ }
885
+ html[dir='rtl'] {
886
+ .navigation-pc__menu-item_caret::after {
887
+ right: unset;
888
+ left: 10px;
889
+ }
890
+
891
+ .header__icon_cart {
892
+ margin-right: px-to-rem(20) !important;
893
+ }
894
+
895
+ .navigation-pc__menu_align-left-inline {
896
+ .navigation-pc__menu-item_caret::after {
897
+ right: unset;
898
+ left: px-to-rem(-12);
899
+ }
900
+ }
901
+
902
+ .header__account-popover {
903
+ top: px-to-rem(40);
904
+ }
905
+
906
+ .navigation-pc__menu_align-left-inline .navigation-pc__menu-block:first-child {
907
+ padding-left: 0;
908
+ padding-right: px-to-rem(35);
909
+ }
910
+
911
+ .header__search-input {
912
+ right: unset;
913
+ left: px-to-rem(-25);
914
+ padding-left: px-to-rem(25);
915
+ padding-right: px-to-rem(5);
916
+ }
917
+
918
+ .header__search-label {
919
+ right: unset;
920
+ left: 0;
921
+ }
922
+ }
923
+
924
+ /* header ends */
925
+
926
+ // 挂在body
927
+ .page_container {
928
+ transition: margin 0.35s ease-out;
929
+ }