@faststore/ui 2.0.102-alpha.0 → 2.0.103-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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/ui",
3
- "version": "2.0.102-alpha.0",
3
+ "version": "2.0.103-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": "c9841c86822020c65161193647edf280cd765efa"
61
+ "gitHead": "cac804588d1f91794f39bf7b7ce8e18234a7286a"
62
62
  }
@@ -0,0 +1,209 @@
1
+ [data-fs-image-gallery] {
2
+ // --------------------------------------------------------
3
+ // Design Tokens for Image Gallery
4
+ // --------------------------------------------------------
5
+
6
+ // Default properties
7
+ --fs-image-gallery-width : calc(100% + (2 * var(--fs-grid-padding)));
8
+ --fs-image-gallery-transition-timing : var(--fs-transition-timing);
9
+ --fs-image-gallery-transition-function : var(--fs-transition-function);
10
+ --fs-image-gallery-gap-mobile : var(--fs-spacing-2);
11
+ --fs-image-gallery-gap-notebook : var(--fs-spacing-3);
12
+
13
+ // Controls
14
+ --fs-image-gallery-selector-control-bkg-color : var(--fs-control-bkg);
15
+ --fs-image-gallery-selector-control-border-radius : var(--fs-border-radius-circle);
16
+ --fs-image-gallery-selector-control-shadow : var(--fs-shadow-darker);
17
+ --fs-image-gallery-selector-control-gradient-bkg-color : var(--fs-color-body-bkg);
18
+
19
+ // Current Selected Image
20
+ --fs-image-gallery-current-height : 33.125rem; // 530px
21
+ --fs-image-gallery-current-border-radius : var(--fs-border-radius);
22
+
23
+ // Image Gallery Selector
24
+ --fs-image-gallery-selector-max-height : var(--fs-image-gallery-current-height);
25
+
26
+ // Image Gallery Selector Elements
27
+ --fs-image-gallery-selector-elements-gap : var(--fs-spacing-1);
28
+ --fs-image-gallery-selector-elements-gap-notebook : var(--fs-spacing-2);
29
+ --fs-image-gallery-selector-elements-padding : var(--fs-spacing-0) var(--fs-spacing-2);
30
+
31
+ // Image Gallery Selector Thumbnail
32
+ --fs-image-gallery-selector-thumbnail-width-mobile : var(--fs-spacing-8);
33
+ --fs-image-gallery-selector-thumbnail-height-mobile : var(--fs-image-gallery-selector-thumbnail-width-mobile);
34
+ --fs-image-gallery-selector-thumbnail-width-notebook : var(--fs-spacing-10);
35
+ --fs-image-gallery-selector-thumbnail-height-notebook : var(--fs-image-gallery-selector-thumbnail-width-notebook);
36
+ --fs-image-gallery-selector-thumbnail-border-radius : var(--fs-border-radius);
37
+ --fs-image-gallery-selector-thumbnail-border-width : var(--fs-border-width-thick);
38
+ --fs-image-gallery-selector-thumbnail-selected-border-color : var(--fs-border-color-active);
39
+ --fs-image-gallery-selector-thumbnail-selected-border-width : var(--fs-border-width-thickest);
40
+ --fs-image-gallery-selector-thumbnail-image-border-radius : var(--fs-border-radius-small);
41
+
42
+ // --------------------------------------------------------
43
+ // Structural Styles
44
+ // --------------------------------------------------------
45
+
46
+ // Image Gallery
47
+
48
+ position: relative;
49
+ left: calc(-1 * var(--fs-grid-padding));
50
+ display: flex;
51
+ flex-direction: column;
52
+ row-gap: var(--fs-image-gallery-gap-mobile);
53
+ width: var(--fs-image-gallery-width);
54
+
55
+ @include media(">=tablet") {
56
+ left: 0;
57
+ width: 100%;
58
+
59
+ > [data-fs-image] {
60
+ grid-column: 2 / span 7;
61
+ border-radius: var(--fs-image-gallery-current-border-radius);
62
+ }
63
+ }
64
+
65
+ @include media(">=notebook") {
66
+ >[data-fs-image] {
67
+ height: var(--fs-image-gallery-current-height);
68
+ }
69
+ }
70
+
71
+ // Image Gallery Selector
72
+
73
+ [data-fs-image-gallery-selector] {
74
+ position: relative;
75
+ display: flex;
76
+ align-items: center;
77
+ justify-content: center;
78
+ max-height: var(--fs-image-gallery-selector-max-height);
79
+
80
+ @include media("<notebook") { overflow: hidden; }
81
+
82
+ @include media(">=notebook") {
83
+ flex-direction: column;
84
+ grid-row: 1;
85
+ justify-content: space-between;
86
+ }
87
+ }
88
+
89
+ [data-fs-image-gallery-selector-elements] {
90
+ display: flex;
91
+ column-gap: var(--fs-image-gallery-selector-elements-gap);
92
+ padding: var(--fs-image-gallery-selector-elements-padding);
93
+ overflow-x: auto;
94
+ scroll-behavior: smooth;
95
+
96
+ &::-webkit-scrollbar { display: none; }
97
+
98
+ @include media(">=notebook") {
99
+ flex-direction: column;
100
+ row-gap: var(--fs-image-gallery-selector-elements-gap-notebook);
101
+ overflow-y: hidden;
102
+ }
103
+ }
104
+
105
+ [data-fs-image-gallery-selector-thumbnail] {
106
+ flex-shrink: 0;
107
+ width: var(--fs-image-gallery-selector-thumbnail-width-mobile);
108
+ height: var(--fs-image-gallery-selector-thumbnail-height-mobile);
109
+ padding: 0;
110
+ overflow: hidden;
111
+ background-color: transparent;
112
+ border: var(--fs-image-gallery-selector-thumbnail-border-width) solid transparent;
113
+ border-radius: var(--fs-image-gallery-selector-thumbnail-border-radius);
114
+ transition: all var(--fs-image-gallery-transition-timing) var(--fs-image-gallery-transition-function);
115
+
116
+ &:hover:not([data-fs-image-gallery-selector-thumbnail="selected"]) {
117
+ border-color: var(--fs-image-gallery-selector-thumbnail-selected-border-color);
118
+ }
119
+
120
+ &[data-fs-image-gallery-selector-thumbnail="selected"] {
121
+ border-color: var(--fs-image-gallery-selector-thumbnail-selected-border-color);
122
+ box-shadow: 0 0 0 var(--fs-image-gallery-selector-thumbnail-selected-border-width) var(--fs-color-focus-ring-outline);
123
+ }
124
+
125
+ > span {
126
+ width: 100%;
127
+ height: 100%;
128
+ }
129
+
130
+ [data-fs-image] {
131
+ border-radius: var(--fs-image-gallery-selector-thumbnail-image-border-radius);
132
+ transform: scale(0.95);
133
+ }
134
+
135
+ @include focus-ring-visible;
136
+
137
+ @include media(">=notebook") {
138
+ width: var(--fs-image-gallery-selector-thumbnail-width-notebook);
139
+ height: var(--fs-image-gallery-selector-thumbnail-height-notebook);
140
+ }
141
+ }
142
+
143
+ [data-fs-image-gallery-selector-control] {
144
+ position: absolute;
145
+ display: flex;
146
+ align-items: center;
147
+ z-index: 1;
148
+
149
+ &::after {
150
+ background: linear-gradient(90deg, var(--fs-image-gallery-selector-control-gradient-bkg-color) 55%, transparent);
151
+ content: '';
152
+ width: 100%;
153
+ height: 100%;
154
+ position: absolute;
155
+ left: 0;
156
+ z-index: -1;
157
+ @include media(">=notebook") { background: linear-gradient(180deg, var(--fs-image-gallery-selector-control-gradient-bkg-color) 55%, transparent); }
158
+ }
159
+
160
+ @include media("<notebook") {
161
+ height: 100%;
162
+ padding-left: var(--fs-grid-padding);
163
+
164
+ &::after { left: calc(-1 * var(--fs-grid-padding)); }
165
+
166
+ &:first-child { left: 0; }
167
+
168
+ &:last-child {
169
+ right: 0;
170
+ transform: scaleX(-1);
171
+ }
172
+ }
173
+
174
+ @include media(">=notebook") {
175
+ justify-content: center;
176
+ width: 100%;
177
+
178
+ &::after { top: calc(-1 * var(--fs-spacing-3)); }
179
+
180
+ &:last-child {
181
+ bottom: 0;
182
+ transform: scaleY(-1);
183
+ }
184
+ }
185
+
186
+ }
187
+
188
+ [data-fs-image-gallery-selector-control-button] {
189
+ background-color: var(--fs-image-gallery-selector-control-bkg-color);
190
+ border-radius: var(--fs-image-gallery-selector-control-border-radius);
191
+ box-shadow: var(--fs-image-gallery-selector-control-shadow);
192
+
193
+ @include media(">=notebook") {
194
+ transform: rotate(90deg);
195
+ }
196
+ }
197
+
198
+ // --------------------------------------------------------
199
+ // Variants Styles
200
+ // --------------------------------------------------------
201
+
202
+ &[data-fs-image-gallery="with-selector"] {
203
+ @include media(">=notebook") {
204
+ display: grid;
205
+ grid-template-columns: repeat(8, 1fr);
206
+ column-gap: var(--fs-image-gallery-gap-notebook);
207
+ }
208
+ }
209
+ }
@@ -54,6 +54,7 @@
54
54
  @import "../components/organisms/Filter/styles";
55
55
  @import "../components/organisms/FilterSlider/styles";
56
56
  @import "../components/organisms/Hero/styles";
57
+ @import "../components/organisms/ImageGallery/styles";
57
58
  @import "../components/organisms/OutOfStock/styles";
58
59
  @import "../components/organisms/PaymentMethods/styles";
59
60
  @import "../components/organisms/PriceRange/styles";