@fs-design/pantry 6.567.7

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of @fs-design/pantry might be problematic. Click here for more details.

Files changed (52) hide show
  1. package/build.js +91 -0
  2. package/package.json +21 -0
  3. package/src/base/_box-model.scss +9 -0
  4. package/src/base/_reset.scss +53 -0
  5. package/src/base/typography/base/_font-face-gilroy.scss +35 -0
  6. package/src/base/typography/base/_font-face-inter.scss +35 -0
  7. package/src/base/typography/base/_font-face-thai.scss +71 -0
  8. package/src/base/typography/base/_links.scss +13 -0
  9. package/src/base/typography/base/_lists.scss +5 -0
  10. package/src/base/typography/base/_typography.scss +137 -0
  11. package/src/components/accordion/_index.scss +50 -0
  12. package/src/components/button/base/_button.scss +174 -0
  13. package/src/components/button/base/_mixins.scss +40 -0
  14. package/src/components/card/_index.scss +97 -0
  15. package/src/components/choice/base/_index.scss +72 -0
  16. package/src/components/choice/checkbox/_index.scss +43 -0
  17. package/src/components/choice/radio-button/_index.scss +52 -0
  18. package/src/components/file-selector/_index.scss +118 -0
  19. package/src/components/form-control/_index.scss +57 -0
  20. package/src/components/icon/_index.scss +27 -0
  21. package/src/components/input/_form-input.scss +35 -0
  22. package/src/components/input-group/_index.scss +62 -0
  23. package/src/components/layout/_grid.scss +364 -0
  24. package/src/components/logo/_index.scss +16 -0
  25. package/src/components/modal/_index.scss +84 -0
  26. package/src/components/navigation-bar/_index.scss +36 -0
  27. package/src/components/navigation-bar/_nav-menu-item.scss +49 -0
  28. package/src/components/navigation-bar/_nav-menu.scss +53 -0
  29. package/src/components/navigation-bar/_nav-submenu.scss +148 -0
  30. package/src/components/navigation-bar/_nav.scss +90 -0
  31. package/src/components/navigation-bar/_navbar.scss +114 -0
  32. package/src/components/progress-indicator/_index.scss +140 -0
  33. package/src/components/radial-progress/_index.scss +23 -0
  34. package/src/components/select/_index.scss +49 -0
  35. package/src/components/step-progress/_index.scss +137 -0
  36. package/src/components/table/_index.scss +41 -0
  37. package/src/components/textarea/_index.scss +36 -0
  38. package/src/shared/variables/border-radius/border-radius.scss +4 -0
  39. package/src/shared/variables/breakpoints/breakpoints.common.js +7 -0
  40. package/src/shared/variables/colors/colors.common.js +83 -0
  41. package/src/shared/variables/colors/colors.scss +82 -0
  42. package/src/shared/variables/shadows/shadows.common.js +5 -0
  43. package/src/shared/variables/shadows/shadows.scss +4 -0
  44. package/src/shared/variables/spacing/spacing.scss +11 -0
  45. package/src/shared/variables/type/type.scss +33 -0
  46. package/src/utilities/background/_index.scss +11 -0
  47. package/src/utilities/display/_mixins.scss +17 -0
  48. package/src/utilities/images/_index.scss +4 -0
  49. package/src/utilities/spacing/_mixins.scss +26 -0
  50. package/src/utilities/text-alignment/_index.scss +107 -0
  51. package/src/utilities/text-color/_index.scss +3 -0
  52. package/src/utilities/text-weight/_index.scss +7 -0
