|
1 | 1 | .s-tag { |
2 | 2 | // Base |
3 | | - --_ta-bc: var(--theme-tag-border-color, var(--black-300)); |
| 3 | + --_ta-bc: var(--theme-tag-border-color, var(--_ta-bg)); |
4 | 4 | --_ta-bg: var(--theme-tag-background-color, var(--black-150)); |
5 | 5 | --_ta-fc: var(--theme-tag-color, var(--black-600)); |
6 | 6 | // Hover |
7 | | - --_ta-bc-hover: var(--theme-tag-hover-border-color, var(--black-300)); |
| 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-fs: var(--fs-caption); //13px |
12 | | - --_ta-lh: 126%; |
| 11 | + --_ta-fs: var(--fs-caption); |
| 12 | + --_ta-pb: calc(var(--_ta-pt) + var(--su1)); |
13 | 13 | --_ta-pl: var(--su8); |
14 | 14 | --_ta-pr: var(--su8); |
15 | 15 | --_ta-pt: var(--su4); |
16 | | - --_ta-pb: var(--su4); |
17 | | - --_ta-fc-disabled: var(--black-400); |
18 | | - --_ta-dismiss-padding-x: var(--su2); |
19 | | - --_ta-dismiss-padding-y: var(--su1); |
20 | | - --_ta-br: var(--su2); |
21 | | - --_ta-before-pl: var(--su8); |
22 | | - |
23 | 16 |
|
24 | 17 | // CONTEXTUAL STYLES |
25 | 18 | .highcontrast-mode({ |
26 | | - border-width: var(--su1); |
27 | | - --_ta-fc-disabled: var(--black-500); //Fixes contrast issues |
| 19 | + &:not(&__moderator):not(&__required) { |
| 20 | + --_ta-bc: var(--theme-tag-border-color, var(--black-300)); |
| 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 | + } |
| 26 | + } |
28 | 27 | }); |
29 | 28 |
|
30 | 29 | // MODIFIERS |
31 | 30 | // Sizes |
32 | 31 | &&__sm { |
33 | | - --_ta-fs: var(--fs-fine); //12px |
34 | 32 | --_ta-pl: var(--su4); |
35 | 33 | --_ta-pr: var(--su4); |
36 | | - --_ta-pt: var(--su2); |
37 | | - --_ta-pb: var(--su2); |
38 | | - |
39 | | - // Reduce close button padding for a better fit |
40 | | - --_ta-dismiss-padding-y: var(--su0); |
41 | | - --_ta-before-pl: var(--su4); |
| 34 | + --_ta-pt: var(--su1); |
42 | 35 | } |
43 | | - |
44 | | - &&__sm&&__ignored, |
45 | | - &&__sm&&__watched { |
46 | | - --_ta-pl: calc(var(--su-static24) - var(--su-static2)); //22px |
47 | | - } |
48 | | - |
49 | 36 | &&__lg { |
50 | | - --_ta-fs: var(--fs-body1); //14px |
51 | | - --_ta-pt: calc(var(--su6) - var(--su1)); //5px |
52 | | - --_ta-pb: calc(var(--su6) - var(--su1)); //5px |
| 37 | + --_ta-fs: var(--fs-body1); |
| 38 | + --_ta-pt: var(--su4); |
53 | 39 | } |
54 | 40 |
|
55 | 41 | // VARIANTS |
56 | | - // NOTE: ignored and watched variants are used in core with the .post-tag class (in place of the base tag .s-tag) |
57 | | - &__ignored, // TODO: remove all single `&` ignored styles once core no longer requires them |
58 | 42 | &&__ignored, |
59 | | - &__watched, // TODO: remove all single `&` watched styles once core no longer requires them |
60 | 43 | &&__watched { |
61 | | - --_ta-pl: calc(var(--su-static24) + var(--su-static2)); //26px |
62 | | - --_ta-before-size: calc(var(--su-static16) - var(--su-static2)); // 14px |
63 | | - |
64 | | - // --_ta-before-icon defined per variant |
65 | 44 | &:before { |
66 | | - height: var(--_ta-before-size); |
67 | | - width: var(--_ta-before-size); |
| 45 | + // --_ta-before-icon defined per variant |
68 | 46 | -webkit-mask: var(--_ta-before-icon) no-repeat center; |
69 | 47 | mask: var(--_ta-before-icon) no-repeat center; |
70 | 48 |
|
71 | 49 | background-color: currentColor; |
72 | 50 | content: ""; |
73 | 51 | display: block; |
74 | | - left: var(--_ta-before-pl); |
75 | | - position: absolute; |
| 52 | + height: calc(var(--su-static16) - var(--su-static2)); |
76 | 53 | -webkit-mask-size: contain; |
77 | | - mask-size: contain; |
| 54 | + mask-size: contain; |
| 55 | + width: calc(var(--su-static16) - var(--su-static2)); |
78 | 56 | } |
79 | | - |
80 | | - position: relative; |
81 | 57 | } |
82 | 58 |
|
83 | | - &__ignored, // TODO: remove all single `&` ignored styles once core no longer requires them |
| 59 | + &&__deleted, |
84 | 60 | &&__ignored { |
85 | | - --_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"); |
86 | | - --_ta-fc: var(--theme-tag-color, var(--_ta-fc-disabled)); |
87 | | - &:hover { |
88 | | - --_ta-bg-hover: var(--theme-tag-hover-background-color, var(--_ta-bg)); |
89 | | - --_ta-fc-hover: var(--theme-tag-hover-color, var(--_ta-fc-disabled)); |
| 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); |
90 | 67 | } |
91 | 68 | } |
| 69 | + |
| 70 | + // TODO SHINE this is considered inaccessible. Discuss w/ design. |
| 71 | + &&__deleted { |
| 72 | + --_ta-fc: var(--black-500); |
92 | 73 |
|
93 | | - &&__required, |
94 | | - &&__moderator { |
95 | | - border-width: var(--su1); |
| 74 | + &.s-tag__required:not(&__moderator) { |
| 75 | + --_ta-bc: var(--black-300); |
| 76 | + --_ta-fc: var(--black-400); |
| 77 | + } |
96 | 78 | } |
97 | 79 |
|
98 | | - &&__moderator:not(&&__ignored) { |
99 | | - --_ta-bg: var(--orange-100); |
| 80 | + // TODO SHINE this is considered inaccessible. Discuss w/ design. |
| 81 | + &&__ignored { |
| 82 | + --_ta-bg-hover: var(--_ta-bg); |
| 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); |
| 86 | + } |
| 87 | + |
| 88 | + // moderator overrides other required |
| 89 | + &&__moderator { |
100 | 90 | --_ta-bc: var(--orange-300); |
| 91 | + --_ta-bg: var(--orange-100); |
101 | 92 | --_ta-fc: var(--orange-500); |
102 | | - --_ta-bg-hover: var(--orange-200); |
103 | 93 | --_ta-bc-hover: var(--orange-300); |
| 94 | + --_ta-bg-hover: var(--orange-200); |
104 | 95 | --_ta-fc-hover: var(--orange-600); |
105 | 96 | } |
106 | 97 |
|
|
109 | 100 | --_ta-bc-hover: var(--theme-tag-required-hover-border-color, var(--theme-tag-hover-border-color, var(--black-600))); |
110 | 101 | } |
111 | 102 |
|
112 | | - &&__required:not(&__moderator)&__ignored { |
113 | | - --_ta-bc-hover: var(--_ta-bc); |
114 | | - } |
115 | | - |
116 | | - &__watched, // TODO: remove all single `&` watched styles once core no longer requires them |
117 | 103 | &&__watched { |
118 | | - --_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='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"); |
| 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"); |
119 | 105 | } |
120 | 106 |
|
121 | 107 | // CHILD ELEMENTS |
122 | | - & button&--dismiss:not(.s-btn) { |
123 | | - all: unset; |
| 108 | + // Dismiss |
| 109 | + &:has(> &--dismiss) { |
| 110 | + --_ta-pr: var(--su2); |
124 | 111 | } |
125 | | - |
126 | | - & &--dismiss, |
127 | | - & button&--dismiss:not(.s-btn) { // Style adjustment to @Svg.ClearSm |
| 112 | + & &--dismiss { |
128 | 113 | &:focus-visible { |
129 | 114 | .focus-styles(); |
130 | 115 | } |
131 | 116 |
|
132 | 117 | &:hover { |
133 | | - .highcontrast-mode({ |
134 | | - color: var(--white); |
135 | | - }); |
136 | | - |
137 | 118 | background-color: var(--_ta-fc); |
138 | 119 | color: var(--_ta-bg); |
139 | 120 | } |
140 | 121 |
|
| 122 | + all: unset; |
141 | 123 | align-items: center; |
142 | | - align-self: stretch; |
143 | 124 | background-color: transparent; |
144 | | - border-radius: var(--_ta-br); |
145 | 125 | color: inherit; |
146 | 126 | cursor: pointer; |
147 | 127 | display: flex; |
148 | 128 | justify-content: center; |
149 | | - margin: var(--_ta-dismiss-padding-y) calc(var(--_ta-dismiss-padding-x) * -1) var(--_ta-dismiss-padding-y) calc(var(--_ta-dismiss-padding-x) * 2); |
| 129 | + margin: calc(var(--_ta-pt) * -1) 0 calc(var(--_ta-pb) * -1); |
| 130 | + padding: var(--su2); |
150 | 131 | } |
151 | 132 |
|
| 133 | + // Sponsor |
| 134 | + &:has(> &--sponsor) { |
| 135 | + --_ta-pl: var(--su2); |
| 136 | + } |
152 | 137 | & &--sponsor { // The small sponsor favicon displayed within a tag |
153 | 138 | img, |
154 | 139 | .svg-icon { |
155 | 140 | width: 100%; |
156 | 141 | height: 100%; |
157 | 142 | } |
158 | 143 |
|
159 | | - align-self: center; |
160 | | - border-radius: var(--_ta-br); |
161 | | - display: inline-flex; |
162 | | - margin: calc(var(--su1) * -1) var(--su4) calc(var(--su2) * -1) var(--su0); |
163 | 144 | max-width: calc(var(--su-static16) + var(--su-static2)); |
| 145 | + margin: calc(var(--_ta-pt) * -1) 0 calc(var(--_ta-pb) * -1) 0; |
164 | 146 | } |
165 | 147 |
|
166 | 148 | // INTERACTION |
|
178 | 160 | } |
179 | 161 |
|
180 | 162 | background-color: var(--_ta-bg); |
181 | | - border: var(--su0) solid var(--_ta-bc); |
| 163 | + border: var(--su-static1) solid var(--_ta-bc); |
182 | 164 | color: var(--_ta-fc); |
183 | 165 | font-size: var(--_ta-fs); |
184 | | - line-height: var(--_ta-lh); |
185 | | - padding-left: var(--_ta-pl); |
186 | | - padding-right: var(--_ta-pr); |
187 | | - padding-top: var(--_ta-pt); |
188 | | - padding-bottom: var(--_ta-pb); |
| 166 | + padding: var(--_ta-pt) var(--_ta-pr) var(--_ta-pb) var(--_ta-pl); |
189 | 167 |
|
190 | 168 | align-items: center; |
191 | 169 | display: inline-flex; |
192 | | - font-weight: 400; |
| 170 | + gap: var(--su4); |
193 | 171 | justify-content: center; |
194 | | - min-width: 0; |
| 172 | + line-height: var(--lh-xs); |
195 | 173 | text-decoration: none; |
196 | | - vertical-align: middle; |
197 | 174 | white-space: nowrap; |
198 | 175 | } |
0 commit comments