@agorapulse/ui-theme 20.1.19 → 20.1.21

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 (72) hide show
  1. package/agorapulse-ui-theme-20.1.21.tgz +0 -0
  2. package/assets/desktop_variables.css +10 -0
  3. package/assets/mobile_variables.css +10 -0
  4. package/assets/style/_tooltip.scss +6 -1
  5. package/assets/style/css-ui/_accordion.scss +54 -0
  6. package/assets/style/css-ui/_action-dropdown.scss +163 -0
  7. package/assets/style/css-ui/_avatar-group.scss +61 -0
  8. package/assets/style/css-ui/_avatar.scss +183 -0
  9. package/assets/style/css-ui/{badge.css → _badge.scss} +10 -12
  10. package/assets/style/css-ui/_button.scss +258 -0
  11. package/assets/style/css-ui/_card.scss +17 -0
  12. package/assets/style/css-ui/_checkbox.scss +164 -0
  13. package/assets/style/css-ui/_counter.scss +76 -0
  14. package/assets/style/css-ui/_datepicker.scss +307 -0
  15. package/assets/style/css-ui/_dialog.scss +74 -0
  16. package/assets/style/css-ui/_dot-stepper.scss +68 -0
  17. package/assets/style/{_helpers.scss → css-ui/_helpers.scss} +14 -13
  18. package/assets/style/css-ui/_icon-button.scss +162 -0
  19. package/assets/style/css-ui/_infobox.scss +154 -0
  20. package/assets/style/css-ui/_input.scss +129 -0
  21. package/assets/style/css-ui/_label.scss +95 -0
  22. package/assets/style/css-ui/_link.scss +86 -0
  23. package/assets/style/css-ui/_list-panel.scss +73 -0
  24. package/assets/style/css-ui/_loader.scss +173 -0
  25. package/assets/style/css-ui/_mixins.scss +50 -0
  26. package/assets/style/css-ui/_pagination.scss +177 -0
  27. package/assets/style/css-ui/_radio-card.scss +200 -0
  28. package/assets/style/css-ui/_radio.scss +107 -0
  29. package/assets/style/css-ui/{select.css → _select.scss} +290 -298
  30. package/assets/style/css-ui/_selection-dropdown.scss +183 -0
  31. package/assets/style/css-ui/_snackbar.scss +161 -0
  32. package/assets/style/css-ui/_split-button.scss +74 -0
  33. package/assets/style/css-ui/_status.scss +71 -0
  34. package/assets/style/css-ui/_stepper.scss +113 -0
  35. package/assets/style/css-ui/_table.scss +325 -0
  36. package/assets/style/css-ui/_tabs.scss +182 -0
  37. package/assets/style/css-ui/_tag.scss +169 -0
  38. package/assets/style/css-ui/_textarea.scss +121 -0
  39. package/assets/style/css-ui/_toggle.scss +132 -0
  40. package/assets/style/css-ui/_tooltip.scss +122 -0
  41. package/assets/style/{_mat-typography.scss → css-ui/_typography.scss} +34 -26
  42. package/assets/style/css-ui/font-face.css +43 -0
  43. package/assets/style/css-ui/index.css +4907 -27
  44. package/assets/style/css-ui/index.css.map +1 -0
  45. package/assets/style/css-ui/index.scss +39 -0
  46. package/assets/style/theme.scss +9 -2
  47. package/package.json +17 -2
  48. package/src/tokens/system/icon.json +33 -0
  49. package/agorapulse-ui-theme-20.1.19.tgz +0 -0
  50. package/assets/style/css-ui/action-dropdown.css +0 -172
  51. package/assets/style/css-ui/avatar.css +0 -199
  52. package/assets/style/css-ui/button.css +0 -446
  53. package/assets/style/css-ui/checkbox.css +0 -170
  54. package/assets/style/css-ui/counter.css +0 -73
  55. package/assets/style/css-ui/datepicker.css +0 -294
  56. package/assets/style/css-ui/dot-stepper.css +0 -67
  57. package/assets/style/css-ui/infobox.css +0 -163
  58. package/assets/style/css-ui/input.css +0 -119
  59. package/assets/style/css-ui/label.css +0 -67
  60. package/assets/style/css-ui/link.css +0 -92
  61. package/assets/style/css-ui/loader.css +0 -247
  62. package/assets/style/css-ui/pagination.css +0 -161
  63. package/assets/style/css-ui/radio.css +0 -109
  64. package/assets/style/css-ui/snackbar.css +0 -166
  65. package/assets/style/css-ui/status.css +0 -87
  66. package/assets/style/css-ui/stepper.css +0 -123
  67. package/assets/style/css-ui/table.css +0 -305
  68. package/assets/style/css-ui/tabs.css +0 -188
  69. package/assets/style/css-ui/tag.css +0 -171
  70. package/assets/style/css-ui/textarea.css +0 -158
  71. package/assets/style/css-ui/toggle.css +0 -161
  72. package/assets/style/css-ui/tooltip.css +0 -228