@@ -0,0 +1,364 @@
1
+ // Names
2
+ $container: 'container' !default;
3
+ $row: 'row' !default;
4
+ $cell: 'col' !default;
5
+
6
+ // ------------------------------------
7
+ // Mixins
8
+ // ------------------------------------
9
+
10
+ // Generate the different container sizes at various break points
11
+ // Usage:
12
+ // @import generate-container ( <Nested List Of (breakpoint-size, container-size)> )
13
+ // Example:
14
+ // @import generate-container ( (1200px, 1170px), (768px, 750px) )
15
+ @mixin generate-container($breakpoints) {
16
+ @each $bp-size, $container-size in $breakpoints {
17
+ @media (min-width: $bp-size) {
18
+ max-width: $container-size + $grid-horizontal-gutter;
19
+ }
20
+ }
21
+ }
22
+
23
+ @mixin cell-fractions-class-names(
24
+ $numerator,
25
+ $denominator,
26
+ $breakpoint: null,
27
+ $breakpoint-name: null
28
+ ) {
29
+ $fraction: #{$numerator}\/#{$denominator};
30
+ $width: percentage($numerator/$denominator);
31
+
32
+ @if ($breakpoint and $breakpoint-name) {
33
+ .#{$cell}--#{$fraction}-#{$breakpoint-name} {
34
+ @media (min-width: $breakpoint) {
35
+ width: $width;
36
+ flex: none;
37
+ }
38
+ }
39
+ } @else {
40
+ .#{$cell}--#{$fraction} {
41
+ width: $width;
42
+ flex: none;
43
+ }
44
+ }
45
+ }
46
+
47
+ // Cell Size Mixin
48
+ @mixin generate-cells-fractions($breakpoint: null, $breakpoint-name: null) {
49
+ @each $denominator in $grid-columns {
50
+ @for $i from 1 through $denominator {
51
+ @include cell-fractions-class-names(
52
+ $i,
53
+ $denominator,
54
+ $breakpoint,
55
+ $breakpoint-name
56
+ );
57
+ }
58
+ }
59
+ }
60
+
61
+ // Grid Alignment Mixin
62
+ @mixin row-alignment($position, $breakpoints) {
63
+ .row--align-#{$position} {
64
+ @content;
65
+ }
66
+
67
+ @each $bp-size, $name in $breakpoints {
68
+ .row--align-#{$position}-#{$name} {
69
+ @media (min-width: $bp-size) {
70
+ @content;
71
+ }
72
+ }
73
+ }
74
+ }
75
+
76
+ // Cell Alignment Mixin
77
+ @mixin cell-alignment($position, $breakpoints) {
78
+ .#{$cell}--align-#{$position} {
79
+ @content;
80
+ }
81
+ @each $bp-size, $name in $breakpoints {
82
+ .#{$cell}--align-#{$position}-#{$name} {
83
+ @media (min-width: $bp-size) {
84
+ @content;
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ // ------------------------------------
91
+ // CSS
92
+ // ------------------------------------
93
+ .#{$container} {
94
+ display: block;
95
+ margin: 0 auto;
96
+ padding: 0 ($grid-horizontal-gutter / 2);
97
+ width: 100%;
98
+
99
+ @include generate-container(
100
+ (
101
+ ($breakpoint-small, $grid-container-small),
102
+ ($breakpoint-medium, $grid-container-medium),
103
+ ($breakpoint-large, $grid-container-large)
104
+ )
105
+ );
106
+ }
107
+
108
+ .#{$container}--fluid {
109
+ max-width: 100%;
110
+ }
111
+
112
+ .#{$row} {
113
+ display: flex;
114
+ flex-wrap: wrap;
115
+ margin: (-$grid-vertical-gutter / 2);
116
+
117
+ & + & {
118
+ margin-top: ($grid-vertical-gutter / 2);
119
+ }
120
+
121
+ & + .#{row}-no-grid {
122
+ margin-top: $grid-vertical-gutter;
123
+ }
124
+
125
+ &::after {
126
+ content: ' ';
127
+ display: table;
128
+ clear: both;
129
+ }
130
+ }
131
+
132
+ .#{row}-no-grid {
133
+ & + & {
134
+ margin-top: $grid-vertical-gutter;
135
+ }
136
+
137
+ & + .#{row} {
138
+ margin-top: ($grid-vertical-gutter / 2);
139
+ }
140
+ }
141
+
142
+ .#{$cell} {
143
+ padding: 0 ($grid-horizontal-gutter / 2);
144
+ margin: ($grid-vertical-gutter / 2) 0;
145
+ width: 100%;
146
+ max-width: 100%;
147
+ float: left;
148
+ }
149
+
150
+ // Columns that are auto-sized
151
+ @mixin fill-as-much-space-as-needed {
152
+ width: auto;
153
+ flex: none;
154
+ }
155
+
156
+ // Columns that fill the remaining space
157
+ @mixin fill-remaining-space {
158
+ width: auto;
159
+ flex: 1 1 0;
160
+ }
161
+
162
+ // --------------------------------
163
+ // Generate the cell sizings for
164
+ // different breakpoints
165
+ // --------------------------------
166
+
167
+ // Mobile-first modifiers
168
+ @include generate-cells-fractions();
169
+
170
+ .#{$cell}--auto {
171
+ @include fill-as-much-space-as-needed;
172
+ }
173
+
174
+ .#{$cell}--fill {
175
+ @include fill-remaining-space;
176
+ }
177
+
178
+ // Small modifiers
179
+ @include generate-cells-fractions($breakpoint-small, 'small');
180
+
181
+ .#{$cell}--auto-small {
182
+ @media (min-width: $breakpoint-small) {
183
+ @include fill-as-much-space-as-needed;
184
+ }
185
+ }
186
+
187
+ .#{$cell}--fill-small {
188
+ @media (min-width: $breakpoint-small) {
189
+ @include fill-remaining-space;
190
+ }
191
+ }
192
+
193
+ @include generate-cells-fractions($breakpoint-medium, 'medium');
194
+
195
+ .#{$cell}--auto-medium {
196
+ @media (min-width: $breakpoint-medium) {
197
+ @include fill-as-much-space-as-needed;
198
+ }
199
+ }
200
+
201
+ .#{$cell}--fill-medium {
202
+ @media (min-width: $breakpoint-medium) {
203
+ @include fill-remaining-space;
204
+ }
205
+ }
206
+
207
+ @include generate-cells-fractions($breakpoint-large, 'large');
208
+
209
+ .#{$cell}--auto-large {
210
+ @media (min-width: $breakpoint-large) {
211
+ @include fill-as-much-space-as-needed;
212
+ }
213
+ }
214
+
215
+ .#{$cell}--fill-large {
216
+ @media (min-width: $breakpoint-large) {
217
+ @include fill-remaining-space;
218
+ }
219
+ }
220
+
221
+ // --------------------------------
222
+ // Row Horizontal Alignment
223
+ // --------------------------------
224
+ @include row-alignment(
225
+ 'left',
226
+ (
227
+ ($breakpoint-small, 'small'),
228
+ ($breakpoint-medium, 'medium'),
229
+ ($breakpoint-large, 'large')
230
+ )
231
+ ) {
232
+ justify-content: flex-start;
233
+ }
234
+
235
+ @include row-alignment(
236
+ 'right',
237
+ (
238
+ ($breakpoint-small, 'small'),
239
+ ($breakpoint-medium, 'medium'),
240
+ ($breakpoint-large, 'large')
241
+ )
242
+ ) {
243
+ justify-content: flex-end;
244
+ }
245
+
246
+ @include row-alignment(
247
+ 'center',
248
+ (
249
+ ($breakpoint-small, 'small'),
250
+ ($breakpoint-medium, 'medium'),
251
+ ($breakpoint-large, 'large')
252
+ )
253
+ ) {
254
+ justify-content: center;
255
+ }
256
+
257
+ // --------------------------------
258
+ // Row Vertical Alignment
259
+ // --------------------------------
260
+ @include row-alignment(
261
+ 'top',
262
+ (
263
+ ($breakpoint-small, 'small'),
264
+ ($breakpoint-medium, 'medium'),
265
+ ($breakpoint-large, 'large')
266
+ )
267
+ ) {
268
+ align-items: flex-start;
269
+ }
270
+
271
+ @include row-alignment(
272
+ 'bottom',
273
+ (
274
+ ($breakpoint-small, 'small'),
275
+ ($breakpoint-medium, 'medium'),
276
+ ($breakpoint-large, 'large')
277
+ )
278
+ ) {
279
+ align-items: flex-end;
280
+ }
281
+
282
+ @include row-alignment(
283
+ 'middle',
284
+ (
285
+ ($breakpoint-small, 'small'),
286
+ ($breakpoint-medium, 'medium'),
287
+ ($breakpoint-large, 'large')
288
+ )
289
+ ) {
290
+ align-items: center;
291
+ }
292
+
293
+ // --------------------------------
294
+ // Cell Vertical Alignment
295
+ // --------------------------------
296
+ @include cell-alignment(
297
+ 'top',
298
+ (
299
+ ($breakpoint-small, 'small'),
300
+ ($breakpoint-medium, 'medium'),
301
+ ($breakpoint-large, 'large')
302
+ )
303
+ ) {
304
+ align-self: flex-start;
305
+ }
306
+
307
+ @include cell-alignment(
308
+ 'bottom',
309
+ (
310
+ ($breakpoint-small, 'small'),
311
+ ($breakpoint-medium, 'medium'),
312
+ ($breakpoint-large, 'large')
313
+ )
314
+ ) {
315
+ align-self: flex-end;
316
+ }
317
+
318
+ @include cell-alignment(
319
+ 'middle',
320
+ (
321
+ ($breakpoint-small, 'small'),
322
+ ($breakpoint-medium, 'medium'),
323
+ ($breakpoint-large, 'large')
324
+ )
325
+ ) {
326
+ align-self: center;
327
+ }
328
+
329
+ // --------------------------------
330
+ // Cell Horizontal Alignment
331
+ // --------------------------------
332
+ @include cell-alignment(
333
+ 'left',
334
+ (
335
+ ($breakpoint-small, 'small'),
336
+ ($breakpoint-medium, 'medium'),
337
+ ($breakpoint-large, 'large')
338
+ )
339
+ ) {
340
+ margin-right: auto;
341
+ }
342
+
343
+ @include cell-alignment(
344
+ 'center',
345
+ (
346
+ ($breakpoint-small, 'small'),
347
+ ($breakpoint-medium, 'medium'),
348
+ ($breakpoint-large, 'large')
349
+ )
350
+ ) {
351
+ margin-left: auto;
352
+ margin-right: auto;
353
+ }
354
+
355
+ @include cell-alignment(
356
+ 'right',
357
+ (
358
+ ($breakpoint-small, 'small'),
359
+ ($breakpoint-medium, 'medium'),
360
+ ($breakpoint-large, 'large')
361
+ )
362
+ ) {
363
+ margin-left: auto;
364
+ }
@@ -0,0 +1,16 @@
1
+ .logo {
2
+ height: 4.5rem;
3
+ width: 4.5rem;
4
+ }
5
+
6
+ .logo--fs {
7
+ width: 27rem;
8
+ }
9
+
10
+ .logo--fsmk {
11
+ width: 41.25rem;
12
+ }
13
+
14
+ .logo--stacked {
15
+ width: 13.5rem;
16
+ }
@@ -0,0 +1,84 @@
1
+ $modal-max-width: 456px + ($spacing-5 * 2);
2
+
3
+ .modal,
4
+ .modal-container {
5
+ position: fixed;
6
+ top: 0;
7
+ left: 0;
8
+ width: 100%;
9
+ }
10
+
11
+ .modal-container {
12
+ display: none;
13
+ background-color: transparentize(#000, 0.3);
14
+ height: 100%;
15
+ z-index: 20;
16
+
17
+ &.is-open {
18
+ display: block;
19
+ }
20
+ }
21
+
22
+ .modal {
23
+ padding: 0;
24
+ max-height: 100vh;
25
+ overflow-y: auto;
26
+ border: $spacing-5 solid transparent;
27
+
28
+ @media (min-width: $breakpoint-small) {
29
+ max-width: $modal-max-width;
30
+ top: 50%;
31
+ left: 50%;
32
+ transform: translate(-50%, -50%);
33
+ }
34
+ }
35
+
36
+ .modal__content {
37
+ background-color: $color-white;
38
+ border-radius: $border-radius-default;
39
+ padding: $spacing-5;
40
+ height: 100%;
41
+ width: 100%;
42
+
43
+ @media (min-width: $breakpoint-small) {
44
+ padding: $spacing-6;
45
+ }
46
+ }
47
+
48
+ .modal__close {
49
+ padding: 0;
50
+ display: block;
51
+ box-shadow: none;
52
+ border: 0;
53
+ line-height: 1;
54
+ font-size: 2rem;
55
+ color: $color-gray-400;
56
+ margin-bottom: $spacing-5;
57
+ margin-left: auto;
58
+ width: 1em;
59
+ cursor: pointer;
60
+
61
+ &:hover {
62
+ color: $color-blue-300;
63
+ transform: none;
64
+ box-shadow: none;
65
+ }
66
+
67
+ @media (min-width: $breakpoint-small) {
68
+ margin-bottom: $spacing-6;
69
+ }
70
+ }
71
+
72
+ .modal__hero {
73
+ text-align: center;
74
+ margin-bottom: $spacing-7;
75
+ }
76
+
77
+ .modal__header {
78
+ text-align: center;
79
+ margin-bottom: $spacing-3;
80
+ }
81
+
82
+ .modal__actions {
83
+ margin-top: $spacing-9;
84
+ }
@@ -0,0 +1,36 @@
1
+ $navbar-padding: $spacing-5 $spacing-6;
2
+ $navbar-min-height: 80px;
3
+ $menu-item-padding: $spacing-4 $spacing-5;
4
+ $menu-submenu-width: 310px;
5
+ $menu-margin-between: $spacing-2;
6
+ $menu-transition-fn: cubic-bezier(0, 0, 0.2, 1);
7
+ $menu-hamburger-transition-fn: cubic-bezier(0.215, 0.61, 0.355, 1);
8
+ $menu-hamburger-transition-duration: 75ms;
9
+ $hamburger-breakpoint: $breakpoint-medium;
10
+
11
+ %clickable-menu-item {
12
+ text-decoration: none;
13
+ outline: 0;
14
+ display: flex;
15
+ color: $l-base-gray-darker;
16
+ padding: $menu-item-padding;
17
+ border-radius: $border-radius-default;
18
+ transition: color 200ms $menu-transition-fn,
19
+ background-color 200ms $menu-transition-fn;
20
+
21
+ &:hover,
22
+ &:focus {
23
+ background-color: $l-primary-lightest;
24
+ }
25
+
26
+ &:active,
27
+ &:focus {
28
+ color: $l-primary;
29
+ }
30
+ }
31
+
32
+ @import './nav';
33
+ @import './navbar';
34
+ @import './nav-menu';
35
+ @import './nav-menu-item';
36
+ @import './nav-submenu';
@@ -0,0 +1,49 @@
1
+ .nav-menu__item {
2
+ a:not(.btn) {
3
+ @extend %clickable-menu-item;
4
+ }
5
+ }
6
+
7
+ .nav-menu__item--separator {
8
+ padding: 0;
9
+ border-width: 0;
10
+ border-color: $l-base-gray-lightest;
11
+ border-style: solid;
12
+ border-bottom-width: 1px;
13
+ height: auto;
14
+ width: 100vw;
15
+ margin: ($spacing-4) (-$spacing-3);
16
+ pointer-events: none;
17
+
18
+ @media (min-width: $hamburger-breakpoint) {
19
+ height: 3.42857em;
20
+ width: auto;
21
+ margin: 0 $spacing-2;
22
+ border-right-width: 1px;
23
+ }
24
+ }
25
+
26
+ .nav-menu__item + .nav-menu__item,
27
+ .nav-menu__item + .nav-submenu {
28
+ margin-top: $menu-margin-between;
29
+
30
+ @media (min-width: $hamburger-breakpoint) {
31
+ margin-top: 0;
32
+ margin-left: $menu-margin-between;
33
+ }
34
+ }
35
+
36
+ .nav-menu__item + .nav-menu__item--separator {
37
+ margin-top: $spacing-4;
38
+
39
+ @media (min-width: $hamburger-breakpoint) {
40
+ margin-top: 0;
41
+ margin-left: $menu-margin-between;
42
+ }
43
+ }
44
+
45
+ .nav-menu__item--separator + .nav-menu__item,
46
+ .nav-menu__item--separator + .nav-submenu {
47
+ margin-top: 0;
48
+ margin-left: 0;
49
+ }
@@ -0,0 +1,53 @@
1
+ .nav-menu {
2
+ margin-left: auto;
3
+ display: none;
4
+ background-color: $color-white;
5
+ position: relative;
6
+
7
+ @media (min-width: $hamburger-breakpoint) {
8
+ display: block;
9
+ }
10
+ }
11
+
12
+ .nav-menu__items {
13
+ height: 100%;
14
+ list-style: none;
15
+ padding: $spacing-5 $spacing-3;
16
+ display: block;
17
+ font-weight: $font-weight-medium;
18
+ font-size: $font-size-small;
19
+ line-height: 1.71429;
20
+ transition: transform 200ms $menu-transition-fn;
21
+
22
+ @media (min-width: $hamburger-breakpoint) {
23
+ height: auto;
24
+ display: flex;
25
+ align-items: center;
26
+ padding: 0;
27
+ }
28
+ }
29
+
30
+ .nav-menu--hamburger {
31
+ display: block;
32
+ position: absolute;
33
+ padding-top: $navbar-min-height;
34
+ top: 0;
35
+ left: 0;
36
+ width: 100%;
37
+ height: 100%;
38
+ overflow-x: hidden;
39
+ overflow-y: scroll;
40
+ transform: translateY(-100%);
41
+ transition: 300ms transform $menu-hamburger-transition-fn;
42
+
43
+ @media (min-width: $hamburger-breakpoint) {
44
+ display: none;
45
+ }
46
+
47
+ .nav-menu__item {
48
+ .btn {
49
+ text-align: center;
50
+ width: 100%;
51
+ }
52
+ }
53
+ }