@stackoverflow/stacks 3.0.0-beta.2 → 3.0.0-beta.20

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 (59) hide show
  1. package/dist/css/stacks.css +5981 -5916
  2. package/dist/css/stacks.min.css +1 -1
  3. package/lib/atomic/flex.less +6 -34
  4. package/lib/atomic/height.less +22 -0
  5. package/lib/atomic/misc.less +21 -15
  6. package/lib/atomic/positioning.less +34 -0
  7. package/lib/atomic/sizing.less +76 -0
  8. package/lib/atomic/spacing.less +35 -75
  9. package/lib/atomic/typography.less +52 -13
  10. package/lib/atomic/width.less +27 -0
  11. package/lib/base/body.less +2 -4
  12. package/lib/base/configuration-static.less +3 -3
  13. package/lib/base/internal.less +3 -5
  14. package/lib/base/reset-normalize.less +1 -1
  15. package/lib/components/activity-indicator/activity-indicator.less +1 -17
  16. package/lib/components/avatar/avatar.less +2 -2
  17. package/lib/components/badge/badge.less +179 -173
  18. package/lib/components/banner/banner.less +1 -1
  19. package/lib/components/bling/bling.less +130 -0
  20. package/lib/components/button/button.less +224 -375
  21. package/lib/components/button-group/button-group.less +2 -1
  22. package/lib/components/checkbox_radio/checkbox_radio.less +195 -113
  23. package/lib/components/code-block/code-block.fixtures.ts +2 -2
  24. package/lib/components/code-block/code-block.less +1 -1
  25. package/lib/components/description/description.less +15 -1
  26. package/lib/components/empty-state/empty-state.less +17 -6
  27. package/lib/components/form-group/form-group.less +25 -0
  28. package/lib/components/input-icon/input-icon.less +3 -3
  29. package/lib/components/input_textarea/input_textarea.less +71 -58
  30. package/lib/components/menu/menu.less +83 -21
  31. package/lib/components/modal/modal.less +10 -10
  32. package/lib/components/navigation/navigation.less +62 -37
  33. package/lib/components/notice/notice.less +82 -73
  34. package/lib/components/pagination/pagination.less +44 -43
  35. package/lib/components/popover/popover.less +8 -10
  36. package/lib/components/post-summary/post-summary.less +6 -5
  37. package/lib/components/progress-bar/progress-bar.less +1 -1
  38. package/lib/components/prose/prose.less +5 -5
  39. package/lib/components/select/select.less +26 -37
  40. package/lib/components/sidebar-widget/sidebar-widget.less +2 -2
  41. package/lib/components/table/table.less +0 -8
  42. package/lib/components/tag/tag.less +69 -71
  43. package/lib/components/toast/toast.less +1 -2
  44. package/lib/components/topbar/topbar.less +4 -4
  45. package/lib/components/user-card/user-card.less +118 -92
  46. package/lib/components/vote/vote.less +134 -0
  47. package/lib/exports/color-sets.less +78 -77
  48. package/lib/exports/constants-helpers.less +4 -8
  49. package/lib/exports/constants-type.less +18 -36
  50. package/lib/exports/mixins.less +71 -0
  51. package/lib/stacks-static.less +7 -5
  52. package/lib/tsconfig.json +1 -1
  53. package/package.json +1 -1
  54. package/lib/atomic/width-height.less +0 -194
  55. package/lib/components/award-bling/award-bling.less +0 -32
  56. package/lib/components/check-control/check-control.less +0 -17
  57. package/lib/components/check-group/check-group.less +0 -19
  58. package/lib/components/skeleton/skeleton.less +0 -73
  59. package/lib/exports/spacing-mixins.less +0 -67
@@ -9,32 +9,18 @@
9
9
  */
