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.
@@ -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. */