@faststore/ui 2.0.117-alpha.0 → 2.0.128-alpha.0

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 (60) hide show
  1. package/dist/index.d.ts +0 -6
  2. package/dist/index.js +0 -4
  3. package/dist/index.js.map +1 -1
  4. package/package.json +2 -2
  5. package/src/components/atoms/Logo/styles.scss +12 -0
  6. package/src/components/molecules/Banner/styles.scss +125 -0
  7. package/src/components/molecules/Carousel/styles.scss +171 -0
  8. package/src/components/molecules/NavbarLinks/styles.scss +1 -3
  9. package/src/components/molecules/ProductCardSkeleton/styles.scss +56 -0
  10. package/src/components/molecules/ProductTile/styles.scss +79 -0
  11. package/src/components/organisms/BannerNewsletter/styles.scss +21 -0
  12. package/src/components/organisms/FilterSkeleton/styles.scss +49 -0
  13. package/src/components/organisms/Footer/styles.scss +218 -0
  14. package/src/components/organisms/Incentives/styles.scss +120 -0
  15. package/src/components/organisms/Navbar/styles.scss +1 -3
  16. package/src/components/organisms/Newsletter/styles.scss +133 -0
  17. package/src/components/organisms/ProductDetails/styles.scss +183 -0
  18. package/src/components/organisms/ProductGallery/styles.scss +180 -0
  19. package/src/components/organisms/ProductShelf/styles.scss +2 -3
  20. package/src/components/organisms/Tiles/styles.scss +56 -0
  21. package/src/index.ts +0 -16
  22. package/src/styles/components.scss +14 -1
  23. package/src/styles/global.scss +0 -1
  24. package/dist/components/molecules/Bullets/Bullets.d.ts +0 -35
  25. package/dist/components/molecules/Bullets/Bullets.js +0 -12
  26. package/dist/components/molecules/Bullets/Bullets.js.map +0 -1
  27. package/dist/components/molecules/Bullets/index.d.ts +0 -2
  28. package/dist/components/molecules/Bullets/index.js +0 -2
  29. package/dist/components/molecules/Bullets/index.js.map +0 -1
  30. package/dist/components/molecules/Carousel/Arrows.d.ts +0 -12
  31. package/dist/components/molecules/Carousel/Arrows.js +0 -6
  32. package/dist/components/molecules/Carousel/Arrows.js.map +0 -1
  33. package/dist/components/molecules/Carousel/Carousel.d.ts +0 -54
  34. package/dist/components/molecules/Carousel/Carousel.js +0 -183
  35. package/dist/components/molecules/Carousel/Carousel.js.map +0 -1
  36. package/dist/components/molecules/Carousel/CarouselItem.d.ts +0 -11
  37. package/dist/components/molecules/Carousel/CarouselItem.js +0 -18
  38. package/dist/components/molecules/Carousel/CarouselItem.js.map +0 -1
  39. package/dist/components/molecules/Carousel/hooks/useSlideVisibility.d.ts +0 -9
  40. package/dist/components/molecules/Carousel/hooks/useSlideVisibility.js +0 -29
  41. package/dist/components/molecules/Carousel/hooks/useSlideVisibility.js.map +0 -1
  42. package/dist/components/molecules/Carousel/index.d.ts +0 -2
  43. package/dist/components/molecules/Carousel/index.js +0 -3
  44. package/dist/components/molecules/Carousel/index.js.map +0 -1
  45. package/dist/hooks/useSlider/index.d.ts +0 -2
  46. package/dist/hooks/useSlider/index.js +0 -3
  47. package/dist/hooks/useSlider/index.js.map +0 -1
  48. package/dist/hooks/useSlider/useSlider.d.ts +0 -64
  49. package/dist/hooks/useSlider/useSlider.js +0 -103
  50. package/dist/hooks/useSlider/useSlider.js.map +0 -1
  51. package/src/components/molecules/Bullets/Bullets.tsx +0 -88
  52. package/src/components/molecules/Bullets/index.ts +0 -2
  53. package/src/components/molecules/Carousel/Arrows.tsx +0 -58
  54. package/src/components/molecules/Carousel/Carousel.tsx +0 -387
  55. package/src/components/molecules/Carousel/CarouselItem.tsx +0 -54
  56. package/src/components/molecules/Carousel/hooks/useSlideVisibility.ts +0 -59
  57. package/src/components/molecules/Carousel/index.ts +0 -2
  58. package/src/hooks/useSlider/index.ts +0 -2
  59. package/src/hooks/useSlider/useSlider.ts +0 -209
  60. /package/src/components/{molecules → organisms}/NavbarSlider/styles.scss +0 -0