10
10
  .generate-variant-variables(@colorName: "", @modifier: "") {
11
11
  & when (@modifier = "") {
12
- --_no-bc: ~"var(--@{colorName}-300)";
13
12
  --_no-bg: ~"var(--@{colorName}-100)";
14
- --_no-btn-bg-active: ~"var(--@{colorName}-200)";
15
- --_no-btn-bg-focus: ~"var(--@{colorName}-200)";
16
- --_no-btn-fc: ~"var(--@{colorName}-500)";
13
+ --_no-icon-bg: ~"var(--@{colorName}-200)";
17
14
  --_no-code-bc: ~"var(--@{colorName}-300)";
18
15
  --_no-code-bg: ~"var(--@{colorName}-200)";
19
-
20
- .highcontrast-mode({
21
- --_no-bc: ~"var(--@{colorName}-400)";
22
- });
23
16
  }
24
17
 
25
18
  & when (@modifier = important) {
26
- --_no-bc: var(--_no-bg);
27
19
  --_no-bg: ~"var(--@{colorName}-400)";
20
+ --_no-icon-bg: ~"var(--@{colorName}-500)";
28
21
  --_no-fc: var(--white);
29
- --_no-btn-bg-active: ~"var(--@{colorName}-500)";
30
- --_no-btn-bg-focus: ~"var(--@{colorName}-500)";
31
- --_no-btn-fc: ~"var(--@{colorName}-100)";
32
22
  --_no-code-bc: ~"var(--@{colorName}-300)";
33
23
  --_no-code-bg: ~"var(--@{colorName}-500)";
34
-
35
- .highcontrast-mode({
36
- --_no-bg: ~"var(--@{colorName}-500)";
37
- });
38
24
  }
39
25
  }
40
26
 
@@ -47,47 +33,27 @@
47
33
  * @baseClass - The base class name for the notice component
48
34
  */
