astralkit 0.3.0 → 0.3.2
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/CHANGELOG.md +44 -0
- package/LICENSE +34 -34
- package/README.md +71 -58
- package/astralkit-theme-v4.css +618 -612
- package/astralkit-theme.css +618 -610
- package/astralkit-utilities.css +543 -543
- package/lib/utils.js +28 -28
- package/package.json +53 -45
- package/palettes.css +299 -299
- package/primitives/accounts.css +435 -435
- package/primitives/animations.css +136 -136
- package/primitives/avatar.css +410 -410
- package/primitives/badges.css +231 -231
- package/primitives/effects.css +388 -388
- package/primitives/focus.css +25 -25
- package/primitives/forms.css +2155 -2155
- package/primitives/icons.css +90 -90
- package/primitives/layout.css +217 -217
- package/primitives/mobile.css +557 -557
- package/primitives/navigation.css +1057 -1057
- package/primitives/sidebar.css +1819 -1819
- package/primitives/typography.css +324 -324
- package/tailwind.cjs +416 -416
- package/tailwind.js +491 -491
package/primitives/badges.css
CHANGED
|
@@ -1,231 +1,231 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/* Badge primitives -- notification badges, status dots, rank, social, verified, count badges */
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/* Badge (notification counts) */
|
|
8
|
-
/* Base badge — background + color only.
|
|
9
|
-
Position is set by context (absolute on avatars, static in nav links). */
|
|
10
|
-
/* Exact match of HTML badge CSS — nothing extra */
|
|
11
|
-
.ak-badge {
|
|
12
|
-
position: absolute;
|
|
13
|
-
border-radius: var(--radius-ak-full);
|
|
14
|
-
background: var(--color-ak-primary);
|
|
15
|
-
/* Monochrome by default — use .ak-badge--danger/success/warning/info
|
|
16
|
-
to override when a semantic color is needed.
|
|
17
|
-
No outer shadow: the white border (set per-size in avatar.css)
|
|
18
|
-
matches the page background and creates a "cutout" illusion —
|
|
19
|
-
the badge appears to be carved into the avatar rather than
|
|
20
|
-
floating on top. An outer shadow would contradict that. */
|
|
21
|
-
}
|
|
22
|
-
.ak-badge--count {
|
|
23
|
-
/* Horizontal padding is overridable via --ak-badge-pad so tighter
|
|
24
|
-
sizes (MD/LG/XL on avatars) can keep a perfect circle for
|
|
25
|
-
2-digit counts without stretching into a pill. */
|
|
26
|
-
padding: 0 var(--ak-badge-pad, 4px);
|
|
27
|
-
font-weight: 700;
|
|
28
|
-
color: var(--color-ak-on-primary);
|
|
29
|
-
display: flex;
|
|
30
|
-
align-items: center;
|
|
31
|
-
justify-content: center;
|
|
32
|
-
/* Tabular digits so "11" / "24" / "99+" share column widths and
|
|
33
|
-
read centered regardless of digit mix. Tight letter-spacing
|
|
34
|
-
makes multi-digit counts feel like a single token. */
|
|
35
|
-
font-variant-numeric: tabular-nums;
|
|
36
|
-
letter-spacing: -0.01em;
|
|
37
|
-
}
|
|
38
|
-
.ak-badge--success { background: var(--color-ak-success); }
|
|
39
|
-
.ak-badge--warning { background: var(--color-ak-warning); }
|
|
40
|
-
.ak-badge--danger { background: var(--color-ak-danger); }
|
|
41
|
-
.ak-badge--info { background: var(--color-ak-info); }
|
|
42
|
-
|
|
43
|
-
/* Dark panel/rail badge overrides */
|
|
44
|
-
[data-ak-dark-panel] .ak-badge,
|
|
45
|
-
[data-ak-dark-rail] .ak-badge,
|
|
46
|
-
[data-ak-mobile-sheet] .ak-badge {
|
|
47
|
-
background: #ffffff;
|
|
48
|
-
color: #171717;
|
|
49
|
-
}
|
|
50
|
-
[data-ak-dark-panel] .ak-on-elevated .ak-badge,
|
|
51
|
-
[data-ak-dark-rail] .ak-on-elevated .ak-badge,
|
|
52
|
-
[data-ak-mobile-sheet] .ak-on-elevated .ak-badge {
|
|
53
|
-
background: #171717;
|
|
54
|
-
color: #ffffff;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/* Badge variants */
|
|
58
|
-
.ak-badge-dot {
|
|
59
|
-
width: 8px;
|
|
60
|
-
height: 8px;
|
|
61
|
-
border-radius: var(--radius-ak-full);
|
|
62
|
-
background: var(--color-ak-primary);
|
|
63
|
-
}
|
|
64
|
-
.ak-badge-inline {
|
|
65
|
-
display: inline-flex;
|
|
66
|
-
align-items: center;
|
|
67
|
-
justify-content: center;
|
|
68
|
-
padding: 0.125rem 0.5rem;
|
|
69
|
-
border-radius: var(--radius-ak-full);
|
|
70
|
-
font-size: var(--text-ak-xs);
|
|
71
|
-
font-weight: 600;
|
|
72
|
-
}
|
|
73
|
-
.ak-badge-subtle {
|
|
74
|
-
background: var(--color-ak-primary-subtle);
|
|
75
|
-
color: var(--color-ak-primary);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/* Count badge (standalone) */
|
|
79
|
-
.ak-count-badge {
|
|
80
|
-
display: inline-flex;
|
|
81
|
-
align-items: center;
|
|
82
|
-
justify-content: center;
|
|
83
|
-
min-width: 1.25rem;
|
|
84
|
-
height: 1.25rem;
|
|
85
|
-
padding: 0 0.375rem;
|
|
86
|
-
border-radius: var(--radius-ak-full);
|
|
87
|
-
font-size: var(--text-ak-xs);
|
|
88
|
-
font-weight: 600;
|
|
89
|
-
background: var(--color-ak-surface-2);
|
|
90
|
-
color: var(--color-ak-text-secondary);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/* Notification badge — monochrome by default.
|
|
94
|
-
Add .ak-notif-badge.ak-badge--danger etc. to override when needed. */
|
|
95
|
-
.ak-notif-badge {
|
|
96
|
-
position: absolute;
|
|
97
|
-
display: flex;
|
|
98
|
-
align-items: center;
|
|
99
|
-
justify-content: center;
|
|
100
|
-
border-radius: var(--radius-ak-full);
|
|
101
|
-
background: var(--color-ak-primary);
|
|
102
|
-
color: var(--color-ak-on-primary);
|
|
103
|
-
font-weight: 700;
|
|
104
|
-
padding: 0 0.25rem;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/* Pro/plan badges */
|
|
108
|
-
.ak-pro-badge {
|
|
109
|
-
display: inline-flex;
|
|
110
|
-
align-items: center;
|
|
111
|
-
padding: 0.125rem 0.5rem;
|
|
112
|
-
border-radius: var(--radius-ak-full);
|
|
113
|
-
font-size: var(--text-ak-xs);
|
|
114
|
-
font-weight: 600;
|
|
115
|
-
background: var(--color-ak-primary);
|
|
116
|
-
color: var(--color-ak-on-primary);
|
|
117
|
-
}
|
|
118
|
-
.ak-plan-badge {
|
|
119
|
-
display: inline-flex;
|
|
120
|
-
align-items: center;
|
|
121
|
-
padding: 0.125rem 0.5rem;
|
|
122
|
-
border-radius: var(--radius-ak-full);
|
|
123
|
-
font-size: var(--text-ak-xs);
|
|
124
|
-
font-weight: 600;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/* Verified badge — monochrome by default. Add .ak-badge--info
|
|
128
|
-
to override with the traditional blue checkmark. */
|
|
129
|
-
.ak-verified-badge {
|
|
130
|
-
position: absolute;
|
|
131
|
-
display: flex;
|
|
132
|
-
align-items: center;
|
|
133
|
-
justify-content: center;
|
|
134
|
-
border-radius: var(--radius-ak-full);
|
|
135
|
-
background: var(--color-ak-primary);
|
|
136
|
-
}
|
|
137
|
-
.ak-verified-badge i {
|
|
138
|
-
color: var(--color-ak-on-primary);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/* Rank badge — tonal monochrome hierarchy.
|
|
142
|
-
1st = primary (black), 2nd = secondary neutral, 3rd = surface. */
|
|
143
|
-
.ak-rank-badge {
|
|
144
|
-
position: absolute;
|
|
145
|
-
display: flex;
|
|
146
|
-
align-items: center;
|
|
147
|
-
justify-content: center;
|
|
148
|
-
border-radius: var(--radius-ak-full);
|
|
149
|
-
font-weight: 700;
|
|
150
|
-
}
|
|
151
|
-
.ak-rank-badge--1 { background: var(--color-ak-primary); color: var(--color-ak-on-primary); }
|
|
152
|
-
.ak-rank-badge--2 { background: var(--color-ak-text-secondary); color: var(--color-ak-bg); }
|
|
153
|
-
.ak-rank-badge--3 { background: var(--color-ak-surface-2); color: var(--color-ak-text); }
|
|
154
|
-
|
|
155
|
-
/* Social badge — per-size border width set in avatar.css to scale with avatar */
|
|
156
|
-
.ak-social-badge {
|
|
157
|
-
position: absolute;
|
|
158
|
-
bottom: -6px;
|
|
159
|
-
right: -6px;
|
|
160
|
-
display: flex;
|
|
161
|
-
align-items: center;
|
|
162
|
-
justify-content: center;
|
|
163
|
-
border-radius: var(--radius-ak-full);
|
|
164
|
-
border-style: solid;
|
|
165
|
-
border-color: var(--color-ak-bg);
|
|
166
|
-
font-weight: 700;
|
|
167
|
-
line-height: 1;
|
|
168
|
-
flex-shrink: 0;
|
|
169
|
-
}
|
|
170
|
-
.ak-social-badge--google { background: #ffffff; color: #4285F4; }
|
|
171
|
-
.ak-social-badge--linkedin { background: #0A66C2; color: #ffffff; }
|
|
172
|
-
.ak-social-badge--meta { background: #0081FB; color: #ffffff; }
|
|
173
|
-
.ak-social-badge--x { background: #000000; color: #ffffff; }
|
|
174
|
-
|
|
175
|
-
/* Status dot */
|
|
176
|
-
.ak-status-dot {
|
|
177
|
-
position: absolute;
|
|
178
|
-
border-radius: var(--radius-ak-full);
|
|
179
|
-
}
|
|
180
|
-
.ak-status-dot--online { background: var(--color-ak-success); }
|
|
181
|
-
.ak-status-dot--away { background: var(--color-ak-warning); }
|
|
182
|
-
.ak-status-dot--busy { background: var(--color-ak-danger); }
|
|
183
|
-
.ak-status-dot--offline { background: var(--color-ak-text-muted); }
|
|
184
|
-
.ak-status-dot--dnd { background: var(--color-ak-danger); }
|
|
185
|
-
.ak-status-dot--dnd::after {
|
|
186
|
-
content: '';
|
|
187
|
-
position: absolute;
|
|
188
|
-
top: 50%;
|
|
189
|
-
left: 50%;
|
|
190
|
-
transform: translate(-50%, -50%);
|
|
191
|
-
background: var(--color-ak-text-inverse);
|
|
192
|
-
border-radius: var(--radius-ak-full);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/* Activity / status badges */
|
|
196
|
-
.ak-activity-badge {
|
|
197
|
-
display: inline-flex;
|
|
198
|
-
align-items: center;
|
|
199
|
-
padding: 0.125rem 0.5rem;
|
|
200
|
-
border-radius: var(--radius-ak-full);
|
|
201
|
-
font-size: var(--text-ak-xs);
|
|
202
|
-
font-weight: 600;
|
|
203
|
-
}
|
|
204
|
-
.ak-status-badge {
|
|
205
|
-
display: inline-flex;
|
|
206
|
-
align-items: center;
|
|
207
|
-
gap: 0.375rem;
|
|
208
|
-
padding: 0.25rem 0.625rem;
|
|
209
|
-
border-radius: var(--radius-ak-full);
|
|
210
|
-
font-size: var(--text-ak-xs);
|
|
211
|
-
font-weight: 500;
|
|
212
|
-
}
|
|
213
|
-
.ak-notification-dot {
|
|
214
|
-
width: 6px;
|
|
215
|
-
height: 6px;
|
|
216
|
-
border-radius: var(--radius-ak-full);
|
|
217
|
-
background: var(--color-ak-danger);
|
|
218
|
-
}
|
|
219
|
-
.ak-status-indicator {
|
|
220
|
-
width: 8px;
|
|
221
|
-
height: 8px;
|
|
222
|
-
border-radius: var(--radius-ak-full);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/* Presence indicators */
|
|
226
|
-
.ak-presence-online { background-color: var(--color-ak-success); }
|
|
227
|
-
.ak-presence-away { background-color: var(--color-ak-warning); }
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
/* Note: Unlayered override block removed — no longer needed without @layer. */
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
/* Badge primitives -- notification badges, status dots, rank, social, verified, count badges */
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/* Badge (notification counts) */
|
|
8
|
+
/* Base badge — background + color only.
|
|
9
|
+
Position is set by context (absolute on avatars, static in nav links). */
|
|
10
|
+
/* Exact match of HTML badge CSS — nothing extra */
|
|
11
|
+
.ak-badge {
|
|
12
|
+
position: absolute;
|
|
13
|
+
border-radius: var(--radius-ak-full);
|
|
14
|
+
background: var(--color-ak-primary);
|
|
15
|
+
/* Monochrome by default — use .ak-badge--danger/success/warning/info
|
|
16
|
+
to override when a semantic color is needed.
|
|
17
|
+
No outer shadow: the white border (set per-size in avatar.css)
|
|
18
|
+
matches the page background and creates a "cutout" illusion —
|
|
19
|
+
the badge appears to be carved into the avatar rather than
|
|
20
|
+
floating on top. An outer shadow would contradict that. */
|
|
21
|
+
}
|
|
22
|
+
.ak-badge--count {
|
|
23
|
+
/* Horizontal padding is overridable via --ak-badge-pad so tighter
|
|
24
|
+
sizes (MD/LG/XL on avatars) can keep a perfect circle for
|
|
25
|
+
2-digit counts without stretching into a pill. */
|
|
26
|
+
padding: 0 var(--ak-badge-pad, 4px);
|
|
27
|
+
font-weight: 700;
|
|
28
|
+
color: var(--color-ak-on-primary);
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
justify-content: center;
|
|
32
|
+
/* Tabular digits so "11" / "24" / "99+" share column widths and
|
|
33
|
+
read centered regardless of digit mix. Tight letter-spacing
|
|
34
|
+
makes multi-digit counts feel like a single token. */
|
|
35
|
+
font-variant-numeric: tabular-nums;
|
|
36
|
+
letter-spacing: -0.01em;
|
|
37
|
+
}
|
|
38
|
+
.ak-badge--success { background: var(--color-ak-success); }
|
|
39
|
+
.ak-badge--warning { background: var(--color-ak-warning); }
|
|
40
|
+
.ak-badge--danger { background: var(--color-ak-danger); }
|
|
41
|
+
.ak-badge--info { background: var(--color-ak-info); }
|
|
42
|
+
|
|
43
|
+
/* Dark panel/rail badge overrides */
|
|
44
|
+
[data-ak-dark-panel] .ak-badge,
|
|
45
|
+
[data-ak-dark-rail] .ak-badge,
|
|
46
|
+
[data-ak-mobile-sheet] .ak-badge {
|
|
47
|
+
background: #ffffff;
|
|
48
|
+
color: #171717;
|
|
49
|
+
}
|
|
50
|
+
[data-ak-dark-panel] .ak-on-elevated .ak-badge,
|
|
51
|
+
[data-ak-dark-rail] .ak-on-elevated .ak-badge,
|
|
52
|
+
[data-ak-mobile-sheet] .ak-on-elevated .ak-badge {
|
|
53
|
+
background: #171717;
|
|
54
|
+
color: #ffffff;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Badge variants */
|
|
58
|
+
.ak-badge-dot {
|
|
59
|
+
width: 8px;
|
|
60
|
+
height: 8px;
|
|
61
|
+
border-radius: var(--radius-ak-full);
|
|
62
|
+
background: var(--color-ak-primary);
|
|
63
|
+
}
|
|
64
|
+
.ak-badge-inline {
|
|
65
|
+
display: inline-flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
justify-content: center;
|
|
68
|
+
padding: 0.125rem 0.5rem;
|
|
69
|
+
border-radius: var(--radius-ak-full);
|
|
70
|
+
font-size: var(--text-ak-xs);
|
|
71
|
+
font-weight: 600;
|
|
72
|
+
}
|
|
73
|
+
.ak-badge-subtle {
|
|
74
|
+
background: var(--color-ak-primary-subtle);
|
|
75
|
+
color: var(--color-ak-primary);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Count badge (standalone) */
|
|
79
|
+
.ak-count-badge {
|
|
80
|
+
display: inline-flex;
|
|
81
|
+
align-items: center;
|
|
82
|
+
justify-content: center;
|
|
83
|
+
min-width: 1.25rem;
|
|
84
|
+
height: 1.25rem;
|
|
85
|
+
padding: 0 0.375rem;
|
|
86
|
+
border-radius: var(--radius-ak-full);
|
|
87
|
+
font-size: var(--text-ak-xs);
|
|
88
|
+
font-weight: 600;
|
|
89
|
+
background: var(--color-ak-surface-2);
|
|
90
|
+
color: var(--color-ak-text-secondary);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Notification badge — monochrome by default.
|
|
94
|
+
Add .ak-notif-badge.ak-badge--danger etc. to override when needed. */
|
|
95
|
+
.ak-notif-badge {
|
|
96
|
+
position: absolute;
|
|
97
|
+
display: flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
justify-content: center;
|
|
100
|
+
border-radius: var(--radius-ak-full);
|
|
101
|
+
background: var(--color-ak-primary);
|
|
102
|
+
color: var(--color-ak-on-primary);
|
|
103
|
+
font-weight: 700;
|
|
104
|
+
padding: 0 0.25rem;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Pro/plan badges */
|
|
108
|
+
.ak-pro-badge {
|
|
109
|
+
display: inline-flex;
|
|
110
|
+
align-items: center;
|
|
111
|
+
padding: 0.125rem 0.5rem;
|
|
112
|
+
border-radius: var(--radius-ak-full);
|
|
113
|
+
font-size: var(--text-ak-xs);
|
|
114
|
+
font-weight: 600;
|
|
115
|
+
background: var(--color-ak-primary);
|
|
116
|
+
color: var(--color-ak-on-primary);
|
|
117
|
+
}
|
|
118
|
+
.ak-plan-badge {
|
|
119
|
+
display: inline-flex;
|
|
120
|
+
align-items: center;
|
|
121
|
+
padding: 0.125rem 0.5rem;
|
|
122
|
+
border-radius: var(--radius-ak-full);
|
|
123
|
+
font-size: var(--text-ak-xs);
|
|
124
|
+
font-weight: 600;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* Verified badge — monochrome by default. Add .ak-badge--info
|
|
128
|
+
to override with the traditional blue checkmark. */
|
|
129
|
+
.ak-verified-badge {
|
|
130
|
+
position: absolute;
|
|
131
|
+
display: flex;
|
|
132
|
+
align-items: center;
|
|
133
|
+
justify-content: center;
|
|
134
|
+
border-radius: var(--radius-ak-full);
|
|
135
|
+
background: var(--color-ak-primary);
|
|
136
|
+
}
|
|
137
|
+
.ak-verified-badge i {
|
|
138
|
+
color: var(--color-ak-on-primary);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* Rank badge — tonal monochrome hierarchy.
|
|
142
|
+
1st = primary (black), 2nd = secondary neutral, 3rd = surface. */
|
|
143
|
+
.ak-rank-badge {
|
|
144
|
+
position: absolute;
|
|
145
|
+
display: flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
justify-content: center;
|
|
148
|
+
border-radius: var(--radius-ak-full);
|
|
149
|
+
font-weight: 700;
|
|
150
|
+
}
|
|
151
|
+
.ak-rank-badge--1 { background: var(--color-ak-primary); color: var(--color-ak-on-primary); }
|
|
152
|
+
.ak-rank-badge--2 { background: var(--color-ak-text-secondary); color: var(--color-ak-bg); }
|
|
153
|
+
.ak-rank-badge--3 { background: var(--color-ak-surface-2); color: var(--color-ak-text); }
|
|
154
|
+
|
|
155
|
+
/* Social badge — per-size border width set in avatar.css to scale with avatar */
|
|
156
|
+
.ak-social-badge {
|
|
157
|
+
position: absolute;
|
|
158
|
+
bottom: -6px;
|
|
159
|
+
right: -6px;
|
|
160
|
+
display: flex;
|
|
161
|
+
align-items: center;
|
|
162
|
+
justify-content: center;
|
|
163
|
+
border-radius: var(--radius-ak-full);
|
|
164
|
+
border-style: solid;
|
|
165
|
+
border-color: var(--color-ak-bg);
|
|
166
|
+
font-weight: 700;
|
|
167
|
+
line-height: 1;
|
|
168
|
+
flex-shrink: 0;
|
|
169
|
+
}
|
|
170
|
+
.ak-social-badge--google { background: #ffffff; color: #4285F4; }
|
|
171
|
+
.ak-social-badge--linkedin { background: #0A66C2; color: #ffffff; }
|
|
172
|
+
.ak-social-badge--meta { background: #0081FB; color: #ffffff; }
|
|
173
|
+
.ak-social-badge--x { background: #000000; color: #ffffff; }
|
|
174
|
+
|
|
175
|
+
/* Status dot */
|
|
176
|
+
.ak-status-dot {
|
|
177
|
+
position: absolute;
|
|
178
|
+
border-radius: var(--radius-ak-full);
|
|
179
|
+
}
|
|
180
|
+
.ak-status-dot--online { background: var(--color-ak-success); }
|
|
181
|
+
.ak-status-dot--away { background: var(--color-ak-warning); }
|
|
182
|
+
.ak-status-dot--busy { background: var(--color-ak-danger); }
|
|
183
|
+
.ak-status-dot--offline { background: var(--color-ak-text-muted); }
|
|
184
|
+
.ak-status-dot--dnd { background: var(--color-ak-danger); }
|
|
185
|
+
.ak-status-dot--dnd::after {
|
|
186
|
+
content: '';
|
|
187
|
+
position: absolute;
|
|
188
|
+
top: 50%;
|
|
189
|
+
left: 50%;
|
|
190
|
+
transform: translate(-50%, -50%);
|
|
191
|
+
background: var(--color-ak-text-inverse);
|
|
192
|
+
border-radius: var(--radius-ak-full);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/* Activity / status badges */
|
|
196
|
+
.ak-activity-badge {
|
|
197
|
+
display: inline-flex;
|
|
198
|
+
align-items: center;
|
|
199
|
+
padding: 0.125rem 0.5rem;
|
|
200
|
+
border-radius: var(--radius-ak-full);
|
|
201
|
+
font-size: var(--text-ak-xs);
|
|
202
|
+
font-weight: 600;
|
|
203
|
+
}
|
|
204
|
+
.ak-status-badge {
|
|
205
|
+
display: inline-flex;
|
|
206
|
+
align-items: center;
|
|
207
|
+
gap: 0.375rem;
|
|
208
|
+
padding: 0.25rem 0.625rem;
|
|
209
|
+
border-radius: var(--radius-ak-full);
|
|
210
|
+
font-size: var(--text-ak-xs);
|
|
211
|
+
font-weight: 500;
|
|
212
|
+
}
|
|
213
|
+
.ak-notification-dot {
|
|
214
|
+
width: 6px;
|
|
215
|
+
height: 6px;
|
|
216
|
+
border-radius: var(--radius-ak-full);
|
|
217
|
+
background: var(--color-ak-danger);
|
|
218
|
+
}
|
|
219
|
+
.ak-status-indicator {
|
|
220
|
+
width: 8px;
|
|
221
|
+
height: 8px;
|
|
222
|
+
border-radius: var(--radius-ak-full);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/* Presence indicators */
|
|
226
|
+
.ak-presence-online { background-color: var(--color-ak-success); }
|
|
227
|
+
.ak-presence-away { background-color: var(--color-ak-warning); }
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
/* Note: Unlayered override block removed — no longer needed without @layer. */
|