@stackoverflow/stacks 3.0.0-beta.2 → 3.0.0-beta.3
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.
- package/dist/css/stacks.css +125 -95
- package/dist/css/stacks.min.css +1 -1
- package/lib/components/bling/bling.less +93 -0
- package/lib/components/post-summary/post-summary.less +1 -0
- package/lib/components/tag/tag.less +59 -70
- package/lib/exports/constants-helpers.less +1 -1
- package/lib/stacks-static.less +1 -1
- package/package.json +1 -1
- package/lib/components/award-bling/award-bling.less +0 -32
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
.s-bling {
|
|
2
|
+
--_bl-bg: unset;
|
|
3
|
+
--_bl-size: calc(var(--su8) + var(--su2));
|
|
4
|
+
// Icon
|
|
5
|
+
--_bl-icon: url("data:image/svg+xml;utf8,<svg viewBox='0 0 8 8' xmlns='http://www.w3.org/2000/svg'><circle cx='4' cy='4' r='4'/></svg>");
|
|
6
|
+
--_bl-icon-bg: var(--black-500);
|
|
7
|
+
--_bl-icon-size: var(--su8);
|
|
8
|
+
|
|
9
|
+
// VARIANTS
|
|
10
|
+
&&__gold,
|
|
11
|
+
&&__silver {
|
|
12
|
+
--_bl-icon-size: calc(var(--su8) + var(--su2));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&&__activity {
|
|
16
|
+
--_bl-icon-bg: var(--pink-400);
|
|
17
|
+
}
|
|
18
|
+
// Metals
|
|
19
|
+
&&__gold {
|
|
20
|
+
--_bl-icon-bg: var(--yellow-400);
|
|
21
|
+
--_bl-icon: url("data:image/svg+xml;,<svg viewBox='0 0 8 9' xmlns='http://www.w3.org/2000/svg'><path d='M3.89709 0L7.79421 2.25V6.75L3.89709 9L-1.95503e-05 6.75V2.25L3.89709 0Z'/></svg>");
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&&__silver {
|
|
25
|
+
--_bl-icon-bg: var(--blue-400);
|
|
26
|
+
--_bl-icon: url("data:image/svg+xml;,<svg viewBox='0 0 9 9' xmlns='http://www.w3.org/2000/svg'><path d='M4.27979 0L8.55954 3.10942L6.92482 8.14058H1.63475L3.09944e-05 3.10942L4.27979 0Z'/></svg>");
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&&__bronze {
|
|
30
|
+
--_bl-icon-bg: var(--orange-400);
|
|
31
|
+
--_bl-icon: url("data:image/svg+xml;,<svg viewBox='0 0 8 8' xmlns='http://www.w3.org/2000/svg'><rect width='8' height='8'/></svg>");
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// MODIFIERS
|
|
35
|
+
// Filled
|
|
36
|
+
&&__filled {
|
|
37
|
+
--_bl-bg: var(--black-225);
|
|
38
|
+
--_bl-icon-bg: var(--black-600);
|
|
39
|
+
--_bl-size: var(--su24);
|
|
40
|
+
|
|
41
|
+
&.s-bling {
|
|
42
|
+
&__rep {
|
|
43
|
+
--_bl-bg: var(--black-300);
|
|
44
|
+
}
|
|
45
|
+
&__activity {
|
|
46
|
+
--_bl-bg: var(--pink-300);
|
|
47
|
+
--_bl-icon-bg: var(--pink-600);
|
|
48
|
+
}
|
|
49
|
+
&__gold {
|
|
50
|
+
--_bl-bg: var(--yellow-300);
|
|
51
|
+
--_bl-icon-bg: var(--yellow-600);
|
|
52
|
+
}
|
|
53
|
+
&__silver {
|
|
54
|
+
--_bl-bg: var(--blue-300);
|
|
55
|
+
--_bl-icon-bg: var(--blue-600);
|
|
56
|
+
}
|
|
57
|
+
&__bronze {
|
|
58
|
+
--_bl-bg: var(--orange-300);
|
|
59
|
+
--_bl-icon-bg: var(--orange-600);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Sizes
|
|
65
|
+
&&__sm {
|
|
66
|
+
--_bl-icon-size: var(--su6);
|
|
67
|
+
--_bl-size: var(--su16);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&&__lg {
|
|
71
|
+
--_bl-size: calc(var(--su24) + var(--su4)); // 28px
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// CHILD ELEMENTS
|
|
75
|
+
&:before {
|
|
76
|
+
-webkit-mask: var(--_bl-icon) no-repeat center;
|
|
77
|
+
mask: var(--_bl-icon) no-repeat center;
|
|
78
|
+
|
|
79
|
+
background-color: var(--_bl-icon-bg);
|
|
80
|
+
content: "";
|
|
81
|
+
height: var(--_bl-icon-size);
|
|
82
|
+
width: var(--_bl-icon-size);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
background-color: var(--_bl-bg);
|
|
86
|
+
height: var(--_bl-size);
|
|
87
|
+
width: var(--_bl-size);
|
|
88
|
+
|
|
89
|
+
align-items: center;
|
|
90
|
+
color: inherit;
|
|
91
|
+
display: inline-flex;
|
|
92
|
+
justify-content: center;
|
|
93
|
+
}
|
|
@@ -2,84 +2,87 @@
|
|
|
2
2
|
// Base
|
|
3
3
|
--_ta-bc: var(--theme-tag-border-color, var(--_ta-bg));
|
|
4
4
|
--_ta-bg: var(--theme-tag-background-color, var(--black-150));
|
|
5
|
-
--_ta-fc: var(--theme-tag-color, var(--black-
|
|
5
|
+
--_ta-fc: var(--theme-tag-color, var(--black-600));
|
|
6
6
|
// Hover
|
|
7
7
|
--_ta-bc-hover: var(--theme-tag-hover-border-color, var(--_ta-bg-hover));
|
|
8
8
|
--_ta-bg-hover: var(--theme-tag-hover-background-color, var(--black-200));
|
|
9
9
|
--_ta-fc-hover: var(--theme-tag-hover-color, var(--black-600));
|
|
10
10
|
// Other
|
|
11
|
-
--_ta-br: var(--br-md);
|
|
12
11
|
--_ta-fs: var(--fs-caption);
|
|
13
|
-
--_ta-
|
|
14
|
-
--_ta-pl: var(--
|
|
15
|
-
--_ta-pr: var(--
|
|
16
|
-
--_ta-
|
|
17
|
-
--_ta-dismiss-padding: calc(var(--_ta-px) - var(--su-static1));
|
|
12
|
+
--_ta-pb: calc(var(--_ta-pt) + var(--su1));
|
|
13
|
+
--_ta-pl: var(--su8);
|
|
14
|
+
--_ta-pr: var(--su8);
|
|
15
|
+
--_ta-pt: var(--su4);
|
|
18
16
|
|
|
19
17
|
// CONTEXTUAL STYLES
|
|
20
18
|
.highcontrast-mode({
|
|
21
19
|
&:not(&__moderator):not(&__required) {
|
|
22
20
|
--_ta-bc: var(--theme-tag-border-color, var(--black-300));
|
|
23
21
|
--_ta-bc-hover: var(--theme-tag-hover-border-color, var(--black-300));
|
|
22
|
+
|
|
23
|
+
&.s-tag__ignored {
|
|
24
|
+
--_ta-fc: var(--black-500);
|
|
25
|
+
}
|
|
24
26
|
}
|
|
25
27
|
});
|
|
26
28
|
|
|
27
29
|
// MODIFIERS
|
|
28
30
|
// Sizes
|
|
29
|
-
&&__xs {
|
|
30
|
-
.size-styles(xs; ta; @styles: fs);
|
|
31
|
-
--_ta-lh: 1.4;
|
|
32
|
-
--_ta-px: var(--su2);
|
|
33
|
-
}
|
|
34
31
|
&&__sm {
|
|
35
|
-
|
|
36
|
-
--_ta-
|
|
37
|
-
|
|
38
|
-
&&__md {
|
|
39
|
-
--_ta-px: var(--su6);
|
|
40
|
-
--_ta-fs: var(--fs-body2);
|
|
41
|
-
--_ta-lh: 1.733333333;
|
|
32
|
+
--_ta-pl: var(--su4);
|
|
33
|
+
--_ta-pr: var(--su4);
|
|
34
|
+
--_ta-pt: var(--su1);
|
|
42
35
|
}
|
|
43
36
|
&&__lg {
|
|
44
|
-
--_ta-
|
|
45
|
-
--_ta-
|
|
46
|
-
--_ta-lh: 1.684210526;
|
|
47
|
-
--_ta-px: var(--su6);
|
|
37
|
+
--_ta-fs: var(--fs-body1);
|
|
38
|
+
--_ta-pt: var(--su4);
|
|
48
39
|
}
|
|
49
40
|
|
|
50
41
|
// VARIANTS
|
|
51
|
-
// NOTE: ignored and watched variants are used in core with the .post-tag class (in place of the base tag .s-tag)
|
|
52
|
-
&__ignored, // TODO: remove all single `&` ignored styles once core no longer requires them
|
|
53
42
|
&&__ignored,
|
|
54
|
-
&__watched, // TODO: remove all single `&` watched styles once core no longer requires them
|
|
55
43
|
&&__watched {
|
|
56
|
-
--_ta-pl: calc(var(--su-static24) - var(--su-static2)); // 22px
|
|
57
|
-
--_ta-before-size: calc(var(--su-static16) - var(--su-static2)); // 14px
|
|
58
|
-
// --_ta-before-icon defined per variant
|
|
59
|
-
|
|
60
44
|
&:before {
|
|
61
|
-
|
|
62
|
-
width: var(--_ta-before-size);
|
|
45
|
+
// --_ta-before-icon defined per variant
|
|
63
46
|
-webkit-mask: var(--_ta-before-icon) no-repeat center;
|
|
64
47
|
mask: var(--_ta-before-icon) no-repeat center;
|
|
65
48
|
|
|
66
49
|
background-color: currentColor;
|
|
67
50
|
content: "";
|
|
68
51
|
display: block;
|
|
69
|
-
|
|
70
|
-
margin-right: var(--su2);
|
|
71
|
-
position: absolute;
|
|
72
|
-
top: calc(50% - calc(var(--su-static8) - var(--su-static1)));
|
|
52
|
+
height: calc(var(--su-static16) - var(--su-static2));
|
|
73
53
|
-webkit-mask-size: contain;
|
|
74
|
-
mask-size: contain;
|
|
54
|
+
mask-size: contain;
|
|
55
|
+
width: calc(var(--su-static16) - var(--su-static2));
|
|
75
56
|
}
|
|
57
|
+
}
|
|
76
58
|
|
|
77
|
-
|
|
59
|
+
&&__deleted,
|
|
60
|
+
&&__ignored {
|
|
61
|
+
&,
|
|
62
|
+
&.s-tag__required:not(&__moderator),
|
|
63
|
+
&.s-tag__moderator {
|
|
64
|
+
--_ta-bc-hover: var(--_ta-bc);
|
|
65
|
+
--_ta-bg-hover: var(--_ta-bg);
|
|
66
|
+
--_ta-fc-hover: var(--_ta-fc);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// TODO SHINE this is considered inaccessible. Discuss w/ design.
|
|
71
|
+
&&__deleted {
|
|
72
|
+
--_ta-fc: var(--black-500);
|
|
73
|
+
|
|
74
|
+
&.s-tag__required:not(&__moderator) {
|
|
75
|
+
--_ta-bc: var(--black-300);
|
|
76
|
+
--_ta-fc: var(--black-400);
|
|
77
|
+
}
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
// TODO SHINE this is considered inaccessible. Discuss w/ design.
|
|
81
81
|
&&__ignored {
|
|
82
|
+
--_ta-bg-hover: var(--_ta-bg);
|
|
82
83
|
--_ta-before-icon: url("data:image/svg+xml;,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M3.52 7.38 1.58 9.26A12.38 12.38 0 0 1 0 7s2.63-5.14 7.05-5.14c.66 0 1.28.12 1.86.32L7.44 3.6a3.48 3.48 0 0 0-3.92 3.78ZM5.3 9.99c.5.28 1.1.44 1.71.44 1.94 0 3.5-1.53 3.5-3.43 0-.62-.17-1.21-.47-1.72L8.7 6.6a1.73 1.73 0 0 1-2.08 2.07L5.29 10Zm6.23-6.19A12.7 12.7 0 0 1 14 7s-2.63 5.14-6.95 5.14A6.1 6.1 0 0 1 4 11.3L2.27 13l-1.4-1.36L11.9 1l1.23 1.2-1.6 1.6Z'/%3E%3C/svg%3E");
|
|
84
|
+
--_ta-fc: var(--black-400);
|
|
85
|
+
--_ta-fc-hover: var(--black-400);
|
|
83
86
|
}
|
|
84
87
|
|
|
85
88
|
// moderator overrides other required
|
|
@@ -93,51 +96,44 @@
|
|
|
93
96
|
}
|
|
94
97
|
|
|
95
98
|
&&__required:not(&__moderator) {
|
|
96
|
-
--_ta-bc: var(--theme-tag-required-border-color, var(--theme-tag-border-color, var(--black-
|
|
97
|
-
--_ta-bg: var(--theme-tag-required-background-color, var(--theme-tag-background-color, var(--black-150)));
|
|
98
|
-
--_ta-fc: var(--theme-tag-required-color, var(--theme-tag-color, var(--black-500)));
|
|
99
|
+
--_ta-bc: var(--theme-tag-required-border-color, var(--theme-tag-border-color, var(--black-500)));
|
|
99
100
|
--_ta-bc-hover: var(--theme-tag-required-hover-border-color, var(--theme-tag-hover-border-color, var(--black-600)));
|
|
100
|
-
--_ta-bg-hover: var(--theme-tag-required-hover-background-color, var(--theme-tag-hover-background-color, var(--black-200)));
|
|
101
|
-
--_ta-fc-hover: var(--theme-tag-required-hover-color, var(--theme-tag-hover-color, var(--black-600)));
|
|
102
101
|
}
|
|
103
102
|
|
|
104
|
-
&__watched, // TODO: remove all single `&` watched styles once core no longer requires them
|
|
105
103
|
&&__watched {
|
|
106
|
-
--_ta-before-icon: url("data:image/svg+xml;,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='
|
|
104
|
+
--_ta-before-icon: url("data:image/svg+xml;,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='12' viewBox='0 0 14 12'%3E%3Cpath d='M7.05 1C2.63 1 0 6.5 0 6.5S2.63 12 7.05 12C11.38 12 14 6.5 14 6.5S11.37 1 7.05 1ZM7 10.17A3.59 3.59 0 0 1 3.5 6.5 3.6 3.6 0 0 1 7 2.83c1.94 0 3.5 1.65 3.5 3.67A3.57 3.57 0 0 1 7 10.17Zm0-1.84c.97 0 1.75-.81 1.75-1.83S7.97 4.67 7 4.67s-1.75.81-1.75 1.83S6.03 8.33 7 8.33Z'/%3E%3C/svg%3E");
|
|
107
105
|
}
|
|
108
106
|
|
|
109
107
|
// CHILD ELEMENTS
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
// Dismiss
|
|
109
|
+
&:has(> &--dismiss) {
|
|
110
|
+
--_ta-pr: var(--su2);
|
|
112
111
|
}
|
|
113
|
-
|
|
114
|
-
& &--dismiss,
|
|
115
|
-
& button&--dismiss:not(.s-btn) { // Style adjustment to @Svg.ClearSm
|
|
112
|
+
& &--dismiss {
|
|
116
113
|
&:focus-visible {
|
|
117
114
|
.focus-styles();
|
|
118
115
|
}
|
|
119
116
|
|
|
120
117
|
&:hover {
|
|
121
|
-
.highcontrast-mode({
|
|
122
|
-
color: var(--white);
|
|
123
|
-
});
|
|
124
|
-
|
|
125
118
|
background-color: var(--_ta-fc);
|
|
126
119
|
color: var(--_ta-bg);
|
|
127
120
|
}
|
|
128
121
|
|
|
122
|
+
all: unset;
|
|
129
123
|
align-items: center;
|
|
130
|
-
align-self: stretch;
|
|
131
124
|
background-color: transparent;
|
|
132
|
-
border-radius: var(--br-md);
|
|
133
125
|
color: inherit;
|
|
134
126
|
cursor: pointer;
|
|
135
127
|
display: flex;
|
|
136
128
|
justify-content: center;
|
|
137
|
-
margin:
|
|
138
|
-
padding: var(--
|
|
129
|
+
margin: calc(var(--_ta-pt) * -1) 0 calc(var(--_ta-pb) * -1);
|
|
130
|
+
padding: var(--su2);
|
|
139
131
|
}
|
|
140
132
|
|
|
133
|
+
// Sponsor
|
|
134
|
+
&:has(> &--sponsor) {
|
|
135
|
+
--_ta-pl: var(--su2);
|
|
136
|
+
}
|
|
141
137
|
& &--sponsor { // The small sponsor favicon displayed within a tag
|
|
142
138
|
img,
|
|
143
139
|
.svg-icon {
|
|
@@ -145,11 +141,8 @@
|
|
|
145
141
|
height: 100%;
|
|
146
142
|
}
|
|
147
143
|
|
|
148
|
-
align-self: center;
|
|
149
|
-
border-radius: calc(var(--br-md) - var(--su-static1));
|
|
150
|
-
display: inline-flex;
|
|
151
|
-
margin: calc(var(--su1) * -1) var(--su4) calc(var(--su2) * -1) calc(var(--su2) * -1);
|
|
152
144
|
max-width: calc(var(--su-static16) + var(--su-static2));
|
|
145
|
+
margin: calc(var(--_ta-pt) * -1) 0 calc(var(--_ta-pb) * -1) 0;
|
|
153
146
|
}
|
|
154
147
|
|
|
155
148
|
// INTERACTION
|
|
@@ -168,19 +161,15 @@
|
|
|
168
161
|
|
|
169
162
|
background-color: var(--_ta-bg);
|
|
170
163
|
border: var(--su-static1) solid var(--_ta-bc);
|
|
171
|
-
border-radius: var(--_ta-br);
|
|
172
164
|
color: var(--_ta-fc);
|
|
173
165
|
font-size: var(--_ta-fs);
|
|
174
|
-
|
|
175
|
-
padding-left: var(--_ta-pl);
|
|
176
|
-
padding-right: var(--_ta-pr);
|
|
166
|
+
padding: var(--_ta-pt) var(--_ta-pr) var(--_ta-pb) var(--_ta-pl);
|
|
177
167
|
|
|
178
168
|
align-items: center;
|
|
179
169
|
display: inline-flex;
|
|
180
|
-
|
|
170
|
+
gap: var(--su4);
|
|
181
171
|
justify-content: center;
|
|
182
|
-
|
|
172
|
+
line-height: var(--lh-xs);
|
|
183
173
|
text-decoration: none;
|
|
184
|
-
vertical-align: middle;
|
|
185
174
|
white-space: nowrap;
|
|
186
175
|
}
|
|
@@ -31,7 +31,7 @@ body {
|
|
|
31
31
|
--zi-modals: 9000; // Modals
|
|
32
32
|
|
|
33
33
|
// Border Radius
|
|
34
|
-
--br-md: calc(var(--su-static4) + var(--su-static6)); // 10px
|
|
34
|
+
--br-md: calc(var(--su-static4) + var(--su-static6)); // 10px
|
|
35
35
|
--br-circle: 50%;
|
|
36
36
|
--br-pill: 1000px;
|
|
37
37
|
// TODO SHINE Retaining legacy border radius for backward compatibility
|
package/lib/stacks-static.less
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
@import "components/activity-indicator/activity-indicator.less";
|
|
10
10
|
@import "components/anchor/anchor.less";
|
|
11
11
|
@import "components/avatar/avatar.less";
|
|
12
|
-
@import "components/award-bling/award-bling.less";
|
|
13
12
|
@import "components/badge/badge.less";
|
|
14
13
|
@import "components/banner/banner.less";
|
|
14
|
+
@import "components/bling/bling.less";
|
|
15
15
|
@import "components/block-link/block-link.less";
|
|
16
16
|
@import "components/breadcrumbs/breadcrumbs.less";
|
|
17
17
|
@import "components/button/button.less";
|
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.
|
|
4
|
+
"version": "3.0.0-beta.3",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
7
7
|
"lib",
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
.s-award-bling {
|
|
2
|
-
--_ab-before-bg: unset;
|
|
3
|
-
|
|
4
|
-
// VARIANTS
|
|
5
|
-
// TODO SHINE expect a conflict with the award-bling updates. Prefer the changes in https://github.com/StackExchange/Stacks/pull/2013.
|
|
6
|
-
&&__gold {
|
|
7
|
-
--_ab-before-bg: var(--yellow-300);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
&&__silver {
|
|
11
|
-
--_ab-before-bg: var(--blue-300);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
&&__bronze {
|
|
15
|
-
--_ab-before-bg: var(--orange-300);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// CHILD ELEMENTS
|
|
19
|
-
&:before {
|
|
20
|
-
background-color: var(--_ab-before-bg);
|
|
21
|
-
|
|
22
|
-
border-radius: 100%;
|
|
23
|
-
content: "";
|
|
24
|
-
margin-right: var(--su4);
|
|
25
|
-
height: var(--su8);
|
|
26
|
-
width: var(--su8);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
align-items: center;
|
|
30
|
-
color: inherit;
|
|
31
|
-
display: flex;
|
|
32
|
-
}
|