49
35
  .construct-notice-component(@baseClass) {
50
- --_no-bc: var(--black-225);
51
- --_no-bg: var(--black-100);
52
- --_no-fc: var(--black-500);
53
- --_no-btn-bg-active: var(--black-250);
54
- --_no-btn-bg-focus: var(--black-225);
55
- --_no-btn-fc: var(--_no-fc);
36
+ --_no-bg: var(--black-150);
37
+ --_no-icon-bg: var(--black-200);
38
+ --_no-fc: var(--black-600);
56
39
  --_no-code-bc: var(--black-300);
57
40
  --_no-code-bg: var(--black-200);
58
41
  --_no-code-fc: var(--_no-fc);
59
42
 
60
43
  // CONTEXTUAL STYLES
61
44
  .highcontrast-mode({
62
- &,
63
- &.@{baseClass}__danger,
64
- &.@{baseClass}__info,
65
- &.@{baseClass}__success,
66
- &.@{baseClass}__warning {
67
- --_no-code-bc: var(--black-400);
68
- --_no-code-bg: var(--white);
69
- --_no-code-fc: var(--black);
70
-
71
- &.@{baseClass}__important {
72
- --_no-code-bc: var(--black-200);
73
- --_no-code-bg: var(--black);
74
- --_no-code-fc: var(--white);
75
- }
45
+ &:not(&__important) {
46
+ --_no-icon-bc: var(--_no-code-bc);
76
47
  }
77
-
78
- --_no-bc: var(--black-400);
79
48
  });
80
49
 
81
50
  // MODIFIERS
82
- &__important:not(.@{baseClass}__danger):not(.@{baseClass}__info):not(.@{baseClass}__success):not(.@{baseClass}__warning) {
83
- --_no-bc: var(--_no-bg);
84
- --_no-bg: var(--black-500);
51
+ &__important {
52
+ --_no-bg: var(--black-400);
53
+ --_no-icon-bg: var(--black-500);
85
54
  --_no-fc: var(--white);
86
- --_no-btn-bg-focus: var(--black-600);
87
- --_no-btn-bg-active: var(--black-600);
88
- --_no-btn-fc: var(--_no-fc);
89
55
  --_no-code-bc: var(--black-300);
90
- --_no-code-bg: var(--black-600);
56
+ --_no-code-bg: var(--black-500);
91
57
  }
92
58
 
93
59
  // VARIANTS
@@ -103,11 +69,11 @@
103
69
 
104
70
  &__info {
105
71
  &:not(.@{baseClass}__important) {
106
- .generate-variant-variables(theme-secondary);
72
+ .generate-variant-variables(blue);
107
73
  }
108
74
 
109
75
  &.@{baseClass}__important {
110
- .generate-variant-variables(theme-secondary, important);
76
+ .generate-variant-variables(blue, important);
111
77
  }
112
78
  }
113
79
 
@@ -121,33 +87,57 @@
121
87
  }
122
88
  }
123
89
 
90
+ &__featured {
91
+ &:not(.@{baseClass}__important) {
92
+ .generate-variant-variables(purple);
93
+ }
94
+
95
+ &.@{baseClass}__important {
96
+ .generate-variant-variables(purple, important);
97
+ }
98
+ }
99
+
100
+ &__activity {
101
+ &:not(.@{baseClass}__important) {
102
+ .generate-variant-variables(pink);
103
+ }
104
+
105
+ &.@{baseClass}__important {
106
+ .generate-variant-variables(pink, important);
107
+ }
108
+ }
109
+
124
110
  &__warning {
125
111
  &:not(.@{baseClass}__important) {
126
112
  .generate-variant-variables(yellow);
127
- --_no-btn-fc: var(--yellow-600);
113
+
128
114
  }
129
115
 
130
116
  &.@{baseClass}__important {
131
- --_no-bc: var(--_no-bg);
132
- --_no-bg: var(--yellow-400);
117
+ --_no-bg: var(--yellow-300);
118
+ --_no-icon-bg: var(--yellow-400);
133
119
  --_no-fc: var(--black);
134
- --_no-btn-fc: var(--_no-fc);
135
- --_no-btn-bg-active: var(--yellow-300);
136
- --_no-btn-bg-focus: var(--yellow-300);
137
- --_no-code-bc: var(--yellow-500);
138
- --_no-code-bg: var(--yellow-300);
120
+ --_no-code-bc: var(--yellow-400);
121
+ --_no-code-bg: var(--yellow-200);
122
+
123
+ .s-notice--icon {
124
+ color: var(--white);
125
+ }
139
126
 
140
127
  .dark-mode({
141
128
  --_no-fc: var(--white);
142
129
  --_no-code-bc: var(--yellow-300);
143
130
  --_no-code-bg: var(--yellow-500);
131
+ --_no-bg: var(--yellow-400);
132
+ --_no-icon-bg: var(--yellow-500);
144
133
  });
145
134
 
146
135
  .highcontrast-mode({
147
- --_no-bg: var(--yellow-500);
136
+ --_no-bg: var(--yellow-400);
137
+ --_no-icon-bg: var(--yellow-500);
138
+ --_no-code-bc: var(--yellow-300);
139
+ --_no-code-bg: var(--yellow-500);
148
140
  --_no-fc: var(--white);
149
- --_no-btn-bg-active: transparent;
150
- --_no-btn-bg-focus: transparent;
151
141
  });
152
142
  }
153
143
  }
@@ -157,41 +147,60 @@
157
147
  background-color: var(--_no-code-bg);
158
148
  color: var(--_no-code-fc);
159
149
  outline: var(--su-static1) solid var(--_no-code-bc);
160
-
161
- border-radius: var(--br-md);
162
150
  padding-left: var(--su2);
163
151
  padding-right: var(--su2);
152
+ white-space: nowrap;
164
153
  }
165
154
 
166
- & &--btn {
167
- // TODO: decouple .s-notice--btn from .s-btn
155
+ button&--dismiss {
168
156
  &:active {
169
- background-color: var(--_no-btn-bg-active, inherit) !important;
157
+ background-color: var(--_no-fc);
158
+ color: var(--_no-bg);
170
159
  }
171
160
 
172
161
  &:focus-visible,
173
162
  &:hover,
174
163
  &.focus-inset-bordered {
175
- background-color: var(--_no-btn-bg-focus, inherit) !important;
164
+ background-color: var(--_no-fc);
165
+ color: var(--_no-bg);
176
166
  }
167
+ }
177
168
 
178
- color: var(--_no-btn-fc, inherit) !important;
179
- padding: var(--su8);
169
+ :has(>button&--dismiss) {
170
+ padding-left: var(--su24);
171
+ //Add spacing between multiple notice actions
172
+ gap: calc(var(--su24) - var(--su2)); //22px
173
+ //Fix css issue caused by svelte-sonner-toast in the NoticeAction svelte component
174
+ overflow-wrap: initial !important;
180
175
  }
181
176
 
182
177
  // STYLES MODIFIED BY COMPONENT-SPECIFIC CUSTOM PROPERTIES
183
178
  background: var(--_no-bg);
184
- border-color: var(--_no-bc);
185
179
  color: var(--_no-fc);
186
-
187
- border-style: solid;
188
- font-size: var(--fs-body1);
189
180
  }