package/dist/index.d.ts CHANGED
@@ -3,13 +3,7 @@ export { default as TextArea } from './components/atoms/TextArea';
3
3
  export type { TextAreaProps } from './components/atoms/TextArea';
4
4
  export { default as Incentive } from './components/atoms/Incentive';
5
5
  export type { IncentiveProps } from './components/atoms/Incentive';
6
- export { default as Bullets } from './components/molecules/Bullets';
7
- export type { BulletsProps } from './components/molecules/Bullets';
8
- export { default as Carousel } from './components/molecules/Carousel';
9
- export type { CarouselProps } from './components/molecules/Carousel';
10
6
  export { default as Banner, BannerContent, BannerImage, BannerLink, } from './components/molecules/Banner';
11
7
  export type { BannerProps, BannerContentProps, BannerImageProps, BannerLinkProps, } from './components/molecules/Banner';
12
8
  export { Tile, Tiles } from './components/organisms/Tiles';
13
9
  export type { TilesProps, TileProps } from './components/organisms/Tiles';
14
- export { default as useSlider } from './hooks/useSlider';
15
- export type { UseSliderArgs, SliderState, SliderDispatch, SlideDirection, } from './hooks/useSlider';
package/dist/index.js CHANGED
@@ -3,11 +3,7 @@ export * from '@faststore/components';
3
3
  export { default as TextArea } from './components/atoms/TextArea';
4
4
  export { default as Incentive } from './components/atoms/Incentive';
5
5
  // Molecules
6
- export { default as Bullets } from './components/molecules/Bullets';
7
- export { default as Carousel } from './components/molecules/Carousel';
8
6
  export { default as Banner, BannerContent, BannerImage, BannerLink, } from './components/molecules/Banner';
9
7
  // Organisms
10
8
  export { Tile, Tiles } from './components/organisms/Tiles';
11
- // Hooks
12
- export { default as useSlider } from './hooks/useSlider';
13
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AAErC,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAGjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAGnE,YAAY;AAEZ,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAGnE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAGrE,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,+BAA+B,CAAA;AAQtC,YAAY;AACZ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAG1D,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AAErC,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAGjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAGnE,YAAY;AACZ,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,+BAA+B,CAAA;AAQtC,YAAY;AACZ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/ui",
3
- "version": "2.0.117-alpha.0",
3
+ "version": "2.0.128-alpha.0",
4
4
  "description": "A lightweight, framework agnostic component library for React",
5
5
  "author": "emersonlaurentino",
6
6
  "license": "MIT",
@@ -58,5 +58,5 @@
58
58
  "node": "16.18.0",
59
59
  "yarn": "1.19.1"
60
60
  },
61
- "gitHead": "0d97039ebb2acb1c000ca9a4c914c2388a4cd49e"
61
+ "gitHead": "45fb6de9e708a927326715d9de3b46a8030dc3bd"
62
62
  }
