@esportsplus/ui 0.0.1

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 (127) hide show
  1. package/.editorconfig +9 -0
  2. package/.gitattributes +2 -0
  3. package/components/accordion/scss/accordion.scss +16 -0
  4. package/components/accordion/scss/variables.scss +4 -0
  5. package/components/alert/scss/alert.scss +104 -0
  6. package/components/alert/scss/variables.scss +25 -0
  7. package/components/anchor/scss/anchor.scss +41 -0
  8. package/components/anchor/scss/anchors.scss +9 -0
  9. package/components/anchor/scss/variables.scss +5 -0
  10. package/components/banner/scss/banner.scss +13 -0
  11. package/components/border/scss/border.scss +10 -0
  12. package/components/border/scss/variables.scss +6 -0
  13. package/components/bubble/scss/bubble.scss +30 -0
  14. package/components/bubble/scss/variables.scss +19 -0
  15. package/components/button/scss/button.scss +93 -0
  16. package/components/button/scss/variables.scss +70 -0
  17. package/components/card/scss/card.scss +36 -0
  18. package/components/card/scss/variables.scss +42 -0
  19. package/components/container/scss/container.scss +10 -0
  20. package/components/container/scss/variables.scss +5 -0
  21. package/components/ellipsis/scss/ellipsis.scss +72 -0
  22. package/components/ellipsis/scss/variables.scss +3 -0
  23. package/components/field/scss/_check.scss +225 -0
  24. package/components/field/scss/_normalize.scss +36 -0
  25. package/components/field/scss/_text.scss +103 -0
  26. package/components/field/scss/field.scss +132 -0
  27. package/components/field/scss/variables.scss +133 -0
  28. package/components/group/scss/group.scss +41 -0
  29. package/components/group/scss/variables.scss +25 -0
  30. package/components/icon/scss/icon.scss +18 -0
  31. package/components/icon/scss/variables.scss +8 -0
  32. package/components/link/scss/link.scss +29 -0
  33. package/components/link/scss/variables.scss +48 -0
  34. package/components/loading/scss/loading.scss +24 -0
  35. package/components/loading/scss/variables.scss +31 -0
  36. package/components/page/scss/page.scss +22 -0
  37. package/components/page/scss/variables.scss +19 -0
  38. package/components/processing/scss/processing.scss +47 -0
  39. package/components/processing/scss/variables.scss +11 -0
  40. package/components/root/scss/root.scss +93 -0
  41. package/components/root/scss/variables.scss +54 -0
  42. package/components/row/scss/row.scss +8 -0
  43. package/components/row/scss/variables.scss +3 -0
  44. package/components/scrollbar/scss/scrollbar.scss +51 -0
  45. package/components/scrollbar/scss/variables.scss +8 -0
  46. package/components/sidebar/scss/sidebar.scss +50 -0
  47. package/components/sidebar/scss/sidebars.scss +13 -0
  48. package/components/sidebar/scss/variables.scss +25 -0
  49. package/components/site/scss/site.scss +3 -0
  50. package/components/text/scss/text.scss +12 -0
  51. package/components/text/scss/variables.scss +9 -0
  52. package/components/thumbnail/scss/thumbnail.scss +7 -0
  53. package/components/thumbnail/scss/variables.scss +7 -0
  54. package/components/tooltip/scss/_center.scss +13 -0
  55. package/components/tooltip/scss/_east.scss +34 -0
  56. package/components/tooltip/scss/_north.scss +34 -0
  57. package/components/tooltip/scss/_south.scss +35 -0
  58. package/components/tooltip/scss/_west.scss +34 -0
  59. package/components/tooltip/scss/tooltip.scss +107 -0
  60. package/components/tooltip/scss/variables.scss +25 -0
  61. package/css-utilities/[margin,padding]/scss/styles.scss +41 -0
  62. package/css-utilities/[margin,padding]/scss/variables.scss +52 -0
  63. package/css-utilities/[max,min]/scss/styles.scss +11 -0
  64. package/css-utilities/[max,min]/scss/variables.scss +23 -0
  65. package/css-utilities/absolute/scss/absolute.scss +59 -0
  66. package/css-utilities/background/scss/variables.scss +28 -0
  67. package/css-utilities/border/scss/border.scss +21 -0
  68. package/css-utilities/border/scss/variables.scss +66 -0
  69. package/css-utilities/color/scss/variables.scss +32 -0
  70. package/css-utilities/disabled/scss/disabled.scss +17 -0
  71. package/css-utilities/disabled/scss/variables.scss +4 -0
  72. package/css-utilities/flex/scss/flex.scss +67 -0
  73. package/css-utilities/hidden/scss/hidden.scss +28 -0
  74. package/css-utilities/index.scss +14 -0
  75. package/css-utilities/inline/scss/inline.scss +7 -0
  76. package/css-utilities/line-height/scss/variables.scss +10 -0
  77. package/css-utilities/not-allowed/scss/not-allowed.scss +14 -0
  78. package/css-utilities/overflow/scss/overflow.scss +5 -0
  79. package/css-utilities/pointer/scss/pointer.scss +5 -0
  80. package/css-utilities/size/scss/variables.scss +12 -0
  81. package/css-utilities/slide/scss/slide.scss +20 -0
  82. package/css-utilities/slide/scss/variables.scss +6 -0
  83. package/css-utilities/text/scss/text.scss +93 -0
  84. package/css-utilities/text/scss/variables.scss +31 -0
  85. package/css-utilities/width/scss/variables.scss +12 -0
  86. package/css-utilities/width/scss/width.scss +3 -0
  87. package/index.scss +1 -0
  88. package/lib/index.scss +7 -0
  89. package/lib/scss/breakpoint.scss +41 -0
  90. package/lib/scss/color.scss +8 -0
  91. package/lib/scss/css-variables.scss +13 -0
  92. package/lib/scss/list.scss +112 -0
  93. package/lib/scss/map.scss +8 -0
  94. package/lib/scss/position.scss +84 -0
  95. package/lib/scss/string.scss +54 -0
  96. package/package.json +22 -0
  97. package/storage/fonts/Montserrat/fonts/Montserrat-Bold.woff +0 -0
  98. package/storage/fonts/Montserrat/fonts/Montserrat-Bold.woff2 +0 -0
  99. package/storage/fonts/Montserrat/fonts/Montserrat-BoldItalic.woff +0 -0
  100. package/storage/fonts/Montserrat/fonts/Montserrat-BoldItalic.woff2 +0 -0
  101. package/storage/fonts/Montserrat/fonts/Montserrat-Italic.woff +0 -0
  102. package/storage/fonts/Montserrat/fonts/Montserrat-Italic.woff2 +0 -0
  103. package/storage/fonts/Montserrat/fonts/Montserrat-Medium.woff +0 -0
  104. package/storage/fonts/Montserrat/fonts/Montserrat-Medium.woff2 +0 -0
  105. package/storage/fonts/Montserrat/fonts/Montserrat-MediumItalic.woff +0 -0
  106. package/storage/fonts/Montserrat/fonts/Montserrat-MediumItalic.woff2 +0 -0
  107. package/storage/fonts/Montserrat/fonts/Montserrat-Regular.woff +0 -0
  108. package/storage/fonts/Montserrat/fonts/Montserrat-Regular.woff2 +0 -0
  109. package/storage/fonts/Montserrat/fonts/Montserrat-SemiBold.woff +0 -0
  110. package/storage/fonts/Montserrat/fonts/Montserrat-SemiBold.woff2 +0 -0
  111. package/storage/fonts/Montserrat/fonts/Montserrat-SemiBoldItalic.woff +0 -0
  112. package/storage/fonts/Montserrat/fonts/Montserrat-SemiBoldItalic.woff2 +0 -0
  113. package/storage/fonts/Montserrat/montserrat.css +79 -0
  114. package/storage/psd/Color Palette.psd +0 -0
  115. package/tokens/index.scss +11 -0
  116. package/tokens/scss/border-radius.scss +12 -0
  117. package/tokens/scss/border-width.scss +6 -0
  118. package/tokens/scss/box-shadow.scss +13 -0
  119. package/tokens/scss/breakpoints.scss +13 -0
  120. package/tokens/scss/color.scss +71 -0
  121. package/tokens/scss/font-size.scss +12 -0
  122. package/tokens/scss/font-weight.scss +6 -0
  123. package/tokens/scss/line-height.scss +6 -0
  124. package/tokens/scss/size.scss +13 -0
  125. package/tokens/scss/state.scss +93 -0
  126. package/tokens/scss/transition-duration.scss +5 -0
  127. package/webpack.sass.config.js +59 -0