190
181
 
191
182
  .s-notice {
192
183
  .construct-notice-component(s-notice);
193
184
 
194
- border-radius: var(--br-md);
195
- border-width: var(--su-static1);
196
- padding: var(--su16);
185
+ display: flex;
186
+ align-items: center;
187
+
188
+ --_no-pd: var(--su8);
189
+ padding: var(--_no-pd) var(--su12) var(--_no-pd) 0;
190
+
191
+ &--icon {
192
+ background: var(--_no-icon-bg);
193
+ border: var(--su1) solid var(--_no-icon-bc, var(--_no-icon-bg));
194
+ padding: var(--_no-pd);
195
+ margin-right: var(--su12);
196
+ align-self: stretch;
197
+
198
+ //Position the svg icon
199
+ display: flex;
200
+ align-items: top;
201
+
202
+ //Negative margin to make up for s-notice's padding
203
+ margin-top: calc(var(--_no-pd) * -1);
204
+ margin-bottom: calc(var(--_no-pd) * -1);
205
+ }
197
206
  }
@@ -8,70 +8,71 @@
8
8
  }
9
9
 
10
10
  & &--item {
11
- --_pa-item-bg: transparent;
12
- --_pa-item-bc: var(--bc-darker);
13
- --_pa-item-fc: var(--fc-medium);
14
- --_pa-item-bg-focus: var(--black-400);
15
- --_pa-item-fc-focus: var(--white);
16
- --_pa-item-bg-hover: var(--black-225);
17
- --_pa-item-bc-hover: var(--bc-darker);
18
- --_pa-item-fc-hover: var(--fc-dark);
19
-
20
- // CONTEXTUAL STYLES
21
- .highcontrast-mode({ text-decoration: none; });
11
+ --_pa-item-bg: unset;
12
+ --_pa-item-br: unset;
13
+ --_pa-item-fc: var(--black-400);
14
+ --_pa-item-p: var(--su-static4);
22
15
 
23
16
  // MODIFIERS
24
17
  &.is-selected {
25
- --_pa-item-bg: var(--theme-primary);
26
- --_pa-item-bc: transparent;
27
- --_pa-item-fc: var(--white);
28
- --_pa-item-bg-focus: var(--theme-primary-400);
29
- }
30
- &.s-pagination--item__clear {
31
- --_pa-item-bg: transparent;
32
- --_pa-item-bc: transparent;
33
- --_pa-item-fc: inherit;
18
+ --_pa-item-fc: var(--black-600);
19
+
20
+ &:not(:hover):not(:focus-visible):before {
21
+ background-color: var(--black-600);
22
+ content: "";
23
+ height: var(--su-static2);
24
+ left: 0;
25
+ position: absolute;
26
+ right: 0;
27
+ top: 100%;
28
+ }
34
29
  }
35
- // override hover styles to match base styles
36
- &.is-selected,
37
- &.s-pagination--item__clear {
38
- --_pa-item-bc-hover: var(--_pa-item-bc);
39
- --_pa-item-bg-hover: var(--_pa-item-bg);
40
- --_pa-item-fc-hover: var(--_pa-item-fc);
30
+ &.s-pagination--item__nav {
31
+ --_pa-item-bg: var(--black-150);
32
+ --_pa-item-br: var(--br-circle);
33
+ --_pa-item-fc: var(--black-600);
34
+ --_pa-item-p: var(--su-static6);
35
+
36
+ aspect-ratio: 1 / 1;
37
+
38
+ &:hover {
39
+ --_pa-item-bg: var(--black-200);
40
+ }
41
41
  }
42
42
 
43
43
  // INTERACTION
44
- &:hover {
45
- background-color: var(--_pa-item-bg-hover);
46
- border-color: var(--_pa-item-bc-hover);
47
- color: var(--_pa-item-fc-hover);
44
+ &[href]:hover:not(&__nav) {
45
+ --_pa-item-bg: var(--black-150);
46
+ --_pa-item-br: var(--br-pill);
47
+ --_pa-item-fc: var(--black-600);
48
48
  }
49
-
50
49
  &:focus-visible {
51
- .focus-styles(true, true);
50
+ --_pa-item-bg: var(--black-150);
51
+ --_pa-item-fc: var(--black-600);
52
+ .focus-styles(false, true);
52
53
  }
53
-
54
- &:focus-visible,
54
+ &:focus-visible:not(&__nav),
55
55
  &.focus-inset-bordered {
56
- background-color: var(--_pa-item-bg-focus);
57
- color: var(--_pa-item-fc-focus);
56
+ --_pa-item-br: var(--br-md);
58
57
  }
59
58
 
60
59
  background-color: var(--_pa-item-bg);
61
- border: 1px solid var(--_pa-item-bc);
60
+ border-radius: var(--_pa-item-br);
62
61
  color: var(--_pa-item-fc);
62
+ padding: var(--_pa-item-p);
63
63
 
64
- border-radius: var(--br-md);
65
- display: inline-block;
66
- font-size: var(--fs-body1);
67
- line-height: var(--lh-xl);
68
- padding: 0 var(--su8);
64
+ display: inline-flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ margin: var(--su-static1);
68
+ position: relative;
69
69
  }
70
70
 
71
71
  &,
72
72
  ul {
73
73
  display: flex;
74
+ align-items: center;
74
75
  flex-wrap: wrap;
75
- gap: var(--su4);
76
+ gap: var(--su2);
76
77
  }
77
78
  }
@@ -3,7 +3,7 @@
3
3
  --_po-bc: var(--bc-medium);
4
4
  --_po-bs: var(--bs-md);
5
5
  --_po-d: none;
6
- --_po-wmn: 12rem;
6
+ --_po-wmn: 10.5rem;
7
7
  --_po-w: 100%;
8
8
  // content
9
9
  // --_po-topbar-height assumes the topbar height based on topbar styles
@@ -12,9 +12,7 @@
12
12
 
13
13
  // CONTEXTUAL STYLES
14
14
  .dark-mode({
15
- --_po-bg: var(--black-200);
16
- --_po-bc: var(--bc-light);
17
- --_po-bs: var(--bs-lg);
15
+ --_po-bg: var(--black-100);
18
16
  });
19
17
 
20
18
  // MODIFIERS
@@ -31,20 +29,20 @@
31
29
  // Close btn
32
30
  & &--close {
33
31
  float: right; // Use floats for title wrapping
34
- top: calc(var(--su8) * -1); // Compensate for s-popover's padding
35
- right: calc(var(--su8) * -1); // Compensate for s-popover's padding
36
- padding: var(--su8) !important;
32
+ top: var(--sun8); // Compensate for s-popover's padding
33
+ right: var(--sun8); // Compensate for s-popover's padding
34
+ padding: var(--su6) !important;
37
35
  }
38
36
 
39
37
  & &--content {
40
38
  max-height: var(--_po-content-mxh);
41
39
  overflow-y: auto;
42
- margin: calc(var(--su12) * -1);
40
+ margin: var(--sun12);
43
41
  padding: var(--su12);
44
42
  }
45
43
 
46
44
  background-color: var(--_po-bg);
47
- border: 1px solid var(--_po-bc);
45
+ border: var(--su-static1) solid var(--_po-bc);
48
46
  box-shadow: var(--_po-bs);
49
47
  display: var(--_po-d);
50
48
  min-width: var(--_po-wmn);
@@ -53,7 +51,7 @@
53
51
  border-radius: var(--br-md);
54
52
  color: var(--fc-dark);
55
53
  font-size: var(--fs-body1);
56
- max-width: 24rem;
54
+ max-width: 21rem;
57
55
  padding: var(--su12);
58
56
  position: absolute;
59
57
  white-space: normal; // Guard against popovers being in a container with white-space: nowrap. Without this, the content pops *out* of the popover.
@@ -76,6 +76,7 @@
76
76
 
77
77
  background-color: var(--_ps-meta-tags-tag-bg);
78
78
  color: var(--black-500);
79
+ border-color: var(--black-300);
79
80
  }
