@stackoverflow/stacks 3.0.0-beta.5 → 3.0.0-beta.7

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.
@@ -4,34 +4,18 @@
4
4
  --_ai-min-size: var(--su-static16);
5
5
  --_ai-p: 0 calc(var(--su-static4) - var(--su-static1));
6
6
 
7
- .highcontrast-mode({
8
- --_ai-bg: var(--theme-secondary-500);
9
- });
10
-
11
7
  // VARIANTS
12
8
  &&__danger {
13
9
  --_ai-bg: var(--red-400);
14
-
15
- .highcontrast-mode({
16
- --_ai-bg: var(--red-500);
17
- });
18
10
  }
19
11
 
20
12
  &&__success {
21
13
  --_ai-bg: var(--green-400);
22
14
 
23
- .highcontrast-mode({
24
- --_ai-bg: var(--green-500);
25
- });
26
15
  }
27
16
 
28
17
  &&__warning {
29
18
  --_ai-bg: var(--yellow-400);
30
-
31
- .highcontrast-mode({
32
- --_ai-bg: var(--yellow-500); // needs to be here to override default high contrast
33
- --_ai-fc: var(--white);
34
- });
35
19
  }
36
20
 
37
21
  &&__sm {
@@ -45,7 +29,7 @@
45
29
  min-height: var(--_ai-min-size);
46
30
  padding: var(--_ai-p);
47
31
 
48
- border-radius: 1000px;
32
+ border-radius: var(--br-pill);
49
33
  display: inline-flex;
50
34
  font-size: var(--fs-fine);
51
35
  font-weight: 600;
@@ -1,82 +1,66 @@
1
1
  .s-badge {
2
2
  --_ba-as: unset;
3
- --_ba-bc: var(--bc-medium);
3
+ --_ba-bc: transparent;
4
4
  --_ba-bg: var(--black-150);
5
- --_ba-fc: var(--black-500);
6
- --_ba-fs: var(--fs-caption);
7
- --_ba-fw: normal;
8
- --_ba-g: 0.3em;
9
- --_ba-lh: 2;
5
+ --_ba-fc: var(--black-600);
6
+ --_ba-fs: var(--fs-caption); //13px
10
7
  --_ba-px: var(--su6);
11
- --_ba-py: 0;
8
+ --_ba-py: var(--su4);
12
9
  --_ba-tt: unset;
13
10
  --_ba-wmn: 0;
11
+ --_ba-bl: 0;
12
+ --_ba-fw: unset;
14
13
 
15
- // CONTEXTUAL STYLES
16
- .highcontrast-mode({
17
- // Badge counts
18
- &__gold,
19
- &__silver,
20
- &__bronze,
21
- // Number counts
22
- &__rep,
23
- &__rep-down,
24
- &__votes:not(.s-badge__answered),
25
- // Users
26
- &__admin,
27
- &__moderator,
28
- &__staff {
29
- --_ba-bc: currentColor;
30
- }
31
-
32
- &__new {
33
- --_ba-fc: var(--purple-600);
34
- }
35
- });
36
-
37
- // MODIFIERS
38
- // Sizes
39
- &&__xs,
14
+ // SIZES
40
15
  &&__sm {
16
+ --_ba-wmn: calc(var(--su-static16) + var(--su-static2));
41
17
  --_ba-as: flex-start;
42
- --_ba-fs: var(--fs-fine);
18
+ --_ba-fs: var(--fs-fine); //12px
19
+ --_ba-px: var(--su4);
20
+ --_ba-py: var(--su1);
43
21
  }
44
22
 
45
- &&__xs {
46
- --_ba-lh: 1.5;
47
- --_ba-px: var(--su2);
48
- --_ba-wmn: calc(var(--su-static16) + var(--su-static2));
23
+ &&__lg {
24
+ --_ba-fs: var(--fs-body1); //14px
25
+ --_ba-px: var(--su8);
26
+ --_ba-py: calc(var(--su4) + var(--su1)); //5px
49
27
  }
50
28
 
51
- &&__sm {
52
- --_ba-lh: 1.8;
53
- --_ba-px: var(--su4);
54
- --_ba-wmn: calc(var(--su-static16) + var(--su-static2));
29
+ // We need negative margin to make up for the positive badge padding
30
+ & .s-bling__filled {
31
+ margin: calc(var(--_ba-py) * -1) 0 calc(var(--_ba-py) * -1) calc(var(--_ba-px) * -1);
55
32
  }
56
33
 
57
- // Badge counts
34
+ &:has(.s-bling__rep) {
35
+ --_ba-fw: 600;
36
+ }
37
+
38
+ // TAG BADGES
58
39
  &&__gold,
59
40
  &&__silver,
60
41
  &&__bronze {
61
- --_ba-fc: var(--black-500);
42
+ --_ba-bl: var(--su4);
43
+
44
+ & .s-bling__gold,
45
+ & .s-bling__silver,
46
+ & .s-bling__bronze {
47
+ margin-left: -2px;
48
+ }
62
49
  }
63
50
 
64
51
  &&__gold {
65
52
  --_ba-bc: var(--yellow-300);
66
- --_ba-bg: var(--yellow-100);
67
53
  }
68
54
 
69
55
  &&__silver {
70
56
  --_ba-bc: var(--blue-300);
71
- --_ba-bg: var(--blue-100);
72
57
  }
73
58
 
74
59
  &&__bronze {
75
60
  --_ba-bc: var(--orange-300);
76
- --_ba-bg: var(--orange-100);
77
61
  }
78
62
 
79
- // Number counts
63
+ // NUMBER COUNTS
80
64
  &&__answered,
81
65
  &&__bounty,
82
66
  &&__important {
@@ -117,48 +101,36 @@
117
101
  --_ba-fc: var(--black-500);
118
102
  }
119
103
 
120
- // Users
121
- &&__admin {
122
- --_ba-bc: var(--theme-primary-200);
123
- --_ba-bg: var(--theme-primary-100);
124
- --_ba-fc: var(--theme-primary-500);
104
+ // USER TYPES
105
+ &&__admin,
106
+ &&__moderator,
107
+ &&__staff,
108
+ &&__ai,
109
+ &&__bot {
110
+ --_ba-bl: var(--su4);
125
111
  }
126
112
 
127
113
  &&__moderator {
128
- --_ba-bc: var(--theme-secondary-300);
129
- --_ba-bg: var(--theme-secondary-200);
130
- --_ba-fc: var(--theme-secondary-600);
131
- --_ba-g: calc(var(--su-static4) - var(--su-static1)); // 3px
132
114
  // :before icon
133
- --_ba-before-h: calc(var(--su-static16) - var(--su-static2)); // 14px
134
- --_ba-before-icon: url("data:image/svg+xml;,%3Csvg width='12' height='14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.528.746c.257-.329.675-.327.93 0l4.42 5.66c.258.329.257.864 0 1.192l-4.42 5.66c-.256.328-.674.327-.93 0l-4.42-5.66c-.257-.329-.256-.865 0-1.192l4.42-5.66z' fill='%23fff'/%3E%3C/svg%3E");
135
- --_ba-before-mt: calc(var(--su-static1) * -1); // -1px
136
- --_ba-before-w: var(--su-static12);
137
-
138
- // Sizes
139
- &.s-badge__xs {
140
- --_ba-before-h: calc(var(--su-static8) + var(--su-static1)); // 9px
141
- --_ba-before-icon: url("data:image/svg+xml;,%3Csvg width='7' height='9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 .246c.3-.329.701-.327 1 0L6.776 4c.3.329.298.672 0 1L4 8.75c-.299.329-.702.327-1 0L.224 5c-.284-.324-.285-.675 0-1L3 .246z' fill='%23fff'/%3E%3C/svg%3E");
142
- --_ba-before-mt: 0;
143
- --_ba-before-w: calc(var(--su-static8) - var(--su-static1)); // 7px
144
- }
115
+ --_ba-bc: var(--blue-500);
116
+ --_ba-before-h: calc(var(--su12) + var(--su1)); // 13px
117
+ --_ba-before-w: calc(var(--su12) - var(--su1)); // 11px
118
+ --_ba-before-icon: url("data:image/svg+xml;,%3Csvg width='11' height='13' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.528.746c.257-.329.675-.327.93 0l4.42 5.66c.258.329.257.864 0 1.192l-4.42 5.66c-.256.328-.674.327-.93 0l-4.42-5.66c-.257-.329-.256-.865 0-1.192l4.42-5.66z' fill='%23fff'/%3E%3C/svg%3E");
145
119
 
146
120
  &.s-badge__sm {
147
- --_ba-g: var(--su-static2);
148
- --_ba-before-h: calc(var(--su-static12) - var(--su-static1)); // 11px
121
+ --_ba-before-h: calc(var(--su12) - var(--su1)); // 11px
122
+ --_ba-before-w: calc(var(--su8) + var(--su1)); // 9px
149
123
  --_ba-before-icon: url("data:image/svg+xml;,%3Csvg width='9' height='11' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.55.246c.257-.329.647-.327.903 0l3.36 4.66c.256.329.256.864 0 1.192L4.45 10.75c-.257.329-.644.327-.9 0L.192 6.098c-.256-.329-.256-.865 0-1.192L3.55.246z' fill='%23fff'/%3E%3C/svg%3E");
150
- --_ba-before-mt: 0;
151
- --_ba-before-w: calc(var(--su-static8) + var(--su-static1)); // 9px
152
124
  }
153
125
 
154
126
  &:before {
155
127
  height: var(--_ba-before-h);
156
- margin-top: var(--_ba-before-mt);
128
+ margin-top: calc(var(--su1) * -1);
157
129
  width: var(--_ba-before-w);
158
130
 
159
131
  content: "";
160
132
  display: inline-block;
161
- background-color: currentColor;
133
+ background-color: var(--_ba-bc);
162
134
  -webkit-mask: var(--_ba-before-icon) no-repeat center;
163
135
  mask: var(--_ba-before-icon) no-repeat center;
164
136
  -webkit-mask-size: contain;
@@ -167,22 +139,21 @@
167
139
  }
168
140
 
169
141
  &&__staff {
170
- // Staff badges are always "Stack Overflow Orange"
171
- --_ba-bc: var(--orange-300);
172
- --_ba-bg: var(--orange-200);
173
- --_ba-fc: var(--orange-600);
142
+ // Staff should always be "StackOverflow orange"
143
+ --_ba-bc: var(--orange-400);
144
+ }
145
+
146
+ &&__admin {
147
+ // Only the admin badge is themeable
148
+ --_ba-bc: var(--theme-primary-500, var(--orange-500));
174
149
  }
175
150
 
176
- // VARIANTS
177
151
  &&__ai {
178
- --_ba-bc: var(--_ba-fc);
179
- --_ba-bg: var(--black-050);
180
- --_ba-fc: var(--orange-500);
181
- --_ba-tt: uppercase;
152
+ --_ba-bc: var(--purple-400);
182
153
  }
183
154
 
184
155
  &&__bot {
185
- --_ba-bc: var(--black-300);
156
+ --_ba-bc: var(--black-400);
186
157
  }
187
158
 
188
159
  &&__danger,
@@ -229,7 +200,6 @@
229
200
  --_ba-bc: var(--_ba-bg);
230
201
  --_ba-bg: var(--purple-100);
231
202
  --_ba-fc: var(--purple-400);
232
- --_ba-fw: bold;
233
203
  --_ba-tt: uppercase;
234
204
  }
235
205
 
@@ -249,18 +219,17 @@
249
219
 
250
220
  align-self: var(--_ba-as);
251
221
  background-color: var(--_ba-bg);
252
- border: var(--su-static1) solid var(--_ba-bc);
222
+ border-left: var(--_ba-bl) solid var(--_ba-bc);
253
223
  color: var(--_ba-fc);
254
224
  font-size: var(--_ba-fs);
255
- gap: var(--_ba-g);
256
225
  font-weight: var(--_ba-fw);
257
- line-height: var(--_ba-lh);
258
- min-width: var(--_ba-wmn);
226
+ gap: var(--_ba-px);
259
227
  padding: var(--_ba-py) var(--_ba-px);
228
+ line-height: var(--lh-md);
229
+ min-width: var(--_ba-wmn);
260
230
  text-transform: var(--_ba-tt);
261
231
 
262
232
  align-items: center;
263
- border-radius: var(--br-md);
264
233
  display: inline-flex;
265
234
  justify-content: center;
266
235
  text-decoration: none;
@@ -7,11 +7,6 @@
7
7
  --_bl-icon-size: var(--su8);
8
8
 
9
9
  // VARIANTS
10
- &&__gold,
11
- &&__silver {
12
- --_bl-icon-size: calc(var(--su8) + var(--su2));
13
- }
14
-
15
10
  &&__activity {
16
11
  --_bl-icon-bg: var(--pink-400);
17
12
  }
@@ -61,15 +56,30 @@
61
56
  }
62
57
  }
63
58
 
64
- // Sizes
65
- &&__sm {
66
- --_bl-icon-size: var(--su6);
59
+ // SIZES
60
+ // Unfilled Sizes
61
+ &&__sm:not(&__filled) {
62
+ --_bl-size: var(--su8);
63
+ }
64
+ // Filled Sizes
65
+ &&__sm&__filled {
67
66
  --_bl-size: var(--su16);
68
67
  }
69
-
70
- &&__lg {
68
+ &&__lg&__filled {
71
69
  --_bl-size: calc(var(--su24) + var(--su4)); // 28px
72
70
  }
71
+ // Icon Sizes
72
+ &&__sm {
73
+ --_bl-icon-size: var(--su6);
74
+ }
75
+ &&__sm&__gold,
76
+ &&__sm&__silver {
77
+ --_bl-icon-size: calc(var(--su6) + var(--su1)); // 7px
78
+ }
79
+ &&__gold:not(&__sm),
80
+ &&__silver:not(&__sm) {
81
+ --_bl-icon-size: calc(var(--su8) + var(--su1)); // 9px
82
+ }
73
83
 
74
84
  // CHILD ELEMENTS
75
85
  &:before {
@@ -328,6 +328,7 @@
328
328
  padding: var(--_bu-py) var(--_bu-px);
329
329
 
330
330
  align-items: center;
331
+ align-self: center;
331
332
  border-radius: var(--_bu-br);
332
333
  border-style: solid;
333
334
  cursor: pointer;
@@ -69,9 +69,6 @@
69
69
  --_na-item-bg-hover: var(--_na-item-selected-bg-hover);
70
70
 
71
71
  &:before {
72
- .highcontrast-mode({
73
- height: 0;
74
- });
75
72
  content: "";
76
73
  position: absolute;
77
74
  bottom: 0;
@@ -83,7 +80,6 @@
83
80
 
84
81
  .highcontrast-mode({
85
82
  --_na-item-fc-hover: var(--white);
86
- box-shadow: inset 0 0 0 var(--su-static1) var(--black-500);
87
83
  });
88
84
 
89
85
  font-weight: bold;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stackoverflow/stacks",
3
3
  "description": "Stack Overflow’s CSS and Design Pattern Library. Stacks is an atomic CSS library with classes and components for rapidly building Stack Overflow.",
4
- "version": "3.0.0-beta.5",
4
+ "version": "3.0.0-beta.7",
5
5
  "files": [
6
6
  "dist",
7
7
  "lib",