@@ -0,0 +1,225 @@
1
+ @use 'ui/lib';
2
+ @use 'ui/tokens';
3
+
4
+ @mixin css() {
5
+ &-mask {
6
+ &--checkbox,
7
+ &--radio,
8
+ &--switch {
9
+ background: var(--background);
10
+ border-color: var(--border-color);
11
+ border-radius: var(--border-radius);
12
+ border-style: var(--border-style);
13
+ border-width: var(--border-width);
14
+ flex: 0 0 var(--width);
15
+ height: var(--height);
16
+ position: relative;
17
+ transition:
18
+ background var(--transition-duration) ease-in-out,
19
+ border-color var(--transition-duration) ease-in-out,
20
+ box-shadow var(--transition-duration) ease-in-out,
21
+ opacity var(--transition-duration) ease-in-out,
22
+ transform var(--transition-duration) ease-in-out;
23
+ width: var(--width);
24
+
25
+ &:invalid,
26
+ &:required {
27
+ box-shadow: none;
28
+ }
29
+
30
+ &::before {
31
+ box-shadow: var(--box-shadow);
32
+ content: '';
33
+ height: var(--height);
34
+ opacity: var(--opacity);
35
+ transform: translate(var(--translateX), var(--translateY)) rotate(var(--rotate)) scale(var(--scale));
36
+ width: var(--width);
37
+ }
38
+
39
+ // Hide HTML Field Element
40
+ .field-tag {
41
+ @include lib.position(absolute, 0 null null 0);
42
+ height: 0px;
43
+ opacity: 0;
44
+ pointer-events: none;
45
+ width: 0px;
46
+ z-index: 0;
47
+ }
48
+ }
49
+
50
+ &--checkbox,
51
+ &--radio {
52
+ &::before {
53
+ position: absolute;
54
+ bottom: 50%;
55
+ right: 50%;
56
+ }
57
+ }
58
+
59
+ &--radio,
60
+ &--switch {
61
+ &::before {
62
+ background: var(--accent);
63
+ border-radius: inherit;
64
+ transform-origin: center;
65
+ }
66
+ }
67
+
68
+ &--checkbox {
69
+ &::before {
70
+ border-bottom: var(--border-width) solid var(--accent);
71
+ border-right: var(--border-width) solid var(--accent);
72
+ transform-origin: center left;
73
+ }
74
+ }
75
+
76
+ &--switch {
77
+ &::before {
78
+ @include lib.position(absolute, var(--padding-vertical) null null var(--padding-horizontal));
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ @mixin variables() {
85
+ label#{&},
86
+ #{tokens.state(inactive, '.field:not(label)')} &-mask {
87
+ @include tokens.state(hover) {
88
+ --background: var(--background-hover);
89
+ --border-color: var(--border-color-hover);
90
+ --box-shadow: var(--box-shadow-hover);
91
+ --color: var(--color-hover);
92
+ --outline-opacity: var(--outline-opacity-hover);
93
+ --outline-width: var(--outline-width-hover);
94
+ }
95
+
96
+ @include tokens.state(pressed) {
97
+ --background: var(--background-pressed);
98
+ --border-color: var(--border-color-pressed);
99
+ --box-shadow: var(--box-shadow-pressed);
100
+ --color: var(--color-pressed);
101
+ --outline-opacity: var(--outline-opacity-pressed);
102
+ --outline-width: var(--outline-width-pressed);
103
+ }
104
+ }
105
+
106
+ &-mask {
107
+ &--checkbox,
108
+ &--radio,
109
+ &--switch {
110
+ --accent: var(--accent-default);
111
+ --accent-active: var(--accent-default);
112
+ --accent-default: var(--color-white-400);
113
+ --accent-hover: var(--accent-default);
114
+ --accent-pressed: var(--accent-default);
115
+ --height: var(--size);
116
+ --opacity: var(--opacity-default);
117
+ --opacity-active: var(--opacity-default);
118
+ --opacity-default: 1;
119
+ --opacity-hover: var(--opacity-default);
120
+ --opacity-pressed: var(--opacity-default);
121
+ --rotate: 0deg;
122
+ --scale: var(--scale-default);
123
+ --scale-active: var(--scale-default);
124
+ --scale-default: 1;
125
+ --scale-hover: var(--scale-default);
126
+ --scale-pressed: var(--scale-default);
127
+ --size: var(--size-600);
128
+ --width-switch: 40px;
129
+
130
+ &::before {
131
+ --translateX: 0px;
132
+ --translateY: 0px;
133
+ }
134
+
135
+ #{tokens.state(inactive, 'label.field')},
136
+ #{tokens.state(inactive, '.field:not(label)')} & {
137
+ @include tokens.state(hover) {
138
+ --accent: var(--accent-hover);
139
+ --opacity: var(--opacity-hover);
140
+ --scale: var(--scale-hover);
141
+ }
142
+
143
+ @include tokens.state(pressed) {
144
+ --accent: var(--accent-pressed);
145
+ --opacity: var(--opacity-pressed);
146
+ --scale: var(--scale-pressed);
147
+ }
148
+ }
149
+
150
+ #{tokens.state(active, '.field')} & {
151
+ --accent: var(--accent-active);
152
+ --opacity: var(--opacity-active);
153
+ --scale: var(--scale-active);
154
+ }
155
+ }
156
+
157
+ &--checkbox,
158
+ &--radio {
159
+ --margin-horizontal: calc(var(--width-switch) - var(--width));
160
+ --width: var(--height);
161
+ }
162
+
163
+ &--radio,
164
+ &--switch {
165
+ &::before {
166
+ --box-shadow: 0 1px 0 rgba(0,0,0, 0.16);
167
+ }
168
+ }
169
+
170
+ &--checkbox {
171
+ --border-radius: var(--border-radius-300);
172
+ --rotate: 45deg;
173
+ --scale-active: 1;
174
+ --scale-default: 0;
175
+ --scale-hover: 1.08;
176
+ --scale-pressed: 0.98;
177
+
178
+ &::before {
179
+ --box-shadow: 1px 1px 0 rgba(0,0,0, 0.16);
180
+ --border-width: 5px;
181
+ --height: 110%;
182
+ --translateX: 108%;
183
+ --translateY: 8%;
184
+ --width: 50%;
185
+
186
+ #{tokens.state(default, '.field')} & {
187
+ --translateY: 100%;
188
+ }
189
+ }
190
+ }
191
+
192
+ &--radio {
193
+ --border-radius: var(--border-radius-circle);
194
+ --opacity-active: 1;
195
+ --opacity-default: 0.4;
196
+ --scale-active: 0.9;
197
+ --scale-default: 0;
198
+ --scale-hover: 0.8;
199
+ --scale-pressed: 0.7;
200
+
201
+ &::before {
202
+ --height: calc((var(--size) / 2) - (var(--border-width) * 2));
203
+ --translateX: 50%;
204
+ --translateY: 50%;
205
+ --width: var(--height);
206
+ }
207
+ }
208
+
209
+ &--switch {
210
+ --border-radius: var(--border-radius-curved);
211
+ --padding-horizontal: var(--border-width-400);
212
+ --padding-vertical: var(--border-width-400);
213
+ --width: var(--width-switch);
214
+
215
+ &::before {
216
+ --height: calc(var(--size) - (var(--border-width) * 2) - (var(--padding-vertical) * 2));
217
+ --width: var(--height);
218
+
219
+ #{tokens.state(active, '.field')} & {
220
+ --translateX: calc(var(--width-switch) - (var(--border-width) * 2) - var(--height) - (var(--padding-horizontal) * 2));
221
+ }
222
+ }
223
+ }
224
+ }
225
+ }
@@ -0,0 +1,36 @@
1
+ @mixin normalize() {
2
+ button,
3
+ input,
4
+ select,
5
+ textarea {
6
+ background: transparent;
7
+ border-radius: 0;
8
+ border: 0;
9
+ font-family: inherit;
10
+ font-size: inherit;
11
+ line-height: inherit;
12
+ margin: 0;
13
+ padding: 0;
14
+
15
+ &,
16
+ &:active,
17
+ &:focus,
18
+ &:hover {
19
+ outline: none;
20
+ }
21
+
22
+ &:invalid {
23
+ box-shadow: none;
24
+ }
25
+ }
26
+
27
+ form {
28
+ margin: 0;
29
+ padding: 0;
30
+ width: 100%;
31
+ }
32
+
33
+ label {
34
+ cursor: pointer;
35
+ }
36
+ }
@@ -0,0 +1,103 @@
1
+ @use 'ui/lib';
2
+ @use 'ui/tokens';
3
+
4
+ @mixin css() {
5
+ &-mask {
6
+ &--input,
7
+ &--select {
8
+ align-items: center;
9
+ background: var(--background);
10
+ border: var(--border-width) var(--border-style) var(--border-color);
11
+ border-radius: var(--border-radius);
12
+ display: flex;
13
+ flex-wrap: wrap;
14
+ font-size: var(--font-size);
15
+ line-height: var(--line-height);
16
+ position: relative;
17
+ width: 100%;
18
+
19
+ &:invalid,
20
+ &:required {
21
+ box-shadow: none;
22
+ }
23
+
24
+ &,
25
+ .field-tag {
26
+ color: var(--color);
27
+ }
28
+ }
29
+
30
+ // Truncate Overflowing Text
31
+ &--input .field-tag,
32
+ &--select .field-text {
33
+ overflow: hidden;
34
+ text-overflow: ellipsis;
35
+ white-space: nowrap;
36
+ }
37
+
38
+ &--input {
39
+ cursor: text;
40
+ // Necessary To Maintain Height Of Hidden Password Fields In Floating Modals
41
+ // - Password Managers Cause Problems When Fields Are Not Using 'display:hidden' On Password Fields
42
+ min-height: calc((var(--padding-vertical) * 2) + var(--size));
43
+
44
+ .field-tag {
45
+ flex: 1 1 auto;
46
+ padding: var(--padding-vertical) var(--padding-horizontal);
47
+ min-width: 0;
48
+
49
+ &[type='number'] {
50
+ appearance: textfield;
51
+ }
52
+ }
53
+ }
54
+
55
+ &--select {
56
+ cursor: pointer;
57
+ padding: var(--padding-vertical) calc((var(--padding-horizontal) / 1.5) + var(--arrow-size)) var(--padding-vertical) var(--padding-horizontal);
58
+
59
+ &.--padding {
60
+ padding-right: calc((var(--padding-horizontal) * 1.5) + var(--arrow-size));
61
+ }
62
+ }
63
+
64
+ // Down Arrow
65
+ &-arrow {
66
+ @include lib.position(absolute, null calc(var(--padding-horizontal) + var(--arrow-spacer)) calc(50% + var(--arrow-spacer)) null);
67
+ border-color: var(--border-color);
68
+ border-style: var(--border-style);
69
+ border-width: 0 var(--border-width) var(--border-width) 0;
70
+ content: '';
71
+ height: var(--arrow-size);
72
+ transform: translateY(50%) rotate(45deg);
73
+ width: var(--arrow-size);
74
+ }
75
+ }
76
+
77
+ &-text {
78
+ padding-right: var(--padding-horizontal);
79
+ }
80
+ }
81
+
82
+ @mixin variables() {
83
+ &-mask {
84
+ &--input,
85
+ &--select {
86
+ --font-size: var(--font-size-400);
87
+ --line-height: var(--line-height-400);
88
+ }
89
+
90
+ &--input {
91
+ --size: var(--size-400);
92
+ }
93
+
94
+ &--select {
95
+ --arrow-spacer: 1px;
96
+ --arrow-size: 6px;
97
+ }
98
+
99
+ &-arrow {
100
+ --border-width: var(--border-width-500);
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,132 @@
1
+ /**
2
+ *------------------------------------------------------------------------------
3
+ *
4
+ * Form Fields
5
+ *
6
+ * Fields Were Originally Placed Within A '.form' Selector BUT Fields Are Not
7
+ * Always Used Within A Form Tag So Here We Are.
8
+ *
9
+ */
10
+
11
+ @use 'ui/lib';
12
+ @use 'ui/tokens';
13
+ @use 'check' as check;
14
+ @use 'normalize' as *;
15
+ @use 'text' as text;
16
+
17
+ @include normalize();
18
+
19
+ .field {
20
+ display: flex;
21
+ position: relative;
22
+ transition:
23
+ background var(--transition-duration) ease-in-out,
24
+ border-color var(--transition-duration) ease-in-out,
25
+ box-shadow var(--transition-duration) ease-in-out,
26
+ color var(--transition-duration) ease-in-out,
27
+ opacity var(--transition-duration) ease-in-out;
28
+ width: var(--width);
29
+ z-index: 1;
30
+
31
+ @include tokens.state(hover) {
32
+ z-index: 8;
33
+ }
34
+
35
+ @include tokens.state(active) {
36
+ z-index: 9;
37
+ }
38
+
39
+
40
+ &--optional {
41
+ max-height: var(--max-height);
42
+ opacity: 0;
43
+ pointer-events: none;
44
+ transition:
45
+ background var(--transition-duration) ease-in-out,
46
+ border-color var(--transition-duration) ease-in-out,
47
+ box-shadow var(--transition-duration) ease-in-out,
48
+ color var(--transition-duration) ease-in-out,
49
+ max-height var(--transition-duration) ease-in-out,
50
+ opacity var(--transition-duration) ease-in-out;
51
+
52
+ #{tokens.state(active, '.field')} & {
53
+ opacity: 1;
54
+ pointer-events: auto;
55
+ }
56
+ }
57
+
58
+
59
+ &-description,
60
+ &-title {
61
+ color: var(--color);
62
+ font-size: var(--font-size);
63
+ position: relative;
64
+ width: 100%;
65
+ word-wrap: break-word;
66
+ }
67
+
68
+ &-mask {
69
+ // Pseudo Element Box Shadow
70
+ &::after {
71
+ @include lib.position(absolute, full);
72
+ border-radius: inherit;
73
+ box-shadow: var(--box-shadow);
74
+ content: '';
75
+ pointer-events: none;
76
+ transition:
77
+ box-shadow var(--transition-duration) ease-in-out,
78
+ opacity var(--transition-duration) ease-in-out,
79
+ transform var(--transition-duration) ease-in-out;
80
+ z-index: 0;
81
+ }
82
+
83
+ &--flat {
84
+ &::after {
85
+ display: none;
86
+ }
87
+ }
88
+
89
+ &--outline {
90
+ &::before {
91
+ @include lib.position(absolute, full);
92
+ box-shadow: 0 0 0 var(--outline-width) var(--border-color);
93
+ border-radius: var(--border-radius);
94
+ content: '';
95
+ opacity: var(--outline-opacity);
96
+ pointer-events: none;
97
+ transition:
98
+ box-shadow var(--transition-duration) ease-in-out,
99
+ opacity var(--transition-duration) ease-in-out;
100
+ z-index: 0;
101
+ }
102
+ }
103
+ }
104
+
105
+ &-required {
106
+ background: var(--background);
107
+ border-radius: var(--border-radius);
108
+ height: var(--size);
109
+ width: var(--size);
110
+ }
111
+
112
+ &-tag {
113
+ &--hidden {
114
+ @include lib.position(absolute, 0 null null 0);
115
+ appearance: none;
116
+ height: 0px;
117
+ opacity: 0;
118
+ pointer-events: none;
119
+ width: 0px;
120
+ z-index: -1;
121
+ }
122
+ }
123
+
124
+ &-title {
125
+ font-weight: var(--font-weight);
126
+ z-index: 1;
127
+ }
128
+
129
+
130
+ @include check.css();
131
+ @include text.css();
132
+ }
@@ -0,0 +1,133 @@
1
+ @use 'ui/tokens';
2
+ @use 'check' as check;
3
+ @use 'text' as text;
4
+
5
+ .field {
6
+ --transition-duration: var(--transition-duration-400);
7
+ --width: 100%;
8
+
9
+
10
+ &--optional {
11
+ --max-height: 0;
12
+ --max-height-active: 0;
13
+
14
+ #{tokens.state(active, '.field')} & {
15
+ --max-height: var(--max-height-active);
16
+ }
17
+ }
18
+
19
+
20
+ &-description {
21
+ --font-size: var(--font-size-300);
22
+ }
23
+
24
+ &-mask {
25
+ --background: var(--background-default);
26
+ --background-active: var(--background-default);
27
+ --background-default: transparent;
28
+ --background-hover: var(--background-default);
29
+ --background-pressed: var(--background-default);
30
+ --border-color: var(--border-color-default);
31
+ --border-color-default: var(--background);
32
+ --border-radius: var(--border-radius-400);
33
+ --border-style: solid;
34
+ --border-width: 0px;
35
+ --box-shadow: var(--box-shadow-default);
36
+ --box-shadow-active: var(--box-shadow-400);
37
+ --box-shadow-default: var(--box-shadow-300);
38
+ --box-shadow-hover: var(--box-shadow-400);
39
+ --box-shadow-pressed: none;
40
+ --color: var(--color-default);
41
+ --color-active: var(--color-default);
42
+ --color-default: var(--color-text-400);
43
+ --color-hover: var(--color-default);
44
+ --color-pressed: var(--color-default);
45
+ --outline-opacity: var(--outline-opacity-default);
46
+ --outline-opacity-active: 0.32;
47
+ --outline-opacity-default: 0;
48
+ --outline-opacity-hover: 0;
49
+ --outline-opacity-pressed: 0;
50
+ --outline-spacing: 0px;
51
+ --outline-width: var(--outline-width-default);
52
+ --outline-width-active: 4px;
53
+ --outline-width-default: 0px;
54
+ --outline-width-hover: 0px;
55
+ --outline-width-pressed: 0px;
56
+ --padding-horizontal: 0px;
57
+ --padding-vertical: var(--size-400);
58
+
59
+
60
+ #{tokens.state(active, '.field')} > &,
61
+ #{tokens.state(active, '.field')} *:not(.field) & {
62
+ --background: var(--background-active);
63
+ --border-color: var(--border-color-active);
64
+ --box-shadow: var(--box-shadow-active);
65
+ --color: var(--color-active);
66
+ --outline-opacity: var(--outline-opacity-active);
67
+ --outline-width: var(--outline-width-active);
68
+ }
69
+
70
+ $inactive: tokens.state(inactive, '.field');
71
+
72
+ #{tokens.state(hover, 'label#{$inactive}')} > &,
73
+ #{tokens.state(hover, '#{$inactive}:not(label) &')} {
74
+ --background: var(--background-hover);
75
+ --border-color: var(--border-color-hover);
76
+ --box-shadow: var(--box-shadow-hover);
77
+ --color: var(--color-hover);
78
+ --outline-opacity: var(--outline-opacity-hover);
79
+ --outline-width: var(--outline-width-hover);
80
+ }
81
+
82
+ #{tokens.state(pressed, 'label#{$inactive}')} > &,
83
+ #{tokens.state(pressed, '#{$inactive}:not(label) &')} {
84
+ --background: var(--background-pressed);
85
+ --border-color: var(--border-color-pressed);
86
+ --box-shadow: var(--box-shadow-pressed);
87
+ --color: var(--color-pressed);
88
+ --outline-opacity: var(--outline-opacity-pressed);
89
+ --outline-width: var(--outline-width-pressed);
90
+ }
91
+
92
+ &--outline {
93
+ @include tokens.state(pressed) {
94
+ --border-color: var(--border-color-default);
95
+
96
+ &::before {
97
+ --outline-width: 0px;
98
+ }
99
+ }
100
+ }
101
+ }
102
+
103
+ &-required {
104
+ --border-radius: var(--border-radius-circle);
105
+ --size: 6px;
106
+ }
107
+
108
+ &-title {
109
+ --color: var(--color-default);
110
+ --color-active: var(--color-default);
111
+ --color-default: var(--color-text-400);
112
+ --color-hover: var(--color-default);
113
+ --color-pressed: var(--color-default);
114
+ --font-size: var(--font-size-400);
115
+ --font-weight: var(--font-weight-500);
116
+
117
+ #{tokens.state(active, '.field')} & {
118
+ --color: var(--color-active);
119
+ }
120
+
121
+ #{tokens.state(hover, '.field')} & {
122
+ --color: var(--color-hover);
123
+ }
124
+
125
+ #{tokens.state(pressed, '.field')} & {
126
+ --color: var(--color-pressed);
127
+ }
128
+ }
129
+
130
+
131
+ @include check.variables();
132
+ @include text.variables();
133
+ }
@@ -0,0 +1,41 @@
1
+ .group {
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ justify-content: flex-start;
5
+ margin: 0 calc(var(--margin-horizontal) / -2);
6
+ position: relative;
7
+ width: calc(100% + var(--margin-horizontal));
8
+
9
+
10
+ &--offset {
11
+ @each $direction in 'bottom' 'top' {
12
+ &-#{$direction} {
13
+ margin-#{$direction}: calc(var(--margin-vertical) * -1);
14
+ }
15
+ }
16
+ }
17
+
18
+ &--scroller {
19
+ .group-item {
20
+ &:first-child {
21
+ margin-left: 0;
22
+ }
23
+
24
+ &:last-child {
25
+ margin-right: 0;
26
+ }
27
+ }
28
+ }
29
+
30
+
31
+ &-item {
32
+ display: flex;
33
+ margin: var(--margin-vertical) calc(var(--margin-horizontal) / 2) 0;
34
+ position: relative;
35
+ width: var(--width);
36
+
37
+ &[class*='--width'] {
38
+ width: calc(var(--width) - var(--margin-horizontal));
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,25 @@
1
+ @use 'ui/lib';
2
+ @use 'ui/tokens';
3
+
4
+ .group {
5
+ --margin-horizontal: var(--size-400);
6
+ --width: auto;
7
+
8
+
9
+ &--column {
10
+ --margin-horizontal: 0px;
11
+
12
+ > .group-item {
13
+ --margin-horizontal: 0px;
14
+ --width: 100%;
15
+ }
16
+ }
17
+
18
+ &--scroller {
19
+ --margin-horizontal: 0px;
20
+
21
+ .group-item {
22
+ --margin-vertical: 0px;
23
+ }
24
+ }
25
+ }