80
81
  }
81
82
  }
@@ -216,7 +217,7 @@
216
217
  .v-truncate2;
217
218
  color: var( --_ps-content-excerpt-fc);
218
219
  font-family: var(--theme-post-body-font-family, var(--theme-body-font-family));
219
- margin-top: calc(var(--su2) * -1);
220
+ margin-top: var(--sun2);
220
221
  margin-bottom: var(--su8);
221
222
  }
222
223
 
@@ -260,7 +261,7 @@
260
261
 
261
262
  .svg-icon {
262
263
  position: relative;
263
- top: calc(var(--su1) * -1);
264
+ top: var(--sun1);
264
265
  vertical-align: text-bottom; // Optical alignment
265
266
  }
266
267
 
@@ -269,15 +270,15 @@
269
270
  font-size: var(--fs-body3);
270
271
  font-weight: normal;
271
272
  line-height: var(--lh-md);
272
- margin-bottom: 0.3846rem;
273
- margin-top: -0.15rem; // Optical alignment to compensate for title's containing block
273
+ margin-bottom: 0.3365rem;
274
+ margin-top: -0.125rem; // Optical alignment to compensate for title's containing block
274
275
  padding-right: var(--su24);
275
276
  }
276
277
 
277
278
  &--content-type {
278
279
  .svg-icon {
279
280
  color: var(--fc-light);
280
- margin-left: calc(var(--su2) * -1);
281
+ margin-left: var(--sun2);
281
282
  }
282
283
 
283
284
  color: var(--fc-medium);
@@ -254,7 +254,7 @@
254
254
  content: "";
255
255
  display: block;
256
256
  height: 100%;
257
- left: calc(var(--su-static1) * -1); // -1px
257
+ left: var(--sun1);
258
258
  position: absolute;
259
259
  top: 0;
260
260
  width: var(--su-static4);
@@ -49,11 +49,11 @@
49
49
  &&__xs,
50
50
  &&__sm,
51
51
  &&__md {
52
- --_pr-h1-fs: var(--fs-headline1-relative);
53
- --_pr-h2-fs: var(--fs-title-relative);
54
- --_pr-h3-fs: var(--fs-subheading-relative);
55
- --_pr-h4-fs: var(--fs-body3-relative);
56
- --_pr-h5-fs: var(--fs-body2-relative);
52
+ --_pr-h1-fs: 1.75em;
53
+ --_pr-h2-fs: 1.375em;
54
+ --_pr-h3-fs: 1.25em;
55
+ --_pr-h4-fs: 1.125em;
56
+ --_pr-h5-fs: 1em;
57
57
  }
58
58
 
59
59
  &&__xs {
@@ -1,13 +1,13 @@
1
1
  .s-select {
2
- --_se-arrow-bc: currentColor transparent;
3
- --_se-arrow-size: var(--su-static4); // Constant
2
+ --_se-arrow-fc: currentColor;
4
3
  --_se-select-bc: var(--bc-darker);
5
4
  --_se-select-bg: var(--white);
6
5
  --_se-select-br: var(--br-md);
7
6
  --_se-select-fc: var(--black);
8
7
  --_se-select-px: 0.7em;
9
- --_se-select-py: 0.6em;
8
+ --_se-select-py: var(--su-static8);
10
9
  --_se-select-fs: var(--fs-body1);
10
+ --_se-select-lh: var(--lh-base);
11
11
 
12
12
  // CONTEXTUAL STYLES
13
13
  @supports (-webkit-overflow-scrolling: touch) {
@@ -23,30 +23,15 @@
23
23
 
24
24
  .validation-states(se-select);
25
25
 
26
- .is-disabled & {
27
- --_se-arrow-bc: var(--bc-dark) transparent;
28
- }
29
-
30
26
  &&__sm {
31
27
  .size-styles(sm; se-select; @styles: fs);
32
- // --_se-select-fs: var(--fs-caption);
33
- }
34
-
35
- &&__md {
36
- .size-styles(md; se-select; @styles: br, fs);
37
- --_se-select-py: 0.5em;
28
+ --_se-select-lh: var(--lh-sm);
29
+ --_se-select-py: calc(var(--su6) - var(--su-static1) / 2);
38
30
  }
39
31
 
40
32
  &&__lg {
41
- .size-styles(lg; se-select; @styles: br, fs);
42
- --_se-select-px: 0.6em;
43
- --_se-select-py: 0.45em;
44
- }
45
-
46
- &&__xl {
47
- .size-styles(xl; se-select; @styles: br, fs);
48
- --_se-select-px: 0.5em;
49
- --_se-select-py: 0.4em;
33
+ .size-styles(md; se-select; @styles: fs);
34
+ --_se-select-lh: var(--lh-lg);
50
35
  }
51
36
 
52
37
  // CHILD ELEMENTS
@@ -55,26 +40,29 @@
55
40
  .webkit-autofill();
56
41
  }
57
42
 
58
- &:before,
59
- &:after { // menu arrows
60
- border-color: var(--_se-arrow-bc);
61
- border-style: solid;
62
- border-width: var(--_se-arrow-size);
43
+ &:after { // Chevron16UpDown icon
44
+ background-color: currentColor;
63
45
  content: "";
46
+ height: var(--su-static16);
47
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M13.06 10 8 15.06 2.94 10 4 8.94l.53.53L8 12.94l3.47-3.47.53-.53zm0-4L12 7.06l-.53-.53L8 3.06 4.53 6.53 4 7.06 2.94 6 8 .94z'/%3E%3C/svg%3E");
48
+ mask-repeat: no-repeat;
49
+ mask-position: center;
50
+ mask-size: contain;
64
51
  pointer-events: none;
65
52
  position: absolute;
66
- right: calc(var(--su-static12) + var(--su-static1));
53
+ right: calc(var(--su32) - var(--su-static24));
54
+ top: 50%;
55
+ transform: translateY(-50%);
56
+ width: var(--su-static16);
67
57
  z-index: var(--zi-selected);
68
58
  }
69
59
 
70
- &:after {
71
- border-bottom-width: 0;
72
- top: calc(50% + var(--su-static1));
73
- }
60
+ .is-disabled & {
61
+ --_se-arrow-fc: var(--bc-dark);
74
62
 
75
- &:before {
76
- border-top-width: 0;
77
- top: calc(50% - calc(var(--_se-arrow-size) + var(--su-static1)));
63
+ &:after {
64
+ background-color: var(--_se-arrow-fc);
65
+ }
78
66
  }
79
67
 
80
68
  > select { // Menu
@@ -82,7 +70,8 @@
82
70
  fieldset[disabled] &,
83
71
  &[disabled] {
84
72
  cursor: not-allowed;
85
- opacity: var(--_o-disabled-static);
73
+ --_se-select-fc: var(--black-300);
74
+ --_se-select-bg: var(--black-100);
86
75
  }
87
76
 
88
77
  &[readonly],
@@ -118,7 +107,7 @@
118
107
  appearance: none;
119
108
  font-family: inherit;
120
109
  height: 100%; // Fill the height of its parent
121
- line-height: var(--lh-sm);
110
+ line-height: var(--_se-select-lh);
122
111
  outline: 0;
123
112
  padding-right: var(--su32);
124
113
  position: relative; // This prevents Firefox from requiring a second click to select options
@@ -123,8 +123,8 @@
123
123
  content: '';
124
124
  height: calc(100% + var(--su16));
125
125
  left: 0;
126
- margin-left: calc(var(--su16) * -1 - var(--su-static1)); // the orange selection indicator overlaps with the widget border
127
- margin-top: calc(var(--su16) / 2 * -1);
126
+ margin-left: var(--sun16); // the orange selection indicator overlaps with the widget border
127
+ margin-top: var(--sun8);
128
128
  position: absolute;
129
129
  }
130
130
 
@@ -202,10 +202,6 @@
202
202
  }
203
203
 
204
204
  td {
205
- .s-checkbox {
206
- display: block;
207
- }
208
-
209
205
  &.s-table--bulk {
210
206
  --_ta-td-w: calc(var(--su32) - var(--su2)); // 30px
211
207
  }
@@ -249,10 +245,6 @@
249
245
  }
250
246
 
251
247
  th {
252
- .s-checkbox {
253
- display: block;
254
- }
255
-
256
248
  &.s-table--bulk {
257
249
  --_ta-th-w: calc(var(--su32) - var(--su2)); // 30px
258
250
  }