@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,40 @@
1
+ @mixin btn-variant(
2
+ $bg-color,
3
+ $bg-color-hover,
4
+ $bg-color-active,
5
+ $border-color,
6
+ $border-color-hover,
7
+ $border-color-active,
8
+ $text-color,
9
+ $text-color-hover,
10
+ $text-color-active
11
+ ) {
12
+ background-color: $bg-color;
13
+ border-color: $border-color;
14
+ color: $text-color;
15
+
16
+ &:visited {
17
+ color: $text-color;
18
+ }
19
+
20
+ &:hover,
21
+ &.is-hovered {
22
+ background-color: $bg-color-hover;
23
+ border-color: $border-color-hover;
24
+ color: $text-color-hover;
25
+ }
26
+
27
+ &:active,
28
+ &.is-active {
29
+ background-color: $bg-color-active;
30
+ border-color: $border-color-active;
31
+ color: $text-color-active;
32
+ }
33
+
34
+ &:disabled,
35
+ &.is-disabled {
36
+ background-color: $bg-color;
37
+ border-color: $border-color;
38
+ color: $text-color;
39
+ }
40
+ }
@@ -0,0 +1,97 @@
1
+ .card {
2
+ border-radius: $border-radius-default;
3
+ box-shadow: $box-shadow-small;
4
+ background-color: $color-white;
5
+ display: flex;
6
+ flex-direction: column;
7
+ width: 100%;
8
+ }
9
+
10
+ .card__content,
11
+ .card__actions {
12
+ padding: $spacing-6;
13
+ }
14
+
15
+ .card__media {
16
+ border-top-left-radius: inherit;
17
+ border-top-right-radius: inherit;
18
+ height: 0;
19
+ padding-top: 40.5%;
20
+ overflow: hidden;
21
+ background-repeat: no-repeat;
22
+ background-position: center;
23
+ background-size: cover;
24
+ }
25
+
26
+ .card__actions {
27
+ padding-top: 0;
28
+ display: flex;
29
+ flex-wrap: wrap;
30
+
31
+ .btn {
32
+ width: 100%;
33
+ text-align: center;
34
+
35
+ @media (min-width: $breakpoint-large) {
36
+ flex: 1 1 0;
37
+ }
38
+
39
+ + .btn {
40
+ margin-top: $spacing-5;
41
+ margin-left: 0;
42
+
43
+ @media (min-width: $breakpoint-large) {
44
+ margin-left: $spacing-5;
45
+ margin-top: 0;
46
+ }
47
+ }
48
+ }
49
+ }
50
+
51
+ // Misc. modifiers
52
+
53
+ .card--equal-height {
54
+ min-height: 100%;
55
+
56
+ .card__content {
57
+ flex: 1 0 auto;
58
+ }
59
+ }
60
+
61
+ .card--no-shadow {
62
+ box-shadow: none;
63
+ }
64
+
65
+ // Card spacings
66
+
67
+ .card--compact {
68
+ > .card__content,
69
+ > .card__actions {
70
+ padding: $spacing-4;
71
+ }
72
+
73
+ > .card__actions {
74
+ padding-top: 0;
75
+ }
76
+ }
77
+
78
+ .card--comfortable {
79
+ > .card__content,
80
+ > .card__actions {
81
+ padding: $spacing-9;
82
+ }
83
+
84
+ > .card__actions {
85
+ padding-top: 0;
86
+ }
87
+ }
88
+
89
+ // Card colours
90
+
91
+ .card--info {
92
+ background-color: $color-blue-000;
93
+ }
94
+
95
+ .card--mono {
96
+ background-color: $color-gray-100;
97
+ }
@@ -0,0 +1,72 @@
1
+ input[type='checkbox'],
2
+ input[type='radio'] {
3
+ position: absolute;
4
+ width: 1.25em;
5
+ height: 1.25em;
6
+ margin: 0;
7
+ opacity: 0;
8
+ }
9
+
10
+ .form-choice {
11
+ font-size: $font-size-default;
12
+ }
13
+
14
+ .form-choice + .form-choice {
15
+ margin-top: $spacing-5;
16
+ }
17
+
18
+ .form-choice__label {
19
+ position: relative;
20
+ display: flex;
21
+ font-size: 1em;
22
+ line-height: 1.25;
23
+
24
+ &::before {
25
+ content: ' ';
26
+ flex: 0 0 auto;
27
+ display: inline-block;
28
+ margin-right: 8px;
29
+ width: 1.25em;
30
+ height: 1.25em;
31
+ border: 2px solid $color-gray-600;
32
+ cursor: pointer;
33
+ will-change: border-color, background-color, box-shadow;
34
+ transition: border-color 100ms cubic-bezier(0, 0, 0.2, 1),
35
+ background-color 100ms cubic-bezier(0, 0, 0.2, 1),
36
+ box-shadow 100ms cubic-bezier(0, 0, 0.2, 1);
37
+ }
38
+
39
+ &::after {
40
+ content: ' ';
41
+ position: absolute;
42
+ opacity: 0;
43
+ will-change: transform, opacity;
44
+ transition: opacity 100ms cubic-bezier(0, 0, 0.2, 1),
45
+ transform 100ms cubic-bezier(0, 0, 0.2, 1);
46
+ }
47
+ }
48
+
49
+ input[type='checkbox']:focus + .form-choice__label,
50
+ input[type='checkbox']:active + .form-choice__label,
51
+ input[type='radio']:focus + .form-choice__label,
52
+ input[type='radio']:active + .form-choice__label {
53
+ &::before {
54
+ box-shadow: $box-shadow-small;
55
+ }
56
+ }
57
+
58
+ input[type='checkbox']:disabled,
59
+ input[type='radio']:disabled {
60
+ + .form-choice__label {
61
+ pointer-events: none;
62
+ }
63
+ }
64
+
65
+ .form-choice--inline {
66
+ display: inline-block;
67
+
68
+ & + & {
69
+ margin-top: 0;
70
+ margin-left: 16px;
71
+ }
72
+ }
@@ -0,0 +1,43 @@
1
+ .form-choice__label--checkbox {
2
+ &::before {
3
+ border-radius: $border-radius-small;
4
+ background-color: $color-white;
5
+ }
6
+
7
+ &::after {
8
+ height: 0.4em;
9
+ width: 0.8em;
10
+ left: 0.25em;
11
+ top: 0.3em;
12
+ border-bottom: 2px solid #fff;
13
+ border-left: 2px solid #fff;
14
+ transform: rotate(-45deg) scale(0);
15
+ }
16
+ }
17
+
18
+ input[type='checkbox']:checked + .form-choice__label--checkbox {
19
+ &::before {
20
+ border-color: $color-blue-300;
21
+ background-color: $color-blue-300;
22
+ }
23
+
24
+ &::after {
25
+ opacity: 1;
26
+ transform: rotate(-45deg) scale(1);
27
+ }
28
+ }
29
+
30
+ input[type='checkbox']:disabled {
31
+ ~ .form-choice__label--checkbox {
32
+ &::before {
33
+ border-color: $color-gray-300;
34
+ background-color: $color-gray-100;
35
+ }
36
+ }
37
+
38
+ &:checked ~ .form-choice__label--checkbox {
39
+ &::before {
40
+ background-color: $color-gray-300;
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,52 @@
1
+ .form-choice__label--radio {
2
+ &::before,
3
+ &::after {
4
+ width: 1.25em;
5
+ height: 1.25em;
6
+ border-radius: 50%;
7
+ }
8
+
9
+ &::before {
10
+ z-index: 2;
11
+ background-color: $color-white;
12
+ }
13
+
14
+ &::after {
15
+ content: ' ';
16
+ background: $color-blue-300;
17
+ border: 0.3125em solid $color-white;
18
+ transform: scale(0);
19
+ }
20
+ }
21
+
22
+ input[type='radio']:checked + .form-choice__label--radio {
23
+ &::before {
24
+ border-color: $color-blue-300;
25
+ background-color: transparent;
26
+ }
27
+
28
+ &::after {
29
+ opacity: 1;
30
+ transform: scale(1);
31
+ }
32
+ }
33
+
34
+ input[type='radio']:disabled {
35
+ + .form-choice__label--radio {
36
+ &::before {
37
+ background-color: $color-gray-100;
38
+ border-color: $color-gray-300;
39
+ }
40
+ }
41
+
42
+ &:checked + .form-choice__label--radio {
43
+ &::before {
44
+ background-color: transparent;
45
+ }
46
+
47
+ &::after {
48
+ background-color: $color-gray-300;
49
+ border-color: $color-gray-100;
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,118 @@
1
+ .file-selector-wrapper--inline {
2
+ display: flex;
3
+ align-items: center;
4
+
5
+ .file-selector + .file-list {
6
+ margin-top: 0;
7
+ margin-left: $spacing-3;
8
+ }
9
+ }
10
+
11
+ .file-selector {
12
+ position: relative;
13
+ display: inline-block;
14
+
15
+ .btn .icon + span {
16
+ margin-left: $spacing-3;
17
+ }
18
+
19
+ input[type='file'] {
20
+ position: absolute;
21
+ opacity: 0;
22
+ overflow: hidden;
23
+ left: 0;
24
+ top: 0;
25
+ height: 100%;
26
+ width: 100%;
27
+ }
28
+ }
29
+
30
+ .file-selector + .file-list {
31
+ margin-top: $spacing-3;
32
+ }
33
+
34
+ .file-list {
35
+ padding: 0;
36
+ margin: 0;
37
+ flex: 1 1;
38
+ list-style: none;
39
+ }
40
+
41
+ .file-list__file + .file-list__file {
42
+ margin-top: $spacing-3;
43
+ }
44
+
45
+ .file-list__container {
46
+ background-color: $l-primary-lightest;
47
+ color: $l-base-gray-darker;
48
+ border-radius: $border-radius-small;
49
+ display: flex;
50
+ align-items: center;
51
+ font-size: $font-size-small;
52
+ padding: $spacing-3;
53
+ }
54
+
55
+ .file-list__description {
56
+ line-height: 1.71429;
57
+ flex: 1 0;
58
+ }
59
+
60
+ .file-list__icon {
61
+ font-size: 1.14em;
62
+ line-height: 1;
63
+ color: $l-base-gray-lighter;
64
+ margin-right: $spacing-3;
65
+ text-align: center;
66
+ }
67
+
68
+ .file-list__action {
69
+ font-family: $font-family-body;
70
+ font-weight: $font-weight-normal;
71
+ font-size: 0.85714em;
72
+ border: 0;
73
+ padding: 0;
74
+ box-shadow: none;
75
+ background: transparent;
76
+
77
+ &:hover {
78
+ box-shadow: none;
79
+ transform: none;
80
+ background: transparent;
81
+ }
82
+ }
83
+
84
+ .file-list__error {
85
+ font-size: $font-size-caption;
86
+ color: $l-error;
87
+ margin-top: $spacing-2;
88
+ }
89
+
90
+ .file-list__file.is-uploading {
91
+ .file-list__action {
92
+ color: $l-primary;
93
+ }
94
+ }
95
+
96
+ .file-list__file.is-success {
97
+ .file-list__icon {
98
+ color: $l-success;
99
+ }
100
+
101
+ .file-list__action {
102
+ color: $l-base-gray-darker !important;
103
+ }
104
+ }
105
+
106
+ .file-list__file.is-error {
107
+ .file-list__container {
108
+ background-color: $color-red-100;
109
+ }
110
+
111
+ .file-list__icon {
112
+ color: $l-error;
113
+ }
114
+
115
+ .file-list__action {
116
+ color: $l-base-gray-darker !important;
117
+ }
118
+ }
@@ -0,0 +1,57 @@
1
+ $form-control-help-height: $font-size-caption * $line-height-default +
2
+ $spacing-2 + 1;
3
+
4
+ .form-control {
5
+ display: inline-block;
6
+ width: 100%;
7
+ padding-bottom: $form-control-help-height;
8
+ color: $color-gray-900;
9
+ line-height: $line-height-default;
10
+
11
+ &.has-help,
12
+ &.has-error {
13
+ height: 0;
14
+ }
15
+
16
+ &.has-error {
17
+ .form-input,
18
+ .form-textarea,
19
+ .input-group,
20
+ select {
21
+ border-color: $color-red-400;
22
+ box-shadow: none;
23
+ }
24
+
25
+ .form-choice__label::before {
26
+ border-color: $color-red-400;
27
+ }
28
+ }
29
+
30
+ & + & {
31
+ margin-top: $spacing-2;
32
+ }
33
+ }
34
+
35
+ .form-label {
36
+ display: block;
37
+ width: 100%;
38
+ margin-bottom: $spacing-3;
39
+ color: $color-gray-900;
40
+ font-size: $font-size-small;
41
+ font-weight: $font-weight-medium;
42
+ }
43
+
44
+ .form-control__help,
45
+ .form-control__error {
46
+ display: block;
47
+ font-size: $font-size-caption;
48
+ padding-top: $spacing-2;
49
+ }
50
+
51
+ .form-control__help {
52
+ color: $color-gray-600;
53
+ }
54
+
55
+ .form-control__error {
56
+ color: $l-error;
57
+ }
@@ -0,0 +1,27 @@
1
+ .icon {
2
+ position: relative;
3
+ top: 0.125em;
4
+ flex-shrink: 0;
5
+ width: 1em;
6
+ height: 1em;
7
+ fill: currentColor;
8
+ }
9
+
10
+ .icon-circled {
11
+ display: inline-block;
12
+ position: relative;
13
+ line-height: 0;
14
+ padding: 0.3em;
15
+ border-radius: 50%;
16
+ vertical-align: middle;
17
+
18
+ .icon {
19
+ width: 0.65em;
20
+ height: 0.65em;
21
+ top: 0;
22
+ }
23
+ }
24
+
25
+ .icon-circled + * {
26
+ vertical-align: middle;
27
+ }
@@ -0,0 +1,35 @@
1
+ $input-transition-fn: cubic-bezier(0, 0, 0.2, 1);
2
+
3
+ .form-input {
4
+ display: block;
5
+ width: 100%;
6
+ background: $color-white;
7
+ border: 1px solid $l-base-gray-lighter;
8
+ border-radius: $border-radius-small;
9
+ box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.12);
10
+ padding: $spacing-3 $spacing-5;
11
+ color: $l-base-gray-darkest;
12
+ font-family: inherit;
13
+ font-size: $font-size-default;
14
+ line-height: $line-height-default;
15
+ will-change: border-color, box-shadow;
16
+ transition: border-color 100ms $input-transition-fn,
17
+ box-shadow 100ms $input-transition-fn;
18
+
19
+ &:disabled,
20
+ &:read-only {
21
+ background: $color-gray-100;
22
+ color: $color-gray-700;
23
+ box-shadow: none;
24
+ }
25
+
26
+ &:disabled {
27
+ cursor: not-allowed;
28
+ }
29
+
30
+ &:focus {
31
+ outline: 0;
32
+ border-color: $color-blue-200;
33
+ box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.12), 0 0 0 1px $color-blue-200;
34
+ }
35
+ }
@@ -0,0 +1,62 @@
1
+ .input-group {
2
+ display: flex;
3
+ align-items: center;
4
+ box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.12);
5
+ border: 1px solid $color-gray-300;
6
+ background-color: $color-white;
7
+ border-radius: $border-radius-small;
8
+ will-change: border-color, box-shadow;
9
+ transition: border-color 100ms $input-transition-fn,
10
+ box-shadow 100ms $input-transition-fn;
11
+
12
+ .form-input {
13
+ box-shadow: none;
14
+ border: 0;
15
+ border-radius: 0;
16
+ background: none;
17
+
18
+ &:first-child {
19
+ padding-right: $spacing-2;
20
+ }
21
+
22
+ &:not(:first-child):not(:last-child) {
23
+ padding-right: $spacing-2;
24
+ padding-left: $spacing-2;
25
+ }
26
+
27
+ &:last-child {
28
+ padding-left: $spacing-2;
29
+ }
30
+ }
31
+
32
+ &.is-disabled,
33
+ &.is-readonly {
34
+ background: $color-gray-100;
35
+ color: $color-gray-700;
36
+ box-shadow: none;
37
+ }
38
+
39
+ &.is-disabled {
40
+ cursor: not-allowed;
41
+ }
42
+
43
+ &:focus-within {
44
+ outline: 0;
45
+ border-color: $color-blue-200;
46
+ box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.12), 0 0 0 1px $color-blue-200;
47
+ }
48
+ }
49
+
50
+ .input-group__prefix,
51
+ .input-group__suffix {
52
+ flex: 0 0 auto;
53
+ padding: $spacing-3 0;
54
+ }
55
+
56
+ .input-group__prefix {
57
+ padding-left: $spacing-5;
58
+ }
59
+
60
+ .input-group__suffix {
61
+ padding-right: $spacing-5;
62
+ }