astralkit 0.2.0 → 0.3.0

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/tailwind.cjs ADDED
@@ -0,0 +1,416 @@
1
+ /**
2
+ * AstralKit Tailwind CSS v3 Compatibility Plugin
3
+ *
4
+ * Registers all ak-* design tokens as Tailwind theme extensions
5
+ * so that utility classes like bg-ak-bg, text-ak-text, p-ak-2, etc.
6
+ * work in Tailwind v3 projects.
7
+ *
8
+ * Usage (tailwind.config.js):
9
+ * const astralkit = require('astralkit/tailwind')
10
+ * module.exports = { plugins: [astralkit] }
11
+ *
12
+ * In Tailwind v4, this plugin is NOT needed — the @theme directive
13
+ * in astralkit/theme handles everything automatically.
14
+ */
15
+
16
+ const plugin = require('tailwindcss/plugin')
17
+
18
+ // Shared spacing map — used by spacing, width, height, minWidth, minHeight, maxWidth
19
+ // In Tailwind v4 spacing auto-feeds all sizing utils; in v3 we must extend each explicitly
20
+ const AK_SPACING = {
21
+ 'ak-0': 'var(--spacing-ak-0)',
22
+ 'ak-px': 'var(--spacing-ak-px)',
23
+ 'ak-0_5': 'var(--spacing-ak-0_5)',
24
+ 'ak-0.5': 'var(--spacing-ak-0_5)',
25
+ 'ak-1': 'var(--spacing-ak-1)',
26
+ 'ak-1_5': 'var(--spacing-ak-1_5)',
27
+ 'ak-1.5': 'var(--spacing-ak-1_5)',
28
+ 'ak-2': 'var(--spacing-ak-2)',
29
+ 'ak-2_5': 'var(--spacing-ak-2_5)',
30
+ 'ak-2.5': 'var(--spacing-ak-2_5)',
31
+ 'ak-3': 'var(--spacing-ak-3)',
32
+ 'ak-3_5': 'var(--spacing-ak-3_5)',
33
+ 'ak-3.5': 'var(--spacing-ak-3_5)',
34
+ 'ak-4': 'var(--spacing-ak-4)',
35
+ 'ak-4_5': 'var(--spacing-ak-4_5)',
36
+ 'ak-4.5': 'var(--spacing-ak-4_5)',
37
+ 'ak-5': 'var(--spacing-ak-5)',
38
+ 'ak-5_5': 'var(--spacing-ak-5_5)',
39
+ 'ak-5.5': 'var(--spacing-ak-5_5)',
40
+ 'ak-6': 'var(--spacing-ak-6)',
41
+ 'ak-7': 'var(--spacing-ak-7)',
42
+ 'ak-8': 'var(--spacing-ak-8)',
43
+ 'ak-10': 'var(--spacing-ak-10)',
44
+ 'ak-12': 'var(--spacing-ak-12)',
45
+ 'ak-16': 'var(--spacing-ak-16)',
46
+ 'ak-20': 'var(--spacing-ak-20)',
47
+ 'ak-24': 'var(--spacing-ak-24)',
48
+ 'ak-mobile-bar': 'var(--spacing-ak-mobile-bar)',
49
+ }
50
+
51
+ module.exports = plugin(
52
+ // Plugin function — intentionally empty.
53
+ // Token values (CSS custom properties) now live in astralkit-utilities.css
54
+ // inside @layer ak-tokens. This eliminates duplication and enables
55
+ // native CSS @layer for cascade control.
56
+ // Compatible with Tailwind v3 and v4.
57
+ function () {},
58
+
59
+ // Config — extends Tailwind's theme with ak-* utilities
60
+ {
61
+ theme: {
62
+ extend: {
63
+ /* ── Colors ──
64
+ Every ak-* color token becomes a Tailwind color utility:
65
+ bg-ak-bg, text-ak-text, border-ak-border, etc. */
66
+ colors: {
67
+ // Neutral scale
68
+ 'ak-neutral-0': 'var(--color-ak-neutral-0)',
69
+ 'ak-neutral-50': 'var(--color-ak-neutral-50)',
70
+ 'ak-neutral-100': 'var(--color-ak-neutral-100)',
71
+ 'ak-neutral-200': 'var(--color-ak-neutral-200)',
72
+ 'ak-neutral-300': 'var(--color-ak-neutral-300)',
73
+ 'ak-neutral-400': 'var(--color-ak-neutral-400)',
74
+ 'ak-neutral-500': 'var(--color-ak-neutral-500)',
75
+ 'ak-neutral-600': 'var(--color-ak-neutral-600)',
76
+ 'ak-neutral-700': 'var(--color-ak-neutral-700)',
77
+ 'ak-neutral-800': 'var(--color-ak-neutral-800)',
78
+ 'ak-neutral-900': 'var(--color-ak-neutral-900)',
79
+ 'ak-neutral-950': 'var(--color-ak-neutral-950)',
80
+
81
+ // Primary scale
82
+ 'ak-primary-50': 'var(--color-ak-primary-50)',
83
+ 'ak-primary-100': 'var(--color-ak-primary-100)',
84
+ 'ak-primary-200': 'var(--color-ak-primary-200)',
85
+ 'ak-primary-300': 'var(--color-ak-primary-300)',
86
+ 'ak-primary-400': 'var(--color-ak-primary-400)',
87
+ 'ak-primary-500': 'var(--color-ak-primary-500)',
88
+ 'ak-primary-600': 'var(--color-ak-primary-600)',
89
+ 'ak-primary-700': 'var(--color-ak-primary-700)',
90
+ 'ak-primary-800': 'var(--color-ak-primary-800)',
91
+ 'ak-primary-900': 'var(--color-ak-primary-900)',
92
+ 'ak-primary-950': 'var(--color-ak-primary-950)',
93
+
94
+ // Primary action
95
+ 'ak-primary': 'var(--color-ak-primary)',
96
+ 'ak-primary-hover': 'var(--color-ak-primary-hover)',
97
+ 'ak-primary-active': 'var(--color-ak-primary-active)',
98
+
99
+ // Semantic surfaces
100
+ 'ak-bg': 'var(--color-ak-bg)',
101
+ 'ak-surface': 'var(--color-ak-surface)',
102
+ 'ak-surface-2': 'var(--color-ak-surface-2)',
103
+ 'ak-hover': 'var(--color-ak-hover)',
104
+ 'ak-active': 'var(--color-ak-active)',
105
+ 'ak-elevated': 'var(--color-ak-elevated)',
106
+ 'ak-on-primary': 'var(--color-ak-on-primary)',
107
+ 'ak-primary-subtle': 'var(--color-ak-primary-subtle)',
108
+ 'ak-overlay': 'var(--color-ak-overlay)',
109
+
110
+ // Semantic text
111
+ 'ak-text': 'var(--color-ak-text)',
112
+ 'ak-text-secondary': 'var(--color-ak-text-secondary)',
113
+ 'ak-text-muted': 'var(--color-ak-text-muted)',
114
+ 'ak-text-disabled': 'var(--color-ak-text-disabled)',
115
+ 'ak-text-inverse': 'var(--color-ak-text-inverse)',
116
+ 'ak-text-link': 'var(--color-ak-text-link)',
117
+ 'ak-text-placeholder':'var(--color-ak-text-placeholder)',
118
+
119
+ // Semantic border
120
+ 'ak-border': 'var(--color-ak-border)',
121
+ 'ak-border-subtle': 'var(--color-ak-border-subtle)',
122
+ 'ak-border-strong': 'var(--color-ak-border-strong)',
123
+ 'ak-border-focus': 'var(--color-ak-border-focus)',
124
+
125
+ // Status
126
+ 'ak-success': 'var(--color-ak-success)',
127
+ 'ak-success-subtle': 'var(--color-ak-success-subtle)',
128
+ 'ak-success-text': 'var(--color-ak-success-text)',
129
+ 'ak-warning': 'var(--color-ak-warning)',
130
+ 'ak-warning-subtle': 'var(--color-ak-warning-subtle)',
131
+ 'ak-warning-text': 'var(--color-ak-warning-text)',
132
+ 'ak-danger': 'var(--color-ak-danger)',
133
+ 'ak-danger-subtle': 'var(--color-ak-danger-subtle)',
134
+ 'ak-danger-text': 'var(--color-ak-danger-text)',
135
+ 'ak-info': 'var(--color-ak-info)',
136
+ 'ak-info-subtle': 'var(--color-ak-info-subtle)',
137
+ 'ak-info-text': 'var(--color-ak-info-text)',
138
+ 'ak-chart-1': 'var(--color-ak-chart-1)',
139
+ 'ak-chart-2': 'var(--color-ak-chart-2)',
140
+ 'ak-chart-3': 'var(--color-ak-chart-3)',
141
+ 'ak-chart-4': 'var(--color-ak-chart-4)',
142
+ 'ak-chart-5': 'var(--color-ak-chart-5)',
143
+ 'ak-chart-6': 'var(--color-ak-chart-6)',
144
+
145
+ // Neobrutalist
146
+ 'ak-brutal-ink': 'var(--color-ak-brutal-ink)',
147
+ 'ak-brutal-face': 'var(--color-ak-brutal-face)',
148
+ 'ak-brutal-face-dark': 'var(--color-ak-brutal-face-dark)',
149
+ 'ak-brutal-on-face': 'var(--color-ak-brutal-on-face)',
150
+ 'ak-brutal-on-face-dark': 'var(--color-ak-brutal-on-face-dark)',
151
+ },
152
+
153
+ /* ── Spacing ──
154
+ p-ak-2, m-ak-3, gap-ak-1, etc.
155
+ In v3, spacing doesn't auto-feed into w-/h-/min-w-/min-h-/max-w-
156
+ so we also spread AK_SPACING into those configs below. */
157
+ spacing: {
158
+ ...AK_SPACING,
159
+ // Fluid spacing
160
+ 'ak-fl-3xs': 'clamp(0.25rem, 0.21rem + 0.14vw, 0.375rem)',
161
+ 'ak-fl-2xs': 'clamp(0.5rem, 0.43rem + 0.28vw, 0.75rem)',
162
+ 'ak-fl-xs': 'clamp(0.75rem, 0.65rem + 0.42vw, 1rem)',
163
+ 'ak-fl-sm': 'clamp(1rem, 0.86rem + 0.56vw, 1.5rem)',
164
+ 'ak-fl-md': 'clamp(1.5rem, 1.29rem + 0.83vw, 2rem)',
165
+ 'ak-fl-lg': 'clamp(2rem, 1.72rem + 1.11vw, 3rem)',
166
+ 'ak-fl-xl': 'clamp(3rem, 2.5rem + 1.85vw, 4.5rem)',
167
+ 'ak-fl-2xl': 'clamp(4rem, 3.22rem + 2.78vw, 6rem)',
168
+ 'ak-fl-3xl': 'clamp(6rem, 4.86rem + 4.17vw, 9rem)',
169
+ // Fluid space pairs
170
+ 'ak-fl-xs-md': 'clamp(0.75rem, 0.43rem + 1.39vw, 2rem)',
171
+ 'ak-fl-xs-lg': 'clamp(0.75rem, 0.14rem + 2.78vw, 3rem)',
172
+ 'ak-fl-sm-lg': 'clamp(1rem, 0.43rem + 2.78vw, 3rem)',
173
+ 'ak-fl-sm-xl': 'clamp(1rem, 0rem + 4.17vw, 4.5rem)',
174
+ 'ak-fl-md-xl': 'clamp(1.5rem, 0.57rem + 3.47vw, 4.5rem)',
175
+ 'ak-fl-md-2xl': 'clamp(1.5rem, 0rem + 5.56vw, 6rem)',
176
+ 'ak-fl-lg-2xl': 'clamp(2rem, 0.57rem + 5.56vw, 6rem)',
177
+ 'ak-fl-xl-3xl': 'clamp(3rem, 0.57rem + 8.33vw, 9rem)',
178
+ 'ak-fl-page-margin': 'var(--spacing-ak-fl-page-margin)',
179
+ },
180
+
181
+ /* ── Font Family ── */
182
+ fontFamily: {
183
+ 'ak-sans': ['DM Sans', 'system-ui', '-apple-system', 'sans-serif'],
184
+ 'ak-serif': ['DM Serif Display', 'Georgia', 'serif'],
185
+ 'ak-mono': ['JetBrains Mono', 'Fira Code', 'ui-monospace', 'monospace'],
186
+ },
187
+
188
+ /* ── Font Size ──
189
+ text-ak-base, text-ak-lg, text-ak-fl-2xl, etc. */
190
+ fontSize: {
191
+ // Static scale
192
+ 'ak-2xs': 'var(--text-ak-2xs)',
193
+ 'ak-xs': 'var(--text-ak-xs)',
194
+ 'ak-sm': 'var(--text-ak-sm)',
195
+ 'ak-base': 'var(--text-ak-base)',
196
+ 'ak-lg': 'var(--text-ak-lg)',
197
+ 'ak-xl': 'var(--text-ak-xl)',
198
+ 'ak-2xl': 'var(--text-ak-2xl)',
199
+ 'ak-3xl': 'var(--text-ak-3xl)',
200
+ 'ak-4xl': 'var(--text-ak-4xl)',
201
+ 'ak-5xl': 'var(--text-ak-5xl)',
202
+ 'ak-6xl': 'var(--text-ak-6xl)',
203
+ 'ak-7xl': 'var(--text-ak-7xl)',
204
+ 'ak-8xl': 'var(--text-ak-8xl)',
205
+ 'ak-9xl': 'var(--text-ak-9xl)',
206
+ // Fluid scale
207
+ 'ak-fl-xs': 'clamp(0.6875rem, 0.67rem + 0.06vw, 0.75rem)',
208
+ 'ak-fl-sm': 'clamp(0.75rem, 0.71rem + 0.12vw, 0.875rem)',
209
+ 'ak-fl-base': 'clamp(0.875rem, 0.84rem + 0.12vw, 1rem)',
210
+ 'ak-fl-lg': 'clamp(1rem, 0.96rem + 0.12vw, 1.125rem)',
211
+ 'ak-fl-xl': 'clamp(1.125rem, 1.09rem + 0.12vw, 1.25rem)',
212
+ 'ak-fl-2xl': 'clamp(1.25rem, 1.18rem + 0.23vw, 1.5rem)',
213
+ 'ak-fl-3xl': 'clamp(1.5rem, 1.39rem + 0.35vw, 1.875rem)',
214
+ 'ak-fl-4xl': 'clamp(1.875rem, 1.76rem + 0.35vw, 2.25rem)',
215
+ 'ak-fl-5xl': 'clamp(2.25rem, 2.03rem + 0.69vw, 3rem)',
216
+ 'ak-fl-6xl': 'clamp(3rem, 2.78rem + 0.69vw, 3.75rem)',
217
+ 'ak-fl-7xl': 'clamp(3.5rem, 3.2rem + 0.93vw, 4.5rem)',
218
+ 'ak-fl-8xl': 'clamp(4.5rem, 4.06rem + 1.39vw, 6rem)',
219
+ 'ak-fl-9xl': 'clamp(5.25rem, 4.73rem + 1.62vw, 7rem)',
220
+ // Display scale
221
+ 'ak-display-xs': 'clamp(0.75rem, 0.7rem + 0.15vw, 0.875rem)',
222
+ 'ak-display-sm': 'clamp(0.875rem, 0.83rem + 0.19vw, 1rem)',
223
+ 'ak-display-base': 'clamp(1rem, 0.94rem + 0.28vw, 1.1875rem)',
224
+ 'ak-display-lg': 'clamp(1.125rem, 1.01rem + 0.52vw, 1.5rem)',
225
+ 'ak-display-xl': 'clamp(1.25rem, 1.07rem + 0.83vw, 1.875rem)',
226
+ 'ak-display-2xl': 'clamp(1.5rem, 1.2rem + 1.11vw, 2.25rem)',
227
+ 'ak-display-3xl': 'clamp(1.875rem, 1.42rem + 1.67vw, 3rem)',
228
+ 'ak-display-4xl': 'clamp(2.25rem, 1.58rem + 2.5vw, 3.75rem)',
229
+ 'ak-display-5xl': 'clamp(3rem, 2.07rem + 3.47vw, 5.25rem)',
230
+ 'ak-display-6xl': 'clamp(3.75rem, 2.5rem + 4.63vw, 7rem)',
231
+ 'ak-display-7xl': 'clamp(4.5rem, 3.06rem + 5.56vw, 8rem)',
232
+ 'ak-display-8xl': 'clamp(5rem, 3.06rem + 6.94vw, 9rem)',
233
+ 'ak-display-9xl': 'clamp(5.5rem, 3.06rem + 7.64vw, 10rem)',
234
+ },
235
+
236
+ /* ── Line Height ── */
237
+ lineHeight: {
238
+ 'ak-display': 'var(--leading-ak-display)',
239
+ 'ak-tighter': 'var(--leading-ak-tighter)',
240
+ 'ak-none': 'var(--leading-ak-none)',
241
+ 'ak-tight': 'var(--leading-ak-tight)',
242
+ 'ak-snug': 'var(--leading-ak-snug)',
243
+ 'ak-normal': 'var(--leading-ak-normal)',
244
+ 'ak-relaxed': 'var(--leading-ak-relaxed)',
245
+ 'ak-prose': 'var(--leading-ak-prose)',
246
+ 'ak-loose': 'var(--leading-ak-loose)',
247
+ },
248
+
249
+ /* ── Letter Spacing ── */
250
+ letterSpacing: {
251
+ 'ak-tighter': 'var(--tracking-ak-tighter)',
252
+ 'ak-tight': 'var(--tracking-ak-tight)',
253
+ 'ak-subtle': 'var(--tracking-ak-subtle)',
254
+ 'ak-normal': 'var(--tracking-ak-normal)',
255
+ 'ak-wide': 'var(--tracking-ak-wide)',
256
+ 'ak-wider': 'var(--tracking-ak-wider)',
257
+ 'ak-widest': 'var(--tracking-ak-widest)',
258
+ 'ak-section': 'var(--tracking-ak-section)',
259
+ },
260
+
261
+ /* ── Border Radius ── */
262
+ borderRadius: {
263
+ 'ak-none': 'var(--radius-ak-none)',
264
+ 'ak-sm': 'var(--radius-ak-sm)',
265
+ 'ak-md': 'var(--radius-ak-md)',
266
+ 'ak-lg': 'var(--radius-ak-lg)',
267
+ 'ak-xl': 'var(--radius-ak-xl)',
268
+ 'ak-2xl': 'var(--radius-ak-2xl)',
269
+ 'ak-3xl': 'var(--radius-ak-3xl)',
270
+ 'ak-full': 'var(--radius-ak-full)',
271
+ 'ak-input': 'var(--radius-ak-input)',
272
+ // Neobrutalist
273
+ 'ak-brutal': 'var(--radius-ak-brutal)',
274
+ 'ak-brutal-sm': 'var(--radius-ak-brutal-sm)',
275
+ },
276
+
277
+ /* ── Border Width ── */
278
+ borderWidth: {
279
+ 'ak-brutal': 'var(--border-ak-brutal)',
280
+ 'ak-brutal-lg': 'var(--border-ak-brutal-lg)',
281
+ },
282
+
283
+ /* ── Box Shadow ── */
284
+ boxShadow: {
285
+ 'ak-xs': 'var(--shadow-ak-xs)',
286
+ 'ak-sm': 'var(--shadow-ak-sm)',
287
+ 'ak-md': 'var(--shadow-ak-md)',
288
+ 'ak-lg': 'var(--shadow-ak-lg)',
289
+ 'ak-xl': 'var(--shadow-ak-xl)',
290
+ 'ak-2xl': 'var(--shadow-ak-2xl)',
291
+ 'ak-focus': 'var(--shadow-ak-focus)',
292
+ 'ak-focus-primary': 'var(--shadow-ak-focus-primary)',
293
+ 'ak-focus-danger': 'var(--shadow-ak-focus-danger)',
294
+ 'ak-focus-success': 'var(--shadow-ak-focus-success)',
295
+ // Neobrutalist
296
+ 'ak-brutal-xs': 'var(--shadow-ak-brutal-xs)',
297
+ 'ak-brutal-sm': 'var(--shadow-ak-brutal-sm)',
298
+ 'ak-brutal': 'var(--shadow-ak-brutal)',
299
+ 'ak-brutal-lg': 'var(--shadow-ak-brutal-lg)',
300
+ 'ak-brutal-xl': 'var(--shadow-ak-brutal-xl)',
301
+ 'ak-brutal-none': '0 0 0 0 #000',
302
+ },
303
+
304
+ /* ── Max Width (containers) ── */
305
+ maxWidth: {
306
+ 'ak-page': 'var(--container-ak-page)',
307
+ 'ak-xs': 'var(--container-ak-xs)',
308
+ 'ak-sm': 'var(--container-ak-sm)',
309
+ 'ak-md': 'var(--container-ak-md)',
310
+ 'ak-lg': 'var(--container-ak-lg)',
311
+ 'ak-xl': 'var(--container-ak-xl)',
312
+ 'ak-2xl': 'var(--container-ak-2xl)',
313
+ 'ak-3xl': 'var(--container-ak-3xl)',
314
+ 'ak-4xl': 'var(--container-ak-4xl)',
315
+ 'ak-prose': 'var(--container-ak-prose)',
316
+ },
317
+
318
+ /* ── Z-Index (Chakra-inspired scale) ── */
319
+ zIndex: {
320
+ 'ak-base': 'var(--z-ak-base)',
321
+ 'ak-docked': 'var(--z-ak-docked)',
322
+ 'ak-dropdown': 'var(--z-ak-dropdown)',
323
+ 'ak-sticky': 'var(--z-ak-sticky)',
324
+ 'ak-banner': 'var(--z-ak-banner)',
325
+ 'ak-overlay': 'var(--z-ak-overlay)',
326
+ 'ak-modal': 'var(--z-ak-modal)',
327
+ 'ak-popover': 'var(--z-ak-popover)',
328
+ 'ak-toast': 'var(--z-ak-toast)',
329
+ 'ak-tooltip': 'var(--z-ak-tooltip)',
330
+ },
331
+
332
+ /* ── Height ── (spacing + named heights) */
333
+ height: {
334
+ ...AK_SPACING,
335
+ 'ak-nav': 'var(--height-ak-nav)',
336
+ 'ak-touch': 'var(--height-ak-touch)',
337
+ 'ak-control-sm': 'var(--height-ak-control-sm)',
338
+ 'ak-control-md': 'var(--height-ak-control-md)',
339
+ 'ak-control-lg': 'var(--height-ak-control-lg)',
340
+ 'ak-control-xl': 'var(--height-ak-control-xl)',
341
+ 'ak-row-compact': 'var(--height-ak-row-compact)',
342
+ 'ak-row-default': 'var(--height-ak-row-default)',
343
+ 'ak-row-comfortable': 'var(--height-ak-row-comfortable)',
344
+ },
345
+
346
+ /* ── Min Height ── */
347
+ minHeight: {
348
+ ...AK_SPACING,
349
+ 'ak-nav': 'var(--height-ak-nav)',
350
+ 'ak-touch': 'var(--height-ak-touch)',
351
+ 'ak-touch-min': 'var(--size-ak-touch-min)',
352
+ 'ak-control-sm': 'var(--height-ak-control-sm)',
353
+ 'ak-control-md': 'var(--height-ak-control-md)',
354
+ 'ak-control-lg': 'var(--height-ak-control-lg)',
355
+ 'ak-control-xl': 'var(--height-ak-control-xl)',
356
+ 'ak-row-compact': 'var(--height-ak-row-compact)',
357
+ 'ak-row-default': 'var(--height-ak-row-default)',
358
+ 'ak-row-comfortable': 'var(--height-ak-row-comfortable)',
359
+ },
360
+
361
+ /* ── Width ── */
362
+ width: {
363
+ ...AK_SPACING,
364
+ 'ak-touch': 'var(--width-ak-touch)',
365
+ 'ak-panel-width': 'var(--size-ak-panel-width)',
366
+ 'ak-sidebar-collapsed': 'var(--width-ak-sidebar-collapsed)',
367
+ 'ak-sidebar-expanded': 'var(--width-ak-sidebar-expanded)',
368
+ },
369
+
370
+ /* ── Min Width ── */
371
+ minWidth: {
372
+ ...AK_SPACING,
373
+ 'ak-touch': 'var(--width-ak-touch)',
374
+ 'ak-panel-width': 'var(--size-ak-panel-width)',
375
+ 'ak-sidebar-collapsed': 'var(--width-ak-sidebar-collapsed)',
376
+ },
377
+
378
+ /* ── Size (width + height shorthand) ── */
379
+ size: {
380
+ ...AK_SPACING,
381
+ 'ak-icon-xs': 'var(--size-ak-icon-xs)',
382
+ 'ak-icon-sm': 'var(--size-ak-icon-sm)',
383
+ 'ak-icon-md': 'var(--size-ak-icon-md)',
384
+ 'ak-icon-lg': 'var(--size-ak-icon-lg)',
385
+ 'ak-icon-xl': 'var(--size-ak-icon-xl)',
386
+ 'ak-icon-2xl': 'var(--size-ak-icon-2xl)',
387
+ 'ak-icon-3xl': 'var(--size-ak-icon-3xl)',
388
+ 'ak-avatar-sm': 'var(--size-ak-avatar-sm)',
389
+ 'ak-avatar-md': 'var(--size-ak-avatar-md)',
390
+ 'ak-avatar-lg': 'var(--size-ak-avatar-lg)',
391
+ 'ak-avatar-xl': 'var(--size-ak-avatar-xl)',
392
+ 'ak-avatar-2xl': 'var(--size-ak-avatar-2xl)',
393
+ 'ak-avatar-3xl': 'var(--size-ak-avatar-3xl)',
394
+ 'ak-touch': 'var(--width-ak-touch)',
395
+ 'ak-touch-min': 'var(--size-ak-touch-min)',
396
+ },
397
+
398
+ /* ── Transition Duration ── */
399
+ transitionDuration: {
400
+ 'ak-fast': 'var(--duration-ak-fast)',
401
+ 'ak-base': 'var(--duration-ak-base)',
402
+ 'ak-slow': 'var(--duration-ak-slow)',
403
+ },
404
+
405
+ /* ── Transition Timing Function ── */
406
+ transitionTimingFunction: {
407
+ 'ak-default': 'var(--ease-ak-default)',
408
+ 'ak-in': 'var(--ease-ak-in)',
409
+ 'ak-out': 'var(--ease-ak-out)',
410
+ 'ak-spring': 'var(--ease-ak-spring)',
411
+ 'ak-bounce': 'var(--ease-ak-bounce)',
412
+ },
413
+ },
414
+ },
415
+ }
416
+ )