@faststore/ui 2.1.33 → 2.1.51

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.1.33",
3
+ "version": "2.1.51",
4
4
  "description": "A lightweight, framework agnostic component library for React",
5
5
  "author": "emersonlaurentino",
6
6
  "license": "MIT",
@@ -34,7 +34,7 @@
34
34
  }
35
35
  ],
36
36
  "dependencies": {
37
- "@faststore/components": "^2.1.33",
37
+ "@faststore/components": "^2.1.51",
38
38
  "include-media": "^1.4.10",
39
39
  "modern-normalize": "^1.1.0",
40
40
  "react-swipeable": "^7.0.0",
@@ -58,5 +58,5 @@
58
58
  "node": "16.18.0",
59
59
  "yarn": "1.19.1"
60
60
  },
61
- "gitHead": "0fae375451465b5d4cc7581d6656c61518bf9e10"
61
+ "gitHead": "661c5d1e345616c2b0ea2e8ceb388263644ff67c"
62
62
  }
@@ -1,64 +1,66 @@
1
1
  // ----------------------------------------------------------
2
- // STORE STYLES
2
+ // FS UI STYLES
3
3
  // Layout
4
4
  // ----------------------------------------------------------
5
5
 
6
- body {
7
- min-height: 100vh;
8
- color: var(--fs-color-text);
9
- background: var(--fs-body-bkg);
10
- }
6
+ @layer base {
7
+ body {
8
+ min-height: 100vh;
9
+ color: var(--fs-color-text);
10
+ background: var(--fs-body-bkg);
11
+ }
11
12
 
12
- main {
13
- display: flex;
14
- flex-direction: column;
15
- }
13
+ main {
14
+ display: flex;
15
+ flex-direction: column;
16
+ }
16
17
 
17
- .layout__section {
18
- margin-bottom: var(--fs-spacing-4);
19
- margin-top: var(--fs-spacing-4);
18
+ .layout__section {
19
+ margin-bottom: var(--fs-spacing-4);
20
+ margin-top: var(--fs-spacing-4);
20
21
 
21
- @include media(">=notebook") {
22
- margin-bottom: var(--fs-grid-padding);
23
- margin-top: var(--fs-grid-padding);
22
+ @include media(">=notebook") {
23
+ margin-bottom: var(--fs-grid-padding);
24
+ margin-top: var(--fs-grid-padding);
25
+ }
24
26
  }
25
- }
26
27
 
27
- .layout__content {
28
- box-sizing: border-box;
29
- width: 100%;
30
- width: calc(100% - var(--fs-grid-padding) - var(--fs-grid-padding));
31
- max-width: var(--fs-grid-max-width);
32
- margin-right: auto;
33
- margin-left: auto;
34
- }
28
+ .layout__content {
29
+ box-sizing: border-box;
30
+ width: 100%;
31
+ width: calc(100% - var(--fs-grid-padding) - var(--fs-grid-padding));
32
+ max-width: var(--fs-grid-max-width);
33
+ margin-right: auto;
34
+ margin-left: auto;
35
+ }
35
36
 
36
- [data-fs-content] { @include layout-content; }
37
+ [data-fs-content] { @include layout-content; }
37
38
 
38
- .no-scroll {
39
- overflow: hidden;
40
- touch-action: none;
41
- }
39
+ .no-scroll {
40
+ overflow: hidden;
41
+ touch-action: none;
42
+ }
42
43
 
43
- // Helper class
44
- .display-mobile {
45
- @include media(">=notebook") {
46
- display: none;
47
- visibility: hidden;
44
+ // Helper class
45
+ .display-mobile {
46
+ @include media(">=notebook") {
47
+ display: none;
48
+ visibility: hidden;
49
+ }
48
50
  }
49
- }
50
51
 
51
- // Helper class
52
- .hidden-mobile {
53
- @include media("<notebook") {
54
- display: none;
55
- visibility: hidden;
52
+ // Helper class
53
+ .hidden-mobile {
54
+ @include media("<notebook") {
55
+ display: none;
56
+ visibility: hidden;
57
+ }
56
58
  }
57
- }
58
59
 
59
- // Image
60
- [data-fs-image] {
61
- width: 100%;
62
- height: 100%;
63
- object-fit: cover;
60
+ // Image
61
+ [data-fs-image] {
62
+ width: 100%;
63
+ height: 100%;
64
+ object-fit: cover;
65
+ }
64
66
  }
@@ -1,54 +1,61 @@
1
- @import "~modern-normalize/modern-normalize";
1
+ // ----------------------------------------------------------
2
+ // FS UI STYLES
3
+ // Reset
4
+ // ----------------------------------------------------------
2
5
 
3
- // Reset default styles
4
- body {
5
- padding: 0;
6
- margin: 0;
7
- }
6
+ @layer base {
7
+ @import "~modern-normalize/modern-normalize";
8
8
 
9
- // Remove all of the default margins
10
- blockquote,
11
- dl,
12
- dd,
13
- h1,
14
- h2,
15
- h3,
16
- h4,
17
- h5,
18
- h6,
19
- hr,
20
- figure,
21
- p,
22
- pre {
23
- margin: 0;
24
- }
9
+ // Reset default styles
10
+ body {
11
+ padding: 0;
12
+ margin: 0;
13
+ }
25
14
 
26
- // Remove heading elements default style
27
- h1,
28
- h2,
29
- h3,
30
- h4,
31
- h5,
32
- h6 {
33
- font-size: inherit;
34
- font-weight: inherit;
35
- }
15
+ // Remove all of the default margins
16
+ blockquote,
17
+ dl,
18
+ dd,
19
+ h1,
20
+ h2,
21
+ h3,
22
+ h4,
23
+ h5,
24
+ h6,
25
+ hr,
26
+ figure,
27
+ p,
28
+ pre {
29
+ margin: 0;
30
+ }
36
31
 
37
- // Remove list elements default style
38
- ol,
39
- ul {
40
- padding: 0;
41
- margin: 0;
42
- list-style: none;
43
- }
32
+ // Remove heading elements default style
33
+ h1,
34
+ h2,
35
+ h3,
36
+ h4,
37
+ h5,
38
+ h6 {
39
+ font-size: inherit;
40
+ font-weight: inherit;
41
+ }
44
42
 
45
- button {
46
- border: 0;
47
- outline: none;
48
- background-color: transparent;
49
- box-shadow: none;
50
- }
43
+ // Remove list elements default style
44
+ ol,
45
+ ul {
46
+ padding: 0;
47
+ margin: 0;
48
+ list-style: none;
49
+ }
50
+
51
+ button {
52
+ border: 0;
53
+ outline: none;
54
+ background-color: transparent;
55
+ box-shadow: none;
56
+ }
51
57
 
52
- html {
53
- font-size: 100%;
58
+ html {
59
+ font-size: 100%;
60
+ }
54
61
  }
@@ -1,278 +1,280 @@
1
1
  // ----------------------------------------------------------
2
- // STORE TOKENS
3
- // Base Store Theme
2
+ // FS UI TOKENS
3
+ // Brandless Theme
4
4
  // ----------------------------------------------------------
5
5
 
6
- body {
7
- // --------------------------------------------------------
8
- // Colors (Branding Core)
9
- // --------------------------------------------------------
10
-
11
- // PALETTE
12
- // Tone values must range from lightest to darkest.
13
- // `0` is more suitable for backgrounds, and `4` for texts.
14
- --fs-color-main-0 : #f1f2f3;
15
- --fs-color-main-1 : #dbdbdb;
16
- --fs-color-main-2 : #00419e;
17
- --fs-color-main-3 : #002c71;
18
- --fs-color-main-4 : #002155;
19
-
20
- --fs-color-accent-0 : #efeaf5;
21
- --fs-color-accent-1 : #d3c9de;
22
- --fs-color-accent-2 : #9d8abf;
23
- --fs-color-accent-3 : #74678c;
24
- --fs-color-accent-4 : #423759;
25
-
26
- --fs-color-neutral-0 : #ffffff;
27
- --fs-color-neutral-1 : #f1f2f3;
28
- --fs-color-neutral-2 : #e3e6e8;
29
- --fs-color-neutral-3 : #c7ccd1;
30
- --fs-color-neutral-4 : #9099a2;
31
- --fs-color-neutral-5 : #74808b;
32
- --fs-color-neutral-6 : #5d666f;
33
- --fs-color-neutral-7 : #171a1c;
34
-
35
- // HIERARCHY
36
- --fs-color-primary-text : var(--fs-color-text-inverse);
37
- --fs-color-primary-bkg : var(--fs-color-main-2);
38
- --fs-color-primary-bkg-hover : var(--fs-color-main-3);
39
- --fs-color-primary-bkg-active : var(--fs-color-main-4);
40
- --fs-color-primary-bkg-light : var(--fs-color-main-0);
41
- --fs-color-primary-bkg-light-active : var(--fs-color-main-1);
42
-
43
- --fs-color-secondary-text : var(--fs-color-primary-bkg);
44
- --fs-color-secondary-bkg : transparent;
45
- --fs-color-secondary-bkg-hover : var(--fs-color-primary-bkg);
46
- --fs-color-secondary-bkg-active : var(--fs-color-main-3);
47
- --fs-color-secondary-bkg-light : var(--fs-color-main-0);
48
- --fs-color-secondary-bkg-light-active: var(--fs-color-secondary-bkg-light);
49
-
50
- --fs-color-tertiary-text : var(--fs-color-link);
51
- --fs-color-tertiary-bkg : transparent;
52
- --fs-color-tertiary-bkg-hover : var(--fs-color-main-0);
53
- --fs-color-tertiary-bkg-active : var(--fs-color-main-1);
54
- --fs-color-tertiary-bkg-light : var(--fs-color-neutral-0);
55
- --fs-color-tertiary-bkg-light-active : var(--fs-color-tertiary-bkg-light);
56
-
57
- // COMPONENTS & STATES
58
- --fs-color-body-bkg : var(--fs-color-neutral-0);
59
- --fs-body-bkg : var(--fs-color-body-bkg);
60
-
61
- --fs-color-action-text : var(--fs-color-text-inverse);
62
- --fs-color-action-bkg : var(--fs-color-accent-4);
63
- --fs-color-action-bkg-hover : var(--fs-color-accent-3);
64
- --fs-color-action-bkg-active : var(--fs-color-accent-2);
65
- --fs-color-action-bkg-light : var(--fs-color-neutral-0);
66
- --fs-color-action-bkg-light-active : var(--fs-color-tertiary-bkg-light);
67
-
68
- --fs-color-link : var(--fs-color-main-2);
69
- --fs-color-link-hover : var(--fs-color-main-2);
70
- --fs-color-link-active : var(--fs-color-main-4);
71
- --fs-color-link-visited : #6058ba;
72
- --fs-color-link-inverse : var(--fs-color-neutral-0);
73
-
74
- --fs-color-text : var(--fs-color-neutral-7);
75
- --fs-color-text-light : var(--fs-color-neutral-6);
76
- --fs-color-text-inverse : var(--fs-color-neutral-0);
77
- --fs-color-text-display : var(--fs-color-neutral-7);
78
-
79
- --fs-color-focus-ring : #8db6fa;
80
- --fs-color-focus-ring-outline : #8db6fa80;
81
- --fs-color-focus-ring-danger : #e1adad;
82
-
83
- // SITUATIONS
84
- --fs-color-success-text : #1e493b;
85
- --fs-color-success-bkg : #b3ebd5;
86
- --fs-color-success-border : var(--fs-color-success-text);
87
-
88
- --fs-color-warning-text : var(--fs-color-text);
89
- --fs-color-warning-bkg : #fdec8d;
90
- --fs-color-warning-border : var(--fs-color-warning-text);
91
-
92
- --fs-color-danger-text : #cb4242;
93
- --fs-color-danger-bkg : var(--fs-color-focus-ring-danger);
94
- --fs-color-danger-border : var(--fs-color-danger-text);
95
-
96
- --fs-color-info-text : var(--fs-color-text);
97
- --fs-color-info-bkg : var(--fs-color-main-1);
98
-
99
- --fs-color-highlighted-text : var(--fs-color-text-display);
100
- --fs-color-highlighted-bkg : var(--fs-color-accent-0);
101
-
102
- --fs-color-neutral-text : var(--fs-color-text);
103
- --fs-color-neutral-bkg : var(--fs-color-neutral-1);
104
-
105
- --fs-color-disabled-text : var(--fs-color-neutral-6);
106
- --fs-color-disabled-bkg : var(--fs-color-neutral-2);
107
-
108
- // --------------------------------------------------------
109
- // Typography (Branding Core)
110
- // --------------------------------------------------------
111
-
112
- // FACE
113
- --fs-text-face-body : -apple-system, system-ui, BlinkMacSystemFont, sans-serif;
114
- --fs-text-face-title : var(--fs-text-face-body);
115
-
116
- // WEIGHT
117
- --fs-text-weight-light : 300;
118
- --fs-text-weight-regular : 400;
119
- --fs-text-weight-bold : 700;
120
- --fs-text-weight-black : 900;
121
-
122
- // MAX LINES
123
- --fs-text-max-lines : 2;
124
-
125
- // TYPOGRAPHY SCALE
126
- // Use a type scale to add rhythm to your typography and
127
- // ensure consistency throughout the project.
128
- // Access https://type-scale.com and pick a scale that
129
- // suits the store's branding.
130
- --fs-text-scale-mobile : 1.13;
131
- --fs-text-scale-desktop : 1.25;
132
-
133
- --fs-scale : var(--fs-text-scale-mobile);
134
-
135
- @include media(">=notebook") {
136
- --fs-scale : var(--fs-text-scale-desktop);
6
+ @layer base {
7
+ body {
8
+ // --------------------------------------------------------
9
+ // Colors (Branding Core)
10
+ // --------------------------------------------------------
11
+
12
+ // PALETTE
13
+ // Tone values must range from lightest to darkest.
14
+ // `0` is more suitable for backgrounds, and `4` for texts.
15
+ --fs-color-main-0 : #f1f2f3;
16
+ --fs-color-main-1 : #dbdbdb;
17
+ --fs-color-main-2 : #00419e;
18
+ --fs-color-main-3 : #002c71;
19
+ --fs-color-main-4 : #002155;
20
+
21
+ --fs-color-accent-0 : #efeaf5;
22
+ --fs-color-accent-1 : #d3c9de;
23
+ --fs-color-accent-2 : #9d8abf;
24
+ --fs-color-accent-3 : #74678c;
25
+ --fs-color-accent-4 : #423759;
26
+
27
+ --fs-color-neutral-0 : #ffffff;
28
+ --fs-color-neutral-1 : #f1f2f3;
29
+ --fs-color-neutral-2 : #e3e6e8;
30
+ --fs-color-neutral-3 : #c7ccd1;
31
+ --fs-color-neutral-4 : #9099a2;
32
+ --fs-color-neutral-5 : #74808b;
33
+ --fs-color-neutral-6 : #5d666f;
34
+ --fs-color-neutral-7 : #171a1c;
35
+
36
+ // HIERARCHY
37
+ --fs-color-primary-text : var(--fs-color-text-inverse);
38
+ --fs-color-primary-bkg : var(--fs-color-main-2);
39
+ --fs-color-primary-bkg-hover : var(--fs-color-main-3);
40
+ --fs-color-primary-bkg-active : var(--fs-color-main-4);
41
+ --fs-color-primary-bkg-light : var(--fs-color-main-0);
42
+ --fs-color-primary-bkg-light-active : var(--fs-color-main-1);
43
+
44
+ --fs-color-secondary-text : var(--fs-color-primary-bkg);
45
+ --fs-color-secondary-bkg : transparent;
46
+ --fs-color-secondary-bkg-hover : var(--fs-color-primary-bkg);
47
+ --fs-color-secondary-bkg-active : var(--fs-color-main-3);
48
+ --fs-color-secondary-bkg-light : var(--fs-color-main-0);
49
+ --fs-color-secondary-bkg-light-active: var(--fs-color-secondary-bkg-light);
50
+
51
+ --fs-color-tertiary-text : var(--fs-color-link);
52
+ --fs-color-tertiary-bkg : transparent;
53
+ --fs-color-tertiary-bkg-hover : var(--fs-color-main-0);
54
+ --fs-color-tertiary-bkg-active : var(--fs-color-main-1);
55
+ --fs-color-tertiary-bkg-light : var(--fs-color-neutral-0);
56
+ --fs-color-tertiary-bkg-light-active : var(--fs-color-tertiary-bkg-light);
57
+
58
+ // COMPONENTS & STATES
59
+ --fs-color-body-bkg : var(--fs-color-neutral-0);
60
+ --fs-body-bkg : var(--fs-color-body-bkg);
61
+
62
+ --fs-color-action-text : var(--fs-color-text-inverse);
63
+ --fs-color-action-bkg : var(--fs-color-accent-4);
64
+ --fs-color-action-bkg-hover : var(--fs-color-accent-3);
65
+ --fs-color-action-bkg-active : var(--fs-color-accent-2);
66
+ --fs-color-action-bkg-light : var(--fs-color-neutral-0);
67
+ --fs-color-action-bkg-light-active : var(--fs-color-tertiary-bkg-light);
68
+
69
+ --fs-color-link : var(--fs-color-main-2);
70
+ --fs-color-link-hover : var(--fs-color-main-2);
71
+ --fs-color-link-active : var(--fs-color-main-4);
72
+ --fs-color-link-visited : #6058ba;
73
+ --fs-color-link-inverse : var(--fs-color-neutral-0);
74
+
75
+ --fs-color-text : var(--fs-color-neutral-7);
76
+ --fs-color-text-light : var(--fs-color-neutral-6);
77
+ --fs-color-text-inverse : var(--fs-color-neutral-0);
78
+ --fs-color-text-display : var(--fs-color-neutral-7);
79
+
80
+ --fs-color-focus-ring : #8db6fa;
81
+ --fs-color-focus-ring-outline : #8db6fa80;
82
+ --fs-color-focus-ring-danger : #e1adad;
83
+
84
+ // SITUATIONS
85
+ --fs-color-success-text : #1e493b;
86
+ --fs-color-success-bkg : #b3ebd5;
87
+ --fs-color-success-border : var(--fs-color-success-text);
88
+
89
+ --fs-color-warning-text : var(--fs-color-text);
90
+ --fs-color-warning-bkg : #fdec8d;
91
+ --fs-color-warning-border : var(--fs-color-warning-text);
92
+
93
+ --fs-color-danger-text : #cb4242;
94
+ --fs-color-danger-bkg : var(--fs-color-focus-ring-danger);
95
+ --fs-color-danger-border : var(--fs-color-danger-text);
96
+
97
+ --fs-color-info-text : var(--fs-color-text);
98
+ --fs-color-info-bkg : var(--fs-color-main-1);
99
+
100
+ --fs-color-highlighted-text : var(--fs-color-text-display);
101
+ --fs-color-highlighted-bkg : var(--fs-color-accent-0);
102
+
103
+ --fs-color-neutral-text : var(--fs-color-text);
104
+ --fs-color-neutral-bkg : var(--fs-color-neutral-1);
105
+
106
+ --fs-color-disabled-text : var(--fs-color-neutral-6);
107
+ --fs-color-disabled-bkg : var(--fs-color-neutral-2);
108
+
109
+ // --------------------------------------------------------
110
+ // Typography (Branding Core)
111
+ // --------------------------------------------------------
112
+
113
+ // FACE
114
+ --fs-text-face-body : -apple-system, system-ui, BlinkMacSystemFont, sans-serif;
115
+ --fs-text-face-title : var(--fs-text-face-body);
116
+
117
+ // WEIGHT
118
+ --fs-text-weight-light : 300;
119
+ --fs-text-weight-regular : 400;
120
+ --fs-text-weight-bold : 700;
121
+ --fs-text-weight-black : 900;
122
+
123
+ // MAX LINES
124
+ --fs-text-max-lines : 2;
125
+
126
+ // TYPOGRAPHY SCALE
127
+ // Use a type scale to add rhythm to your typography and
128
+ // ensure consistency throughout the project.
129
+ // Access https://type-scale.com and pick a scale that
130
+ // suits the store's branding.
131
+ --fs-text-scale-mobile : 1.13;
132
+ --fs-text-scale-desktop : 1.25;
133
+
134
+ --fs-scale : var(--fs-text-scale-mobile);
135
+
136
+ @include media(">=notebook") {
137
+ --fs-scale : var(--fs-text-scale-desktop);
138
+ }
139
+
140
+ // NUMERIC SCALE
141
+ --fs-text-size-base : 16px; // 1rem
142
+
143
+ --fs-text-size-0 : 12px; // Smallest
144
+ --fs-text-size-1 : 14px; // Smaller // Mobile Desktop
145
+ --fs-text-size-2 : var(--fs-text-size-base); // 16px 16px
146
+ --fs-text-size-3 : calc(var(--fs-text-size-2) * var(--fs-scale)); // 18px 20px
147
+ --fs-text-size-4 : calc(var(--fs-text-size-3) * var(--fs-scale)); // 20px 25px
148
+ --fs-text-size-5 : calc(var(--fs-text-size-4) * var(--fs-scale)); // 23px 31px
149
+ --fs-text-size-6 : calc(var(--fs-text-size-5) * var(--fs-scale)); // 26px 39px
150
+ --fs-text-size-7 : calc(var(--fs-text-size-6) * var(--fs-scale)); // 29px 48px
151
+ --fs-text-size-8 : calc(var(--fs-text-size-7) * var(--fs-scale)); // 33px 61px
152
+
153
+ // HIERARCHY SCALE
154
+ --fs-text-size-title-huge : var(--fs-text-size-7);
155
+ --fs-text-size-title-page : var(--fs-text-size-6);
156
+ --fs-text-size-title-product : var(--fs-text-size-4);
157
+ --fs-text-size-title-section : var(--fs-text-size-4);
158
+ --fs-text-size-title-subsection : var(--fs-text-size-4);
159
+ --fs-text-size-title-mini : var(--fs-text-size-4);
160
+ --fs-text-size-lead : var(--fs-text-size-3);
161
+ --fs-text-size-menu : var(--fs-text-size-base);
162
+ --fs-text-size-body : var(--fs-text-size-base);
163
+ --fs-text-size-legend : var(--fs-text-size-1);
164
+ --fs-text-size-tiny : var(--fs-text-size-0);
165
+
166
+ // --------------------------------------------------------
167
+ // Spacing (UI Essentials)
168
+ // --------------------------------------------------------
169
+
170
+ // NUMERIC SCALE
171
+ --fs-spacing-0 : .25rem; // 4px
172
+ --fs-spacing-1 : .5rem; // 8px
173
+ --fs-spacing-2 : .75rem; // 12px
174
+ --fs-spacing-3 : 1rem; // 16px (--fs-text-size-base)
175
+ --fs-spacing-4 : 1.5rem; // 24px
176
+ --fs-spacing-5 : 2rem; // 32px
177
+ --fs-spacing-6 : 2.5rem; // 40px
178
+ --fs-spacing-7 : 3rem; // 48px
179
+ --fs-spacing-8 : 3.5rem; // 56px
180
+ --fs-spacing-9 : 4rem; // 64px
181
+ --fs-spacing-10 : 4.5rem; // 72px
182
+ --fs-spacing-11 : 5rem; // 80px
183
+ --fs-spacing-12 : 5.5rem; // 88px
184
+ --fs-spacing-13 : 6rem; // 96px
185
+
186
+ // --------------------------------------------------------
187
+ // Grid & Layout (UI Essentials)
188
+ // --------------------------------------------------------
189
+
190
+ // PADDING
191
+ --fs-grid-padding : var(--fs-spacing-3);
192
+
193
+ @include media(">=tablet") {
194
+ --fs-grid-padding : var(--fs-spacing-4);
195
+ }
196
+
197
+ @include media(">=notebook") {
198
+ --fs-grid-padding : var(--fs-spacing-5);
199
+ }
200
+
201
+ // Z-INDEX
202
+ --fs-z-index-below : -1;
203
+ --fs-z-index-default : 0;
204
+ --fs-z-index-top : 1;
205
+ --fs-z-index-high : 2;
206
+ --fs-z-index-highest : 3;
207
+
208
+ // CONTAINER
209
+ --fs-grid-max-width : calc(var(--fs-grid-breakpoint-notebook) - var(--fs-grid-padding) - var(--fs-grid-padding));
210
+
211
+ // GAPS
212
+ --fs-grid-gap-0 : var(--fs-spacing-1);
213
+ --fs-grid-gap-1 : var(--fs-spacing-2);
214
+ --fs-grid-gap-2 : var(--fs-spacing-3);
215
+ --fs-grid-gap-3 : var(--fs-spacing-4);
216
+ --fs-grid-gap-4 : var(--fs-spacing-5);
217
+
218
+ // BREAKPOINTS
219
+ --fs-grid-breakpoint-phone : #{map-get($breakpoints, "phone")};
220
+ --fs-grid-breakpoint-phonemid : #{map-get($breakpoints, "phonemid")};
221
+ --fs-grid-breakpoint-tablet : #{map-get($breakpoints, "tablet")};
222
+ --fs-grid-breakpoint-notebook : #{map-get($breakpoints, "notebook")};
223
+ --fs-grid-breakpoint-desktop : #{map-get($breakpoints, "desktop")};
224
+
225
+ // --------------------------------------------------------
226
+ // Interactive Controls (UI Essentials)
227
+ // --------------------------------------------------------
228
+
229
+ // TAP
230
+ --fs-control-tap-size : var(--fs-spacing-7); // 3rem = 48px
231
+ --fs-control-tap-size-smallest : calc(var(--fs-control-tap-size) / 2);
232
+ --fs-control-min-height : var(--fs-control-tap-size);
233
+
234
+ @include media(">=notebook") {
235
+ --fs-control-tap-size : var(--fs-spacing-7); // This value can be smaller on desktops
236
+ }
237
+
238
+ // STATES
239
+ --fs-control-bkg : var(--fs-color-neutral-0);
240
+ --fs-control-bkg-disabled : var(--fs-color-disabled-bkg);
241
+
242
+ // --------------------------------------------------------
243
+ // Refinements
244
+ // --------------------------------------------------------
245
+
246
+ // TRANSITION
247
+ --fs-transition-timing : .2s;
248
+ --fs-transition-property : all;
249
+ --fs-transition-function : ease-in-out;
250
+
251
+ // BORDERS
252
+ --fs-border-radius-small : 1px;
253
+ --fs-border-radius : 2px;
254
+ --fs-border-radius-medium : 8px;
255
+ --fs-border-radius-pill : 100px;
256
+ --fs-border-radius-circle : 100%;
257
+
258
+ --fs-border-width : 1px;
259
+ --fs-border-width-thick : 2px;
260
+ --fs-border-width-thickest : 3px;
261
+
262
+ --fs-border-color : var(--fs-color-neutral-4);
263
+ --fs-border-color-hover : var(--fs-color-main-3);
264
+ --fs-border-color-active : var(--fs-color-main-2);
265
+ --fs-border-color-disabled : var(--fs-color-neutral-6);
266
+
267
+ --fs-border-color-light : var(--fs-color-neutral-2);
268
+ --fs-border-color-light-hover : var(--fs-color-neutral-3);
269
+ --fs-border-color-light-active : var(--fs-color-neutral-3);
270
+ --fs-border-color-light-disabled : var(--fs-color-neutral-5);
271
+
272
+ // SHADOW
273
+ --fs-shadow : none;
274
+ --fs-shadow-darker : 0 0 10px rgb(0 0 0 / 20%);
275
+ --fs-shadow-hover : 0 2px 3px rgba(0,0,0,.1);
276
+
277
+ // LOGO
278
+ --fs-logo-width : 7rem;
137
279
  }
138
-
139
- // NUMERIC SCALE
140
- --fs-text-size-base : 16px; // 1rem
141
-
142
- --fs-text-size-0 : 12px; // Smallest
143
- --fs-text-size-1 : 14px; // Smaller // Mobile Desktop
144
- --fs-text-size-2 : var(--fs-text-size-base); // 16px 16px
145
- --fs-text-size-3 : calc(var(--fs-text-size-2) * var(--fs-scale)); // 18px 20px
146
- --fs-text-size-4 : calc(var(--fs-text-size-3) * var(--fs-scale)); // 20px 25px
147
- --fs-text-size-5 : calc(var(--fs-text-size-4) * var(--fs-scale)); // 23px 31px
148
- --fs-text-size-6 : calc(var(--fs-text-size-5) * var(--fs-scale)); // 26px 39px
149
- --fs-text-size-7 : calc(var(--fs-text-size-6) * var(--fs-scale)); // 29px 48px
150
- --fs-text-size-8 : calc(var(--fs-text-size-7) * var(--fs-scale)); // 33px 61px
151
-
152
- // HIERARCHY SCALE
153
- --fs-text-size-title-huge : var(--fs-text-size-7);
154
- --fs-text-size-title-page : var(--fs-text-size-6);
155
- --fs-text-size-title-product : var(--fs-text-size-4);
156
- --fs-text-size-title-section : var(--fs-text-size-4);
157
- --fs-text-size-title-subsection : var(--fs-text-size-4);
158
- --fs-text-size-title-mini : var(--fs-text-size-4);
159
- --fs-text-size-lead : var(--fs-text-size-3);
160
- --fs-text-size-menu : var(--fs-text-size-base);
161
- --fs-text-size-body : var(--fs-text-size-base);
162
- --fs-text-size-legend : var(--fs-text-size-1);
163
- --fs-text-size-tiny : var(--fs-text-size-0);
164
-
165
- // --------------------------------------------------------
166
- // Spacing (UI Essentials)
167
- // --------------------------------------------------------
168
-
169
- // NUMERIC SCALE
170
- --fs-spacing-0 : .25rem; // 4px
171
- --fs-spacing-1 : .5rem; // 8px
172
- --fs-spacing-2 : .75rem; // 12px
173
- --fs-spacing-3 : 1rem; // 16px (--fs-text-size-base)
174
- --fs-spacing-4 : 1.5rem; // 24px
175
- --fs-spacing-5 : 2rem; // 32px
176
- --fs-spacing-6 : 2.5rem; // 40px
177
- --fs-spacing-7 : 3rem; // 48px
178
- --fs-spacing-8 : 3.5rem; // 56px
179
- --fs-spacing-9 : 4rem; // 64px
180
- --fs-spacing-10 : 4.5rem; // 72px
181
- --fs-spacing-11 : 5rem; // 80px
182
- --fs-spacing-12 : 5.5rem; // 88px
183
- --fs-spacing-13 : 6rem; // 96px
184
-
185
- // --------------------------------------------------------
186
- // Grid & Layout (UI Essentials)
187
- // --------------------------------------------------------
188
-
189
- // PADDING
190
- --fs-grid-padding : var(--fs-spacing-3);
191
-
192
- @include media(">=tablet") {
193
- --fs-grid-padding : var(--fs-spacing-4);
194
- }
195
-
196
- @include media(">=notebook") {
197
- --fs-grid-padding : var(--fs-spacing-5);
198
- }
199
-
200
- // Z-INDEX
201
- --fs-z-index-below : -1;
202
- --fs-z-index-default : 0;
203
- --fs-z-index-top : 1;
204
- --fs-z-index-high : 2;
205
- --fs-z-index-highest : 3;
206
-
207
- // CONTAINER
208
- --fs-grid-max-width : calc(var(--fs-grid-breakpoint-notebook) - var(--fs-grid-padding) - var(--fs-grid-padding));
209
-
210
- // GAPS
211
- --fs-grid-gap-0 : var(--fs-spacing-1);
212
- --fs-grid-gap-1 : var(--fs-spacing-2);
213
- --fs-grid-gap-2 : var(--fs-spacing-3);
214
- --fs-grid-gap-3 : var(--fs-spacing-4);
215
- --fs-grid-gap-4 : var(--fs-spacing-5);
216
-
217
- // BREAKPOINTS
218
- --fs-grid-breakpoint-phone : #{map-get($breakpoints, "phone")};
219
- --fs-grid-breakpoint-phonemid : #{map-get($breakpoints, "phonemid")};
220
- --fs-grid-breakpoint-tablet : #{map-get($breakpoints, "tablet")};
221
- --fs-grid-breakpoint-notebook : #{map-get($breakpoints, "notebook")};
222
- --fs-grid-breakpoint-desktop : #{map-get($breakpoints, "desktop")};
223
-
224
- // --------------------------------------------------------
225
- // Interactive Controls (UI Essentials)
226
- // --------------------------------------------------------
227
-
228
- // TAP
229
- --fs-control-tap-size : var(--fs-spacing-7); // 3rem = 48px
230
- --fs-control-tap-size-smallest : calc(var(--fs-control-tap-size) / 2);
231
- --fs-control-min-height : var(--fs-control-tap-size);
232
-
233
- @include media(">=notebook") {
234
- --fs-control-tap-size : var(--fs-spacing-7); // This value can be smaller on desktops
235
- }
236
-
237
- // STATES
238
- --fs-control-bkg : var(--fs-color-neutral-0);
239
- --fs-control-bkg-disabled : var(--fs-color-disabled-bkg);
240
-
241
- // --------------------------------------------------------
242
- // Refinements
243
- // --------------------------------------------------------
244
-
245
- // TRANSITION
246
- --fs-transition-timing : .2s;
247
- --fs-transition-property : all;
248
- --fs-transition-function : ease-in-out;
249
-
250
- // BORDERS
251
- --fs-border-radius-small : 1px;
252
- --fs-border-radius : 2px;
253
- --fs-border-radius-medium : 8px;
254
- --fs-border-radius-pill : 100px;
255
- --fs-border-radius-circle : 100%;
256
-
257
- --fs-border-width : 1px;
258
- --fs-border-width-thick : 2px;
259
- --fs-border-width-thickest : 3px;
260
-
261
- --fs-border-color : var(--fs-color-neutral-4);
262
- --fs-border-color-hover : var(--fs-color-main-3);
263
- --fs-border-color-active : var(--fs-color-main-2);
264
- --fs-border-color-disabled : var(--fs-color-neutral-6);
265
-
266
- --fs-border-color-light : var(--fs-color-neutral-2);
267
- --fs-border-color-light-hover : var(--fs-color-neutral-3);
268
- --fs-border-color-light-active : var(--fs-color-neutral-3);
269
- --fs-border-color-light-disabled : var(--fs-color-neutral-5);
270
-
271
- // SHADOW
272
- --fs-shadow : none;
273
- --fs-shadow-darker : 0 0 10px rgb(0 0 0 / 20%);
274
- --fs-shadow-hover : 0 2px 3px rgba(0,0,0,.1);
275
-
276
- // LOGO
277
- --fs-logo-width : 7rem;
278
280
  }
@@ -1,64 +1,60 @@
1
1
  // ----------------------------------------------------------
2
- // STORE STYLES
2
+ // FS UI STYLES
3
3
  // Typography (Text)
4
4
  // ----------------------------------------------------------
5
5
 
6
- body {
7
- font-family: var(--fs-text-face-body);
8
- font-size: var(--fs-text-size-base);
9
- letter-spacing: .01em;
10
- -webkit-font-smoothing: antialiased;
11
- -moz-osx-font-smoothing: grayscale;
12
- }
13
-
14
- h1, h2, h3, h4, h5, h6, p, ul {
15
- padding: 0;
16
- margin: 0;
17
- }
18
-
19
- .text__title-section {
20
- font-size: var(--fs-text-size-4);
21
- font-weight: var(--fs-text-weight-bold);
22
- line-height: 1.16;
23
-
24
- @include media(">=notebook") { font-size: var(--fs-text-size-5); }
25
- }
26
-
27
- .text__title-subsection {
28
- font-size: var(--fs-text-size-3);
29
- font-weight: var(--fs-text-weight-bold);
30
- line-height: 1.2;
31
- }
32
-
33
- .text__title-mini {
34
- font-size: var(--fs-text-size-2);
35
- font-weight: var(--fs-text-weight-bold);
36
- line-height: 1.25;
37
- }
38
-
39
- // TODO: Can we replace this with `.text__body`?
40
- .text__title-mini-alt {
41
- font-size: var(--fs-text-size-2);
42
- line-height: 1.25;
43
- }
44
-
45
- .text__lead {
46
- font-size: var(--fs-text-size-4);
47
- font-weight: var(--fs-text-weight-bold);
48
- line-height: 1.12;
49
- }
50
-
51
- .text__body {
52
- font-size: var(--fs-text-size-2);
53
- line-height: 1.5;
54
- }
55
-
56
- .text__legend {
57
- font-size: var(--fs-text-size-1);
58
- line-height: 1.7;
59
- }
60
-
61
- .text__tiny {
62
- font-size: var(--fs-text-size-0);
63
- line-height: 1.5;
6
+ @layer base {
7
+ body {
8
+ font-family: var(--fs-text-face-body);
9
+ font-size: var(--fs-text-size-base);
10
+ letter-spacing: .01em;
11
+ -webkit-font-smoothing: antialiased;
12
+ -moz-osx-font-smoothing: grayscale;
13
+ }
14
+
15
+ h1, h2, h3, h4, h5, h6, p, ul {
16
+ padding: 0;
17
+ margin: 0;
18
+ }
19
+
20
+ .text__title-section {
21
+ font-size: var(--fs-text-size-4);
22
+ font-weight: var(--fs-text-weight-bold);
23
+ line-height: 1.16;
24
+
25
+ @include media(">=notebook") { font-size: var(--fs-text-size-5); }
26
+ }
27
+
28
+ .text__title-mini {
29
+ font-size: var(--fs-text-size-2);
30
+ font-weight: var(--fs-text-weight-bold);
31
+ line-height: 1.25;
32
+ }
33
+
34
+ // TODO: Can we replace this with `.text__body`?
35
+ .text__title-mini-alt {
36
+ font-size: var(--fs-text-size-2);
37
+ line-height: 1.25;
38
+ }
39
+
40
+ .text__lead {
41
+ font-size: var(--fs-text-size-4);
42
+ font-weight: var(--fs-text-weight-bold);
43
+ line-height: 1.12;
44
+ }
45
+
46
+ .text__body {
47
+ font-size: var(--fs-text-size-2);
48
+ line-height: 1.5;
49
+ }
50
+
51
+ .text__legend {
52
+ font-size: var(--fs-text-size-1);
53
+ line-height: 1.7;
54
+ }
55
+
56
+ .text__tiny {
57
+ font-size: var(--fs-text-size-0);
58
+ line-height: 1.5;
59
+ }
64
60
  }
@@ -1,3 +1,8 @@
1
+ // ----------------------------------------------------------
2
+ // FS UI STYLES
3
+ // Utilities
4
+ // ----------------------------------------------------------
5
+
1
6
  /* SQ-DISABLE */
2
7
  @use "sass:math";
3
8
  /* SQ-ENABLE */