@@ -0,0 +1,325 @@
1
+ // Agorapulse Table Styles
2
+ // Uses semantic HTML selectors — no classes needed on <th>, <td>, <tr>
3
+
4
+ .ap-table {
5
+ --ap-table-cell-height: 52px;
6
+ --ap-table-cell-height-small: 40px;
7
+
8
+ width: 100%;
9
+ overflow-x: auto;
10
+ font-family: var(--ref-font-family);
11
+ border-radius: var(--ref-border-radius-md);
12
+ border-collapse: separate;
13
+ border-spacing: 0;
14
+ background-color: var(--ref-color-white);
15
+
16
+ tbody {
17
+ height: calc(100% - var(--ap-table-cell-height));
18
+ max-height: calc(100% - var(--ap-table-cell-height));
19
+ width: 100%;
20
+ overflow-y: auto;
21
+ border-radius: var(--ref-border-radius-md);
22
+ }
23
+
24
+ // Scrollable table
25
+ &.scrollable {
26
+ display: block;
27
+ table-layout: fixed;
28
+
29
+ tbody {
30
+ display: block;
31
+ }
32
+
33
+ thead,
34
+ tbody tr,
35
+ tfoot {
36
+ display: table;
37
+ width: 100%;
38
+ table-layout: fixed;
39
+ }
40
+ }
41
+
42
+ // Outer border variant
43
+ &.outer-border {
44
+ border: 1px solid var(--ref-color-grey-20);
45
+ }
46
+
47
+ // Header background variant
48
+ &.header-background th {
49
+ background-color: var(--ref-color-grey-05);
50
+ }
51
+
52
+ // Striped variant
53
+ &.striped tbody {
54
+ tr:nth-child(even) {
55
+ background-color: var(--ref-color-grey-bg);
56
+ }
57
+
58
+ tr.selected {
59
+ background-color: var(--ref-color-soft-blue-10);
60
+ }
61
+ }
62
+
63
+ // Small variant
64
+ &.small {
65
+ th,
66
+ td {
67
+ height: var(--ap-table-cell-height-small);
68
+ }
69
+
70
+ tbody {
71
+ height: calc(100% - var(--ap-table-cell-height-small));
72
+ max-height: calc(100% - var(--ap-table-cell-height-small));
73
+ }
74
+
75
+ th.checkbox,
76
+ td.checkbox {
77
+ width: 36px;
78
+ }
79
+
80
+ th.drag,
81
+ td.drag {
82
+ width: 36px;
83
+ }
84
+ }
85
+
86
+ // Border radius for last row when no footer
87
+ &:not(:has(tfoot)) tbody tr:last-child {
88
+ td:first-child {
89
+ border-bottom-left-radius: var(--ref-border-radius-md);
90
+ }
91
+
92
+ td:last-child {
93
+ border-bottom-right-radius: var(--ref-border-radius-md);
94
+ }
95
+ }
96
+
97
+ // === Row styles — implicit tr ===
98
+ tbody tr {
99
+ background-color: var(--ref-color-white);
100
+
101
+ &.selected {
102
+ background-color: var(--ref-color-soft-blue-10);
103
+ }
104
+
105
+ &:last-child td {
106
+ border-bottom: none;
107
+ }
108
+ }
109
+
110
+ // === Header cells — implicit th ===
111
+ th {
112
+ height: var(--ap-table-cell-height);
113
+ padding: var(--ref-spacing-xxs) var(--ref-spacing-xs);
114
+ text-align: left;
115
+ font-size: var(--ref-font-size-xs);
116
+ font-weight: var(--ref-font-weight-bold);
117
+ color: var(--ref-color-grey-100);
118
+ border: none;
119
+ border-bottom: 1px solid var(--ref-color-grey-10);
120
+ background-color: var(--ref-color-white);
121
+ position: sticky;
122
+ top: 0;
123
+ z-index: 1;
124
+
125
+ &:first-child {
126
+ border-top-left-radius: var(--ref-border-radius-md);
127
+ }
128
+
129
+ &:last-child {
130
+ border-top-right-radius: var(--ref-border-radius-md);
131
+ }
132
+
133
+ &.right {
134
+ text-align: right;
135
+ }
136
+
137
+ &.sortable {
138
+ cursor: pointer;
139
+
140
+ > i {
141
+ opacity: 0;
142
+ transition: opacity 0.15s ease;
143
+ }
144
+
145
+ &:hover > i {
146
+ opacity: 1;
147
+ }
148
+ }
149
+
150
+ &.sorted {
151
+ color: var(--ref-color-electric-blue-150);
152
+
153
+ > i {
154
+ opacity: 1;
155
+ }
156
+ }
157
+
158
+ &.checkbox {
159
+ width: 40px;
160
+ padding: 0;
161
+ text-align: center;
162
+ }
163
+
164
+ &.drag {
165
+ width: 40px;
166
+ padding: 0;
167
+ text-align: center;
168
+ }
169
+
170
+ // Header content — implicit > div
171
+ > div {
172
+ display: flex;
173
+ align-items: center;
174
+ gap: var(--ref-spacing-xxxs);
175
+ }
176
+
177
+ // Sort icon — implicit > i
178
+ > i {
179
+ width: 12px;
180
+ height: 12px;
181
+ flex-shrink: 0;
182
+ }
183
+ }
184
+
185
+ // === Body cells — implicit td ===
186
+ td {
187
+ padding: 0 var(--ref-spacing-xs);
188
+ font-size: var(--ref-font-size-sm);
189
+ color: var(--ref-color-grey-100);
190
+ border: none;
191
+ border-bottom: 1px solid var(--ref-color-grey-10);
192
+ height: var(--ap-table-cell-height);
193
+ vertical-align: middle;
194
+ font-family: var(--ref-font-family);
195
+
196
+ &.right {
197
+ text-align: right;
198
+
199
+ .ap-table-cell-content {
200
+ justify-content: flex-end;
201
+ }
202
+ }
203
+
204
+ &.checkbox {
205
+ width: 40px;
206
+ padding: 0;
207
+ text-align: center;
208
+ }
209
+
210
+ &.drag {
211
+ width: 40px;
212
+ padding: 0;
213
+ text-align: center;
214
+ }
215
+ }
216
+
217
+ // === Footer cells — implicit tfoot td ===
218
+ tfoot td {
219
+ padding: 0 var(--ref-spacing-xs);
220
+ font-size: var(--ref-font-size-sm);
221
+ color: var(--ref-color-grey-100);
222
+ border: none;
223
+ border-top: 1px solid var(--ref-color-grey-10);
224
+ height: var(--ap-table-cell-height);
225
+ vertical-align: middle;
226
+ font-family: var(--ref-font-family);
227
+ position: sticky;
228
+ bottom: 0;
229
+ z-index: 1;
230
+ background-color: var(--ref-color-white);
231
+
232
+ &.right {
233
+ text-align: right;
234
+
235
+ .ap-table-cell-content {
236
+ justify-content: flex-end;
237
+ }
238
+ }
239
+
240
+ &:first-child {
241
+ border-bottom-left-radius: var(--ref-border-radius-md);
242
+ }
243
+
244
+ &:last-child {
245
+ border-bottom-right-radius: var(--ref-border-radius-md);
246
+ }
247
+ }
248
+ }
249
+
250
+ // Cell content
251
+ .ap-table-cell-content {
252
+ display: flex;
253
+ align-items: center;
254
+ gap: var(--ref-spacing-xxs);
255
+
256
+ &.items {
257
+ flex-wrap: wrap;
258
+ gap: var(--ref-spacing-xxxs);
259
+ padding: var(--ref-spacing-xxs) 0;
260
+ }
261
+ }
262
+
263
+ // Cell text container
264
+ .ap-table-cell-text-container {
265
+ display: flex;
266
+ flex-direction: column;
267
+ }
268
+
269
+ // Cell text
270
+ .ap-table-cell-text {
271
+ color: var(--ref-color-grey-100);
272
+ font-size: var(--ref-font-size-sm);
273
+ line-height: var(--ref-line-height-sm);
274
+
275
+ &.bold {
276
+ font-weight: var(--ref-font-weight-bold);
277
+ }
278
+ }
279
+
280
+ // Cell description
281
+ .ap-table-cell-description {
282
+ color: var(--ref-color-grey-80);
283
+ font-size: var(--ref-font-size-xs);
284
+ line-height: var(--ref-line-height-xs);
285
+ }
286
+
287
+ // Cell actions
288
+ .ap-table-cell-actions {
289
+ display: flex;
290
+ align-items: center;
291
+ justify-content: flex-end;
292
+ gap: var(--ref-spacing-xxxs);
293
+ }
294
+
295
+ // Drag handle
296
+ .ap-table-drag-handle {
297
+ cursor: move;
298
+ color: var(--ref-color-grey-40);
299
+ }
300
+
301
+ // Empty state
302
+ .ap-table-empty {
303
+ padding: var(--ref-spacing-xl);
304
+ text-align: center;
305
+ color: var(--ref-color-grey-60);
306
+ font-size: var(--ref-font-size-sm);
307
+ }
308
+
309
+ // Loading state
310
+ .ap-table-loading {
311
+ position: relative;
312
+
313
+ &::after {
314
+ content: '';
315
+ position: absolute;
316
+ top: 0;
317
+ left: 0;
318
+ right: 0;
319
+ bottom: 0;
320
+ background-color: rgba(255, 255, 255, 0.7);
321
+ display: flex;
322
+ align-items: center;
323
+ justify-content: center;
324
+ }
325
+ }
@@ -0,0 +1,182 @@
1
+ // Agorapulse Tabs Styles
2
+
3
+ .ap-tabs {
4
+ display: flex;
5
+ flex-direction: column;
6
+ width: 100%;
7
+
8
+ // Full width tabs
9
+ &.full-width .ap-tabs-tab {
10
+ flex: 1;
11
+ }
12
+ }
13
+
14
+ // Tabs navigation bar
15
+ .ap-tabs-nav {
16
+ display: flex;
17
+ align-items: center;
18
+ border-bottom: 1px solid var(--comp-tabs-border-color);
19
+ position: relative;
20
+
21
+ // Scrollable tabs
22
+ &.scrollable {
23
+ overflow-x: auto;
24
+ scrollbar-width: none;
25
+ -ms-overflow-style: none;
26
+
27
+ &::-webkit-scrollbar {
28
+ display: none;
29
+ }
30
+ }
31
+ }
32
+
33
+ // Individual tab button — flat structure, no wrappers needed
34
+ .ap-tabs-tab {
35
+ display: flex;
36
+ align-items: center;
37
+ justify-content: center;
38
+ gap: var(--comp-tabs-tab-header-gap);
39
+ background: transparent;
40
+ border: none;
41
+ cursor: pointer;
42
+ font-family: var(--comp-tabs-text-font-family);
43
+ text-align: center;
44
+ position: relative;
45
+ white-space: nowrap;
46
+ padding: var(--comp-tabs-tab-padding);
47
+ font-size: var(--comp-tabs-tab-font-size);
48
+ line-height: var(--comp-tabs-tab-line-height);
49
+ min-height: var(--comp-tabs-tab-min-height);
50
+ color: var(--comp-tabs-tab-text-color-default);
51
+ font-weight: var(--ref-font-weight-regular);
52
+
53
+ // Icon — implicit > i
54
+ > i {
55
+ width: 16px;
56
+ height: 16px;
57
+ flex-shrink: 0;
58
+ }
59
+
60
+ // Hover state
61
+ &:hover:not(:disabled):not(.active) {
62
+ background-color: var(--comp-tabs-tab-hover-background-color);
63
+ }
64
+
65
+ // Focus state
66
+ &:focus {
67
+ outline: none;
68
+ }
69
+
70
+ &:focus-visible:not(.active) {
71
+ outline: none;
72
+ box-shadow: inset 0 0 0 2px var(--comp-tabs-tab-focus-color);
73
+ border-radius: var(--comp-tabs-tab-focus-border-radius);
74
+ background-color: var(--comp-tabs-tab-focus-background-color);
75
+ }
76
+
77
+ // Active/pressed state
78
+ &:active:not(:disabled):not(.active) {
79
+ background-color: var(--comp-tabs-tab-active-background-color);
80
+ }
81
+
82
+ // Disabled state
83
+ &:disabled,
84
+ &.disabled {
85
+ cursor: not-allowed;
86
+ color: var(--comp-tabs-tab-text-color-disabled);
87
+ opacity: 0.5;
88
+ }
89
+
90
+ // Active tab
91
+ &.active {
92
+ color: var(--comp-tabs-tab-text-color-active);
93
+ text-shadow: 0.5px 0 0 currentColor;
94
+
95
+ // Blue underline — pure CSS, no JS positioning needed
96
+ &::after {
97
+ content: '';
98
+ position: absolute;
99
+ bottom: -1px;
100
+ left: 0;
101
+ right: 0;
102
+ height: 4px;
103
+ background-color: var(--comp-tabs-tab-active-indicator-color);
104
+ }
105
+
106
+ &:focus-visible {
107
+ outline: none;
108
+ box-shadow: inset 0 0 0 2px var(--comp-tabs-tab-focus-color);
109
+ border-radius: var(--comp-tabs-tab-focus-border-radius);
110
+ }
111
+ }
112
+
113
+ // Feature locked tab
114
+ &.feature-locked {
115
+ // Only the lock icon (last <i>) gets feature-lock color;
116
+ // start icon inherits text color like in Angular
117
+ > i:last-of-type {
118
+ color: var(--comp-tabs-tab-feature-lock-color);
119
+ }
120
+
121
+ &:hover:not(:disabled):not(.active) {
122
+ background-color: var(--comp-tabs-tab-feature-locked-hover-background-color);
123
+ }
124
+
125
+ &:focus-visible:not(.active) {
126
+ color: var(--comp-tabs-tab-text-color-feature-locked-focus);
127
+ background-color: var(--comp-tabs-tab-feature-locked-focus-background-color);
128
+ }
129
+
130
+ &:active:not(:disabled):not(.active) {
131
+ background-color: var(--comp-tabs-tab-feature-locked-active-background-color);
132
+ }
133
+
134
+ &.active {
135
+ color: var(--comp-tabs-tab-text-color-feature-locked-active);
136
+ text-shadow: 0.5px 0 0 currentColor;
137
+
138
+ &::after {
139
+ background-color: var(--comp-tabs-tab-feature-locked-indicator-color);
140
+ }
141
+
142
+ &:focus-visible {
143
+ outline: none;
144
+ box-shadow: inset 0 0 0 2px var(--comp-tabs-tab-focus-color);
145
+ border-radius: var(--comp-tabs-tab-focus-border-radius);
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ // Active indicator (underline)
152
+ .ap-tabs-indicator {
153
+ position: absolute;
154
+ bottom: -1px;
155
+ height: 4px;
156
+ background-color: var(--comp-tabs-tab-active-indicator-color);
157
+ transition:
158
+ transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
159
+ width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
160
+ background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
161
+ transform-origin: left;
162
+
163
+ &.feature-locked {
164
+ background-color: var(--comp-tabs-tab-feature-locked-indicator-color);
165
+ }
166
+ }
167
+
168
+ // Tab content panel
169
+ .ap-tabs-content {
170
+ flex: 1;
171
+ width: 100%;
172
+ }
173
+
174
+ // Tab panel
175
+ .ap-tabs-panel {
176
+ display: none;
177
+ padding: var(--ref-spacing-md) 0;
178
+
179
+ &.active {
180
+ display: block;
181
+ }
182
+ }
@@ -0,0 +1,169 @@
1
+ // Agorapulse Tag Styles
2
+ @use 'mixins' as m;
3
+
4
+ .ap-tag {
5
+ display: inline-flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ height: var(--comp-tag-height);
9
+ max-height: var(--comp-tag-height);
10
+ box-sizing: border-box;
11
+ border-width: 1px;
12
+ border-style: solid;
13
+ padding: 0 var(--comp-tag-padding-right) 0 var(--comp-tag-padding-left);
14
+ border-radius: var(--comp-tag-border-radius);
15
+ gap: var(--ref-spacing-xxxs);
16
+ vertical-align: middle;
17
+
18
+ // Text styles on container (span optional)
19
+ font-size: var(--comp-tag-text-style-size);
20
+ line-height: var(--comp-tag-text-style-line-height);
21
+ font-weight: var(--comp-tag-text-style-font-weight);
22
+ font-family: var(--comp-tag-text-style-font-family);
23
+ white-space: nowrap;
24
+ text-decoration: none;
25
+
26
+ // Auto-detect close button — tighter right padding
27
+ &:has(> button) {
28
+ padding: 0 calc(var(--comp-tag-closable-padding-right) - 1px) 0 var(--comp-tag-padding-left);
29
+ }
30
+
31
+ // Mini size
32
+ &.mini {
33
+ height: var(--comp-tag-mini-height);
34
+ padding: 0 var(--comp-tag-mini-padding-right) 0 var(--comp-tag-mini-padding-left);
35
+ }
36
+
37
+ // Text truncation — use > span when combined with a close button
38
+ > span {
39
+ max-width: 180px;
40
+ @include m.truncate;
41
+ }
42
+
43
+ // Icon slot — implicit > i (for add icon or any free icon)
44
+ > i {
45
+ width: 12px;
46
+ height: 12px;
47
+ }
48
+
49
+ // Close button with <i class="ap-icon-close"> inside
50
+ > button {
51
+ display: flex;
52
+ justify-content: center;
53
+ align-items: center;
54
+ flex-shrink: 0;
55
+ width: var(--comp-close-button-size);
56
+ max-width: var(--comp-close-button-size);
57
+ height: var(--comp-close-button-size);
58
+ max-height: var(--comp-close-button-size);
59
+ border-radius: 50%;
60
+ background: transparent;
61
+ border: none;
62
+ padding: var(--comp-close-button-padding);
63
+ outline: none;
64
+ cursor: pointer;
65
+ transition: background-color 0.25s;
66
+
67
+ > i {
68
+ width: 12px;
69
+ height: 12px;
70
+ }
71
+
72
+ @media (hover: hover) {
73
+ &:focus:not(:disabled):not(:active) {
74
+ @include m.focus-ring;
75
+ }
76
+ }
77
+
78
+ &:hover {
79
+ background: var(--comp-close-button-hover-background);
80
+ }
81
+
82
+ &:active {
83
+ background: var(--comp-close-button-active-background);
84
+ outline: none;
85
+ }
86
+ }
87
+
88
+ // button.ap-tag — focus ring for clickable tags
89
+ &:is(button) {
90
+ cursor: pointer;
91
+
92
+ @media (hover: hover) {
93
+ &:focus:not(:disabled):not(:active) {
94
+ @include m.focus-ring;
95
+ }
96
+ }
97
+ }
98
+
99
+ // Color variants
100
+ &.blue {
101
+ background-color: var(--comp-tag-blue-background-color);
102
+ border-color: var(--comp-tag-blue-border-color);
103
+ color: var(--comp-tag-blue-text-color);
104
+
105
+ > button { color: var(--comp-tag-blue-icon-color); }
106
+ }
107
+
108
+ &.grey {
109
+ background-color: var(--comp-tag-grey-background-color);
110
+ border-color: var(--comp-tag-grey-border-color);
111
+ color: var(--comp-tag-grey-text-color);
112
+
113
+ > button { color: var(--comp-tag-grey-icon-color); }
114
+ }
115
+
116
+ &.tagOrange {
117
+ background-color: var(--comp-tag-tag-orange-background-color);
118
+ border-color: var(--comp-tag-tag-orange-border-color);
119
+ color: var(--comp-tag-tag-orange-text-color);
120
+
121
+ > button { color: var(--comp-tag-tag-orange-icon-color); }
122
+ }
123
+
124
+ &.menthol {
125
+ background-color: var(--comp-tag-menthol-background-color);
126
+ border-color: var(--comp-tag-menthol-border-color);
127
+ color: var(--comp-tag-menthol-text-color);
128
+
129
+ > button { color: var(--comp-tag-menthol-icon-color); }
130
+ }
131
+
132
+ &.green {
133
+ background-color: var(--comp-tag-green-background-color);
134
+ border-color: var(--comp-tag-green-border-color);
135
+ color: var(--comp-tag-green-text-color);
136
+
137
+ > button { color: var(--comp-tag-green-icon-color); }
138
+ }
139
+
140
+ &.red {
141
+ background-color: var(--comp-tag-red-background-color);
142
+ border-color: var(--comp-tag-red-border-color);
143
+ color: var(--comp-tag-red-text-color);
144
+
145
+ > button { color: var(--comp-tag-red-icon-color); }
146
+ }
147
+ }
148
+
149
+ // Tag avatar
150
+ .ap-tag-avatar {
151
+ --avatar-size: 16px;
152
+
153
+ @include m.fixed-size(var(--avatar-size));
154
+ border-radius: 100%;
155
+ overflow: hidden;
156
+
157
+ img {
158
+ width: 100%;
159
+ height: 100%;
160
+ object-fit: cover;
161
+ }
162
+ }
163
+
164
+ // Tag list container
165
+ .ap-tag-list {
166
+ display: flex;
167
+ flex-wrap: wrap;
168
+ gap: var(--ref-spacing-xxs);
169
+ }