@@ -0,0 +1,12 @@
1
+ [data-fs-logo] {
2
+ --fs-logo-width : 7rem;
3
+ --fs-logo-img : url("~/public/brandless-neutral.png");
4
+
5
+ display: block;
6
+ width: var(--fs-logo-width);
7
+ height: 100%;
8
+ min-height: var(--fs-spacing-6);
9
+ background: var(--fs-logo-img) no-repeat;
10
+ background-position: center;
11
+ background-size: 100% auto;
12
+ }
@@ -0,0 +1,125 @@
1
+ [data-fs-banner-text] {
2
+ // --------------------------------------------------------
3
+ // Design Tokens for Banner Text
4
+ // --------------------------------------------------------
5
+
6
+ // Default properties
7
+ --fs-banner-padding-mobile : var(--fs-spacing-6) 5%;
8
+ --fs-banner-padding-desktop : var(--fs-spacing-9) 15%;
9
+
10
+ // Button Link
11
+ --fs-banner-button-link-min-width : 11.25rem;
12
+ --fs-banner-button-link-margin-top : var(--fs-spacing-6);
13
+
14
+ // Title
15
+ --fs-banner-title-size : var(--fs-text-size-lead);
16
+ --fs-banner-title-weight : var(--fs-text-weight-bold);
17
+ --fs-banner-title-line-height : 1.2;
18
+
19
+ // Primary
20
+ --fs-banner-primary-title-size : var(--fs-text-size-title-page);
21
+
22
+ // Secondary
23
+ --fs-banner-secondary-title-size : var(--fs-text-size-4);
24
+ --fs-banner-secondary-caption-size : var(--fs-text-size-base);
25
+ --fs-banner-secondary-caption-weight : var(--fs-text-weight-regular);
26
+ --fs-banner-secondary-caption-line-height : 1.5;
27
+
28
+ // Main
29
+ --fs-banner-main-bkg-color : var(--fs-color-primary-bkg);
30
+ --fs-banner-main-text-color : var(--fs-color-primary-text);
31
+
32
+ // Light
33
+ --fs-banner-light-bkg-color : var(--fs-color-secondary-bkg-light);
34
+ --fs-banner-light-text-color : var(--fs-color-text-display);
35
+
36
+ // Accent
37
+ --fs-banner-accent-bkg-color : var(--fs-color-highlighted-bkg);
38
+ --fs-banner-accent-text-color : var(--fs-banner-light-text-color);
39
+
40
+ // --------------------------------------------------------
41
+ // Structural Styles
42
+ // --------------------------------------------------------
43
+
44
+ height: 100%;
45
+ padding: var(--fs-banner-padding-mobile);
46
+ text-align: center;
47
+
48
+ @include media(">=notebook") {
49
+ padding: var(--fs-banner-padding-desktop);
50
+ }
51
+
52
+ [data-fs-banner-text-content] {
53
+ display: flex;
54
+ flex-direction: column;
55
+ align-items: center;
56
+ justify-content: center;
57
+ height: 100%;
58
+ }
59
+
60
+ [data-fs-banner-text-link] [data-fs-link-button] {
61
+ min-width: var(--fs-banner-button-link-min-width);
62
+ margin-top: var(--fs-banner-button-link-margin-top);
63
+ }
64
+
65
+ // --------------------------------------------------------
66
+ // Variants Styles
67
+ // --------------------------------------------------------
68
+
69
+ &[data-fs-banner-text-variant="primary"] {
70
+ h2 {
71
+ font-size: var(--fs-banner-title-size);
72
+ font-weight: var(--fs-banner-title-weight);
73
+ line-height: var(--fs-banner-title-line-height);
74
+
75
+ @include media(">=notebook") {
76
+ display: block;
77
+ font-size: var(--fs-banner-primary-title-size);
78
+ }
79
+ }
80
+ }
81
+
82
+ &[data-fs-banner-text-variant="secondary"] {
83
+ h2 {
84
+ margin-bottom: var(--fs-spacing-2);
85
+ font-size: var(--fs-banner-title-size);
86
+ font-weight: var(--fs-banner-title-weight);
87
+ line-height: var(--fs-banner-title-line-height);
88
+
89
+ @include media(">=notebook") {
90
+ display: block;
91
+ font-size: var(--fs-banner-secondary-title-size);
92
+ }
93
+ }
94
+
95
+ p {
96
+ font-size: var(--fs-banner-secondary-caption-size);
97
+ font-weight: var(--fs-banner-secondary-caption-weight);
98
+ line-height: var(--fs-banner-secondary-caption-line-height);
99
+ }
100
+ }
101
+
102
+ &[data-fs-banner-text-color-variant="main"] {
103
+ background-color: var(--fs-banner-main-bkg-color);
104
+
105
+ [data-fs-banner-text-heading] {
106
+ color: var(--fs-banner-main-text-color);
107
+ }
108
+ }
109
+
110
+ &[data-fs-banner-text-color-variant="light"] {
111
+ background-color: var(--fs-banner-light-bkg-color);
112
+
113
+ [data-fs-banner-text-heading] {
114
+ color: var(--fs-banner-light-text-color);
115
+ }
116
+ }
117
+
118
+ &[data-fs-banner-text-color-variant="accent"] {
119
+ background-color: var(--fs-banner-accent-bkg-color);
120
+
121
+ [data-fs-banner-text-heading] {
122
+ color: var(--fs-banner-accent-text-color);
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,171 @@
1
+ [data-fs-carousel] {
2
+ // --------------------------------------------------------
3
+ // Design Tokens for Carousel
4
+ // --------------------------------------------------------
5
+
6
+ // Track
7
+ --fs-carousel-padding-mobile : 0 var(--fs-grid-padding);
8
+ --fs-carousel-padding-desktop : 0 calc((100vw - 1230px)/2);
9
+
10
+ // Item
11
+ --fs-carousel-item-width-mobile : 60%;
12
+ --fs-carousel-item-width-tablet : 14.2rem;
13
+ --fs-carousel-item-width-desktop : 14.4rem;
14
+ --fs-carousel-item-margin-right : var(--fs-spacing-3);
15
+
16
+ // Controls
17
+ --fs-carousel-controls-width : 3.125rem;
18
+ --fs-carousel-controls-height : var(--fs-carousel-controls-width);
19
+ --fs-carousel-controls-bkg-color : var(--fs-color-neutral-0);
20
+ --fs-carousel-controls-border-radius : var(--fs-border-radius-circle);
21
+ --fs-carousel-controls-box-shadow : var(--fs-shadow-darker);
22
+ --fs-carousel-controls-icon-color : var(--fs-color-neutral-7);
23
+
24
+ --fs-carousel-controls-control-left : var(--fs-spacing-4);
25
+ --fs-carousel-controls-control-right : var(--fs-carousel-controls-control-left);
26
+ --fs-carousel-controls-control-max-left : calc(-1 * var(--fs-spacing-11));
27
+ --fs-carousel-controls-control-max-right : var(--fs-carousel-controls-control-max-left);
28
+
29
+ // Bullets
30
+ --fs-carousel-bullets-padding-top : var(--fs-carousel-controls-control-left);
31
+ --fs-carousel-bullets-padding-left : var(--fs-grid-padding);
32
+ --fs-carousel-bullets-padding-right : var(--fs-carousel-bullets-padding-left);
33
+ --fs-carousel-bullets-column-gap-mobile : var(--fs-spacing-0);
34
+ --fs-carousel-bullets-column-gap-tablet : var(--fs-spacing-3);
35
+
36
+ --fs-carousel-bullet-width-mobile : 100%;
37
+ --fs-carousel-bullet-width-desktop : var(--fs-spacing-1);
38
+ --fs-carousel-bullet-height-mobile : var(--fs-spacing-0);
39
+ --fs-carousel-bullet-height-desktop : var(--fs-carousel-bullet-width-desktop);
40
+ --fs-carousel-bullet-bkg-color : var(--fs-color-neutral-3);
41
+ --fs-carousel-bullet-bkg-color-selected : var(--fs-color-main-4);
42
+ --fs-carousel-bullet-border-radius : var(--fs-carousel-controls-border-radius);
43
+
44
+ // --------------------------------------------------------
45
+ // Structural Styles
46
+ // --------------------------------------------------------
47
+
48
+ width: inherit;
49
+
50
+ &:hover {
51
+ [data-fs-carousel-controls] {
52
+ position: relative;
53
+
54
+ @include media(">=tablet") {
55
+ display: flex;
56
+ margin: var(--fs-carousel-padding-desktop);
57
+
58
+ [data-fs-carousel-control] {
59
+ bottom: calc(var(--fs-carousel-controls-height) + var(--fs-control-tap-size));
60
+ display: flex;
61
+ align-items: center;
62
+ justify-content: center;
63
+ width: var(--fs-carousel-controls-width);
64
+ height: var(--fs-carousel-controls-height);
65
+ cursor: pointer;
66
+ background-color: var(--fs-carousel-controls-bkg-color);
67
+ border-color: transparent;
68
+ border-radius: var(--fs-carousel-controls-border-radius);
69
+ box-shadow: var(--fs-carousel-controls-box-shadow);
70
+ transform: translateY(-50%);
71
+ }
72
+
73
+ [data-fs-carousel-control="left"] {
74
+ position: absolute;
75
+ left: var(--fs-carousel-controls-control-right);
76
+ @include media(">notebook") {
77
+ left: var(--fs-carousel-controls-control-max-left);
78
+ }
79
+ }
80
+
81
+ [data-fs-carousel-control="right"] {
82
+ position: absolute;
83
+ right: var(--fs-carousel-controls-control-right);
84
+ @include media(">notebook") {
85
+ right: var(--fs-carousel-controls-control-max-right);
86
+ }
87
+ }
88
+
89
+ [data-fs-icon] {
90
+ display: flex;
91
+ color: var(--fs-carousel-controls-icon-color);
92
+ }
93
+ }
94
+ }
95
+ }
96
+
97
+ [data-fs-carousel-controls] {
98
+ position: relative;
99
+ display: none;
100
+ }
101
+
102
+ [data-fs-carousel-track] {
103
+ padding: var(--fs-carousel-padding-mobile);
104
+
105
+ &::-webkit-scrollbar {
106
+ display: none;
107
+ }
108
+
109
+ @include media(">notebook") {
110
+ padding: var(--fs-carousel-padding-desktop);
111
+ }
112
+ }
113
+
114
+ [data-fs-carousel-item] {
115
+ width: var(--fs-carousel-item-width-mobile);
116
+
117
+ &:not(:last-of-type) {
118
+ margin-right: var(--fs-carousel-item-margin-right);
119
+ }
120
+
121
+ @include media(">=tablet") {
122
+ width: var(--fs-carousel-item-width-tablet);
123
+ height: 100%;
124
+ }
125
+
126
+ @include media(">=desktop") {
127
+ width: var(--fs-carousel-item-width-desktop);
128
+ }
129
+ }
130
+
131
+ [data-fs-carousel-bullets] {
132
+ position: relative;
133
+ width: 100%;
134
+ padding-top: var(--fs-carousel-bullets-padding-top);
135
+ display: flex;
136
+ flex-flow: row nowrap;
137
+ column-gap: var(--fs-carousel-bullets-column-gap-mobile);
138
+ padding-left: var(--fs-carousel-bullets-padding-left);
139
+ padding-right: var(--fs-carousel-bullets-padding-right);
140
+
141
+ @include media(">=tablet") {
142
+ width: fit-content;
143
+ align-items: center;
144
+ justify-content: center;
145
+ margin: auto;
146
+ column-gap: var(--fs-carousel-bullets-column-gap-tablet);
147
+ }
148
+
149
+ [data-fs-carousel-bullet] {
150
+ padding: 0;
151
+ border-color: transparent;
152
+ width: var(--fs-carousel-bullet-width-mobile);
153
+ &::after {
154
+ width: 100%;
155
+ height: var(--fs-carousel-bullet-height-mobile);
156
+ background-color: var(--fs-carousel-bullet-bkg-color);
157
+ content: "";
158
+ @include media(">=tablet") {
159
+ width: var(--fs-carousel-bullet-width-desktop);
160
+ height: var(--fs-carousel-bullet-height-desktop);
161
+ margin: 0;
162
+ border-radius: var(--fs-carousel-bullet-border-radius);
163
+ content: "";
164
+ }
165
+ }
166
+ &[aria-selected="true"]::after {
167
+ background-color: var(--fs-carousel-bullet-bkg-color-selected);
168
+ }
169
+ }
170
+ }
171
+ }
@@ -38,8 +38,6 @@
38
38
  @include media("<notebook") { padding: 0; }
39
39
 
40
40
  @include media(">=notebook") {
41
- z-index: var(--fs-z-index-below);
42
-
43
41
  > div {
44
42
  display: flex;
45
43
  align-items: center;
@@ -80,7 +78,7 @@
80
78
  border-left: var(--fs-navbar-links-list-border-left-width-notebook) solid var(--fs-navbar-links-list-border-left-color-notebook);
81
79
  }
82
80
 
83
- [data-fs-navbar-links-list-item] {
81
+ [data-fs-navbar-links-list-item] > [data-fs-link] {
84
82
  width: var(--fs-navbar-links-link-width-notebook);
85
83
  padding: var(--fs-navbar-links-link-padding-notebook);
86
84
  }
@@ -0,0 +1,56 @@
1
+ [data-fs-product-card-skeleton] {
2
+ // --------------------------------------------------------
3
+ // Design Tokens for Product Card Skeleton
4
+ // --------------------------------------------------------
5
+
6
+ // Default properties
7
+ --fs-product-card-skeleton-padding : var(--fs-spacing-1) var(--fs-spacing-1) var(--fs-spacing-2);
8
+ --fs-product-card-skeleton-border-radius : var(--fs-border-radius);
9
+ --fs-product-card-skeleton-gap : var(--fs-spacing-1);
10
+
11
+ // Sectioned
12
+ --fs-product-card-skeleton-sectioned-min-width : 10rem;
13
+
14
+ // Bordered
15
+ --fs-product-card-skeleton-bordered : var(--fs-border-width) solid var(--fs-border-color-light);
16
+
17
+ // --------------------------------------------------------
18
+ // Structural Styles
19
+ // --------------------------------------------------------
20
+
21
+ position: relative;
22
+ display: flex;
23
+ flex-direction: column;
24
+ row-gap: var(--fs-product-card-skeleton-gap);
25
+ padding: var(--fs-product-card-skeleton-padding);
26
+ overflow: hidden;
27
+ border-radius: var(--fs-product-card-skeleton-border-radius);
28
+
29
+ [data-fs-product-card-skeleton-content] {
30
+ display: flex;
31
+ flex-direction: column;
32
+ row-gap: var(--fs-product-card-skeleton-gap);
33
+ }
34
+
35
+ [data-fs-product-card-skeleton-image] {
36
+ aspect-ratio: var(--fs-product-card-skeleton-image-aspect-ratio);
37
+
38
+ [data-fs-skeleton-wrapper],
39
+ [data-fs-skeleton] {
40
+ width: 100%;
41
+ height: 100%;
42
+ }
43
+ }
44
+
45
+ // --------------------------------------------------------
46
+ // Variants Styles
47
+ // --------------------------------------------------------
48
+
49
+ &[data-fs-product-card-skeleton-sectioned="true"] {
50
+ min-width: var(--fs-product-card-skeleton-sectioned-min-width);
51
+ }
52
+
53
+ &[data-fs-product-card-skeleton-bordered="true"] {
54
+ border: var(--fs-product-card-skeleton-bordered);
55
+ }
56
+ }
@@ -0,0 +1,79 @@
1
+ [data-fs-product-tile-skeleton] {
2
+ // --------------------------------------------------------
3
+ // Design Tokens for Product Tile Skeleton
4
+ // --------------------------------------------------------
5
+
6
+ // Default properties
7
+ --fs-product-tile-skeleton-gap : var(--fs-spacing-1);
8
+
9
+ // Content
10
+ --fs-product-tile-skeleton-content-padding : var(--fs-spacing-3);
11
+
12
+ // Wide
13
+ --fs-product-tile-skeleton-wide-padding : var(--fs-spacing-2) var(--fs-spacing-3) var(--fs-spacing-3);
14
+ --fs-product-tile-skeleton-wide-bkg-color : var(--fs-color-neutral-bkg);
15
+
16
+ // --------------------------------------------------------
17
+ // Structural Styles
18
+ // --------------------------------------------------------
19
+
20
+ position: relative;
21
+ display: flex;
22
+ flex-direction: column;
23
+ width: 100%;
24
+ height: 100%;
25
+ padding: 0;
26
+ overflow: hidden;
27
+
28
+ @include media(">=tablet") {
29
+ display: grid;
30
+ grid-auto-rows: 62% auto;
31
+ [data-fs-product-card-image] { height: 100%; }
32
+ }
33
+
34
+ @include media(">=notebook") { grid-auto-rows: 80% auto; }
35
+
36
+ [data-fs-product-tile-skeleton-content] {
37
+ display: flex;
38
+ flex-direction: column;
39
+ row-gap: var(--fs-product-tile-skeleton-gap);
40
+ padding: var(--fs-product-tile-skeleton-content-padding);
41
+ background-color: var(--fs-product-tile-skeleton-wide-bkg-color);
42
+
43
+ @include media(">=notebook") {
44
+ flex-direction: row;
45
+ justify-content: space-between;
46
+ height: 100%;
47
+ }
48
+ }
49
+
50
+ [data-fs-product-tile-skeleton-heading] {
51
+ display: flex;
52
+ flex-direction: column;
53
+ row-gap: var(--fs-product-tile-skeleton-gap);
54
+ width: 100%;
55
+ }
56
+
57
+ [data-fs-product-tile-skeleton-badge] {
58
+ max-width: 100%;
59
+ }
60
+
61
+ [data-fs-product-tile-skeleton-image] {
62
+ width: 100%;
63
+ aspect-ratio: var(--fs-product-tile-skeleton-image-aspect-ratio);
64
+ overflow: hidden;
65
+
66
+ [data-fs-skeleton-variant="image"] { border-radius: 0; }
67
+
68
+ @include media(">=tablet") { height: 100%; }
69
+ }
70
+
71
+ [data-fs-product-tile-skeleton-image],
72
+ [data-fs-product-tile-skeleton-badge] {
73
+ [data-fs-skeleton-wrapper],
74
+ [data-fs-skeleton] {
75
+ width: 100%;
76
+ height: 100%;
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,21 @@
1
+ [data-fs-banner-newsletter] {
2
+ margin-bottom: var(--fs-grid-padding);
3
+
4
+ [data-fs-banner-text] {
5
+ border-radius: var(--fs-border-radius);
6
+ }
7
+
8
+ > section {
9
+ margin-top: 0;
10
+ }
11
+
12
+ @include media(">=notebook") {
13
+ display: flex;
14
+ column-gap: var(--fs-grid-gap-3);
15
+
16
+ > section {
17
+ padding-top: 0;
18
+ padding-bottom: 0;
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,49 @@
1
+ [data-fs-filter-skeleton] {
2
+ // --------------------------------------------------------
3
+ // Design Tokens for Filter Skeleton
4
+ // --------------------------------------------------------
5
+
6
+ // Default properties
7
+ --fs-filter-skeleton-margin-top : var(--fs-spacing-1);
8
+
9
+ // Title
10
+ --fs-filter-skeleton-title-max-width : 30%;
11
+ --fs-filter-skeleton-title-margin-bottom : var(--fs-spacing-2);
12
+
13
+ // Content
14
+ --fs-filter-skeleton-content-min-height : var(--fs-spacing-8);
15
+ --fs-filter-skeleton-content-margin-bottom : var(--fs-spacing-0);
16
+ --fs-filter-skeleton-content-padding : var(--fs-spacing-1) var(--fs-spacing-1) var(--fs-spacing-0);
17
+ --fs-filter-skeleton-content-border-color : var(--fs-border-color-light);
18
+ --fs-filter-skeleton-content-border-width : var(--fs-border-width);
19
+ --fs-filter-skeleton-content-border-radius : var(--fs-border-radius);
20
+
21
+ // --------------------------------------------------------
22
+ // Structural Styles
23
+ // --------------------------------------------------------
24
+
25
+ margin-top: var(--fs-filter-skeleton-margin-top);
26
+
27
+ @include media("<notebook") { display: none; }
28
+
29
+ [data-fs-filter-skeleton-text] {
30
+ max-width: var(--fs-filter-skeleton-title-max-width);
31
+ margin-bottom: var(--fs-filter-skeleton-title-margin-bottom);
32
+ }
33
+
34
+ [data-fs-filter-skeleton-content] {
35
+ position: relative;
36
+ display: flex;
37
+ flex-direction: column;
38
+ padding: var(--fs-filter-skeleton-content-padding);
39
+ overflow: hidden;
40
+ border: var(--fs-filter-skeleton-content-border-width) solid var(--fs-filter-skeleton-content-border-color);
41
+ border-radius: var(--fs-filter-skeleton-content-border-radius);
42
+
43
+ [data-fs-skeleton] {
44
+ min-width: 100%;
45
+ min-height: var(--fs-filter-skeleton-content-min-height);
46
+ margin-bottom: var(--fs-filter-skeleton-content-margin-bottom);
47
+ }
48
+ }
49
+ }