@jaimevalasek/aioson 1.30.0 → 1.30.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.
Files changed (93) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/docs/design-previews/cognitive-core-ui-auth.html +95 -0
  3. package/docs/design-previews/cognitive-core-ui-kanban.html +231 -0
  4. package/docs/design-previews/cognitive-core-ui-list-detail.html +174 -0
  5. package/docs/design-previews/cognitive-core-ui-preview.css +1315 -0
  6. package/docs/design-previews/cognitive-core-ui-settings.html +142 -0
  7. package/docs/design-previews/cognitive-core-ui-website.html +190 -1009
  8. package/docs/design-previews/cognitive-core-ui.html +281 -463
  9. package/docs/design-previews/index.html +83 -31
  10. package/package.json +1 -1
  11. package/src/constants.js +578 -514
  12. package/template/.aioson/docs/integrations/dashboard-app-form-publish-mapping.md +183 -0
  13. package/template/.aioson/docs/play/README.md +74 -0
  14. package/template/.aioson/docs/play/agent-usage-guide.md +112 -0
  15. package/template/.aioson/docs/play/app-compatibility-guide.md +117 -0
  16. package/template/.aioson/docs/play/auth-services-and-testing.md +235 -0
  17. package/template/.aioson/docs/play/llm-data-and-bindings.md +238 -0
  18. package/template/.aioson/docs/play/manifest-and-runtime.md +267 -0
  19. package/template/.aioson/docs/play/source-map.md +104 -0
  20. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +266 -243
  21. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
  22. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
  23. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
  24. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
  25. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
  26. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +485 -482
  27. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +386 -387
  28. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +228 -205
  29. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
  30. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
  31. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
  32. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
  33. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
  34. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
  35. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
  36. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +233 -210
  37. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
  38. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
  39. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
  40. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
  41. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
  42. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
  43. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
  44. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +239 -203
  45. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
  46. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +417 -407
  47. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +289 -272
  48. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +525 -524
  49. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
  50. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +355 -289
  51. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +443 -437
  52. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +245 -222
  53. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
  54. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
  55. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
  56. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
  57. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
  58. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
  59. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
  60. package/template/.aioson/skills/design/interface-design/SKILL.md +68 -47
  61. package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
  62. package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
  63. package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +92 -71
  64. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
  65. package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
  66. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +236 -213
  67. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
  68. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
  69. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
  70. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
  71. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
  72. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
  73. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
  74. package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +83 -62
  75. package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
  76. package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
  77. package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
  78. package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
  79. package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
  80. package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +94 -66
  81. package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +366 -366
  82. package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
  83. package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
  84. package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
  85. package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +161 -161
  86. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +232 -209
  87. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
  88. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
  89. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
  90. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
  91. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
  92. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
  93. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -289
@@ -1,355 +1,355 @@
1
- # Motion — Glassmorphism UI
2
-
3
- Animation and transition specifications. Glass motion is defined by blur transitions, opacity shifts, and fluid easing — not bounce or spring.
4
-
5
- ---
6
-
7
- ## Principles
8
-
9
- - **Fluid**: movements smooth as a surface of water. Generous ease-out, never bounce, never overshoot.
10
- - **Layered**: animations respect the depth layers — elements closer to the user animate faster than those further away. Cards animate faster than the background gradient.
11
- - **Luminous**: opacity and blur transitions are first-class citizens (not just position/scale). The "frosting" of a surface appearing or disappearing is a core motion type.
12
- - **Effortless**: nothing should look like it is "trying". Natural movements, no dramatic entrances unless the product is explicitly theatrical (media player, landing hero).
13
-
14
- ---
15
-
16
- ## Timing Tokens
17
-
18
- ```css
19
- --transition-fast: 120ms ease;
20
- --transition-base: 200ms ease;
21
- --transition-slow: 350ms cubic-bezier(0.16, 1, 0.3, 1);
22
- --transition-glass: backdrop-filter 300ms ease,
23
- background 300ms ease,
24
- border-color 300ms ease,
25
- box-shadow 300ms ease;
26
- --transition-hero: 600ms cubic-bezier(0.16, 1, 0.3, 1);
27
- ```
28
-
29
- `cubic-bezier(0.16, 1, 0.3, 1)` is the smooth deceleration curve — fast start, elegant stop. Use it for entrances and meaningful state changes. Use `ease` for hover/micro-interactions.
30
-
31
- ---
32
-
33
- ## Entrance Animations
34
-
35
- ### 1. Glass Fade In
36
- Card appears as if condensing from air — opacity and blur materialize simultaneously.
37
-
38
- ```css
39
- @keyframes glass-fade-in {
40
- from {
41
- opacity: 0;
42
- backdrop-filter: blur(0px);
43
- }
44
- to {
45
- opacity: 1;
46
- backdrop-filter: var(--glass-blur-md);
47
- }
48
- }
49
- .glass-fade-in {
50
- animation: glass-fade-in 400ms ease-out forwards;
51
- }
52
- ```
53
-
54
- Use for: initial page load of glass cards, modal appearance.
55
-
56
- ### 2. Float Up
57
- Card floats up and materializes — the primary entrance for dashboards and stagger lists.
58
-
59
- ```css
60
- @keyframes float-up {
61
- from {
62
- opacity: 0;
63
- transform: translateY(16px);
64
- backdrop-filter: blur(0px);
65
- }
66
- to {
67
- opacity: 1;
68
- transform: translateY(0);
69
- backdrop-filter: var(--glass-blur-md);
70
- }
71
- }
72
- .float-up {
73
- animation: float-up 450ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
74
- }
75
- ```
76
-
77
- Use for: dashboard cards on load, stagger card groups, stat cards appearing.
78
-
79
- ### 3. Scale Materialize
80
- Element scales up from 95% and solidifies — for modals, dropdowns, and menus.
81
-
82
- ```css
83
- @keyframes scale-materialize {
84
- from {
85
- opacity: 0;
86
- transform: scale(0.95);
87
- backdrop-filter: blur(0px);
88
- }
89
- to {
90
- opacity: 1;
91
- transform: scale(1);
92
- backdrop-filter: var(--glass-blur-lg);
93
- }
94
- }
95
- .scale-materialize {
96
- animation: scale-materialize 350ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
97
- }
98
- ```
99
-
100
- Use for: modal open, dropdown menu, context menu, tooltip appearance.
101
-
102
- ### 4. Glass Slide
103
- Slides in from a direction and materializes — for drawers, panels, and side sheets.
104
-
105
- ```css
106
- @keyframes glass-slide-right {
107
- from {
108
- opacity: 0;
109
- transform: translateX(-20px);
110
- backdrop-filter: blur(0px);
111
- }
112
- to {
113
- opacity: 1;
114
- transform: translateX(0);
115
- backdrop-filter: var(--glass-blur-lg);
116
- }
117
- }
118
- @keyframes glass-slide-up {
119
- from {
120
- opacity: 0;
121
- transform: translateY(20px);
122
- backdrop-filter: blur(0px);
123
- }
124
- to {
125
- opacity: 1;
126
- transform: translateY(0);
127
- backdrop-filter: var(--glass-blur-lg);
128
- }
129
- }
130
- ```
131
-
132
- Use for: sidebar opening (slide-right), bottom sheet (slide-up on mobile), toast notifications (slide-up from bottom-right).
133
-
134
- ### 5. Orb Pulse
135
- Background decorative gradient orbs appear softly for landing pages and auth pages.
136
-
137
- ```css
138
- @keyframes orb-pulse {
139
- from {
140
- opacity: 0;
141
- transform: scale(0.8);
142
- }
143
- to {
144
- opacity: 0.45;
145
- transform: scale(1);
146
- }
147
- }
148
- .orb {
149
- animation: orb-pulse 800ms ease-out forwards;
150
- }
151
- ```
152
-
153
- Use for: decorative gradient blobs on landing pages, auth backgrounds. These should be slow and atmospheric.
154
-
155
- ---
156
-
157
- ## Glass-Specific Animations
158
-
159
- ### 1. Blur Shift (nav on scroll)
160
- Navigation glass becomes more opaque and blurred as the user scrolls — structural, not decorative.
161
-
162
- ```css
163
- /* Applied via JS, toggling a class based on scrollY */
164
- .nav-bar {
165
- background: var(--glass-bg);
166
- transition: var(--transition-glass);
167
- }
168
- .nav-bar.scrolled {
169
- background: var(--glass-bg-hover);
170
- }
171
- .nav-bar.deep-scrolled {
172
- background: var(--glass-bg-active);
173
- }
174
- ```
175
-
176
- Breakpoints: `scrollY > 20` → scrolled, `scrollY > 80` → deep-scrolled.
177
-
178
- ### 2. Opacity Frost (card hover)
179
- The card's glass becomes more opaque on hover — the primary hover behavior for all glass cards.
180
-
181
- ```css
182
- .glass-card {
183
- background: var(--glass-bg);
184
- box-shadow: var(--shadow-sm), var(--shadow-inner);
185
- transition: var(--transition-glass);
186
- }
187
- .glass-card:hover {
188
- background: var(--glass-bg-hover);
189
- box-shadow: var(--shadow-md), var(--shadow-inner);
190
- }
191
- ```
192
-
193
- Duration: 200ms — fast enough to feel responsive, slow enough to feel smooth.
194
-
195
- ### 3. Glow Pulse (featured/highlighted elements)
196
- Subtle accent glow pulsing for featured cards, stat heroes, and highlighted elements.
197
-
198
- ```css
199
- @keyframes glow-pulse {
200
- 0%, 100% { box-shadow: var(--shadow-md), 0 0 20px rgba(124, 58, 237, 0.10); }
201
- 50% { box-shadow: var(--shadow-md), 0 0 40px rgba(124, 58, 237, 0.20); }
202
- }
203
- .glass-card--glow {
204
- animation: glow-pulse 2s ease-in-out infinite;
205
- }
206
- ```
207
-
208
- Use sparingly — only for the 1 "hero" element per screen. Not for every card.
209
-
210
- ### 4. Shimmer (skeleton loaders)
211
- Gradient light sweeping across glass surface — the loading state for glass components.
212
-
213
- ```css
214
- @keyframes shimmer {
215
- to { transform: translateX(100%); }
216
- }
217
- .skeleton {
218
- position: relative;
219
- overflow: hidden;
220
- background: var(--glass-bg);
221
- }
222
- .skeleton::after {
223
- content: '';
224
- position: absolute;
225
- inset: 0;
226
- background: linear-gradient(
227
- 90deg,
228
- transparent 0%,
229
- rgba(255, 255, 255, 0.10) 50%,
230
- transparent 100%
231
- );
232
- transform: translateX(-100%);
233
- animation: shimmer 1.5s infinite;
234
- }
235
- ```
236
-
237
- ### 5. Aurora Shift (animated background — landing only)
238
- Very slow color hue shift on the aurora gradient background.
239
-
240
- ```css
241
- @keyframes aurora-shift {
242
- 0% { filter: hue-rotate(0deg); }
243
- 50% { filter: hue-rotate(15deg); }
244
- 100% { filter: hue-rotate(0deg); }
245
- }
246
- body[data-aurora] {
247
- animation: aurora-shift 10s ease-in-out infinite;
248
- }
249
- ```
250
-
251
- Constraint: only use on landing pages. Never inside apps or dashboards. Keep cycle slow (8-12s). Intensity very low (max 20deg hue rotation).
252
-
253
- ---
254
-
255
- ## Stagger
256
-
257
- When animating multiple cards into view simultaneously:
258
-
259
- - **Delay per item**: 50ms (between warm-craft at 60ms and clean-saas at 40ms)
260
- - **Maximum stagger group**: 6 items
261
- - **Default animation**: `float-up` with staggered delay
262
- - **Implementation**: CSS custom property or inline `animation-delay`
263
-
264
- ```css
265
- .stagger-item:nth-child(1) { animation-delay: 0ms; }
266
- .stagger-item:nth-child(2) { animation-delay: 50ms; }
267
- .stagger-item:nth-child(3) { animation-delay: 100ms; }
268
- .stagger-item:nth-child(4) { animation-delay: 150ms; }
269
- .stagger-item:nth-child(5) { animation-delay: 200ms; }
270
- .stagger-item:nth-child(6) { animation-delay: 250ms; }
271
- ```
272
-
273
- ---
274
-
275
- ## Hover States (summary)
276
-
277
- | Element | Hover behavior | Duration |
278
- |---------|---------------|----------|
279
- | Glass Card | `glass-bg` → `glass-bg-hover` + `shadow-sm` → `shadow-md` | 200ms |
280
- | Primary Button | `brightness(1.05)` + `shadow-sm` → `shadow-md` | 120ms |
281
- | Glass Button | `glass-bg` → `glass-bg-hover` | 120ms |
282
- | Nav items (sidebar) | `transparent` → `glass-bg-hover` | 150ms |
283
- | Nav links (website) | `text-secondary` → `text-heading` | 150ms |
284
- | Logo cloud | `grayscale opacity-50` → `color opacity-100` | 200ms |
285
- | Links | underline opacity `0` → `1` | 150ms |
286
- | Images in glass frame | `scale(1)` → `scale(1.02)` inside `overflow: hidden` | 300ms |
287
-
288
- ---
289
-
290
- ## Scroll Animations (websites only)
291
-
292
- ### Parallax Orbs
293
- Background gradient orbs move at a slower rate than the scroll:
294
- ```css
295
- /* Applied via JS with requestAnimationFrame */
296
- .orb {
297
- transform: translateY(calc(var(--scroll-y) * 0.3px));
298
- }
299
- ```
300
- Multiplier: 0.3-0.5 (orbs move at 30-50% of scroll speed).
301
-
302
- ### Section Reveal
303
- Glass cards and sections fade up as they enter the viewport:
304
- ```javascript
305
- const observer = new IntersectionObserver(
306
- (entries) => entries.forEach(e => {
307
- if (e.isIntersecting) e.target.classList.add('float-up');
308
- }),
309
- { threshold: 0.1 }
310
- );
311
- document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
312
- ```
313
- Threshold: 0.1 — triggers when 10% of element is visible.
314
-
315
- ### Nav Frost (scroll-triggered)
316
- Navigation glass increases opacity as scroll position increases — see Blur Shift above.
317
-
318
- ---
319
-
320
- ## Page Transitions
321
-
322
- | Transition | In | Out |
323
- |-----------|-----|-----|
324
- | Route change (SPA) | `glass-fade-in` 350ms + `float-up` 350ms | `opacity` 0, 200ms |
325
- | Modal open | `scale-materialize` 300ms | `opacity + scale(0.97)` 150ms |
326
- | Bottom sheet open | `glass-slide-up` 350ms | `glass-slide-up` reversed 250ms |
327
- | Tab content | `opacity 0→1` 200ms | `opacity 1→0` 150ms |
328
- | Toast in | `glass-slide-up` 350ms | `opacity 1→0 + translateY(8px)` 200ms |
329
- | Dropdown open | `scale-materialize` 200ms | `opacity 1→0 + scale(0.97)` 150ms |
330
-
331
- ---
332
-
333
- ## Reduced Motion
334
-
335
- **Mandatory**: always respect `prefers-reduced-motion: reduce`.
336
-
337
- ```css
338
- @media (prefers-reduced-motion: reduce) {
339
- *,
340
- *::before,
341
- *::after {
342
- animation-duration: 0.01ms !important;
343
- animation-iteration-count: 1 !important;
344
- transition-duration: 0.01ms !important;
345
- }
346
- }
347
- ```
348
-
349
- Specific overrides for glass:
350
- - No animated shimmer on skeletons — use static `glass-bg`
351
- - No `glow-pulse` — use static `shadow-glow`
352
- - No `aurora-shift` — use static gradient
353
- - No parallax orbs orbs stay fixed
354
- - Glass effects (blur, opacity, borders) remain — they are static visual properties, not animations
355
- - Hover states: instant transitions (no 200ms transitions — snap immediately)
1
+ # Motion — Glassmorphism UI
2
+
3
+ Animation and transition specifications. Glass motion is defined by blur transitions, opacity shifts, and fluid easing — not bounce or spring.
4
+
5
+ ---
6
+
7
+ ## Principles
8
+
9
+ - **Fluid**: movements smooth as a surface of water. Generous ease-out, never bounce, never overshoot.
10
+ - **Layered**: animations respect the depth layers — elements closer to the user animate faster than those further away. Cards animate faster than the background gradient.
11
+ - **Luminous**: opacity and blur transitions are first-class citizens (not just position/scale). The "frosting" of a surface appearing or disappearing is a core motion type.
12
+ - **Effortless**: nothing should look like it is "trying". Natural movements, no dramatic entrances unless the product is explicitly theatrical (media player, landing hero).
13
+
14
+ ---
15
+
16
+ ## Timing Tokens
17
+
18
+ ```css
19
+ --transition-fast: 120ms ease;
20
+ --transition-base: 200ms ease;
21
+ --transition-slow: 350ms cubic-bezier(0.16, 1, 0.3, 1);
22
+ --transition-glass: backdrop-filter 300ms ease,
23
+ background 300ms ease,
24
+ border-color 300ms ease,
25
+ box-shadow 300ms ease;
26
+ --transition-hero: 600ms cubic-bezier(0.16, 1, 0.3, 1);
27
+ ```
28
+
29
+ `cubic-bezier(0.16, 1, 0.3, 1)` is the smooth deceleration curve — fast start, elegant stop. Use it for entrances and meaningful state changes. Use `ease` for hover/micro-interactions.
30
+
31
+ ---
32
+
33
+ ## Entrance Animations
34
+
35
+ ### 1. Glass Fade In
36
+ Card appears as if condensing from air — opacity and blur materialize simultaneously.
37
+
38
+ ```css
39
+ @keyframes glass-fade-in {
40
+ from {
41
+ opacity: 0;
42
+ backdrop-filter: blur(0px);
43
+ }
44
+ to {
45
+ opacity: 1;
46
+ backdrop-filter: var(--glass-blur-md);
47
+ }
48
+ }
49
+ .glass-fade-in {
50
+ animation: glass-fade-in 400ms ease-out forwards;
51
+ }
52
+ ```
53
+
54
+ Use for: initial page load of glass cards, modal appearance.
55
+
56
+ ### 2. Float Up
57
+ Card floats up and materializes — the primary entrance for dashboards and stagger lists.
58
+
59
+ ```css
60
+ @keyframes float-up {
61
+ from {
62
+ opacity: 0;
63
+ transform: translateY(16px);
64
+ backdrop-filter: blur(0px);
65
+ }
66
+ to {
67
+ opacity: 1;
68
+ transform: translateY(0);
69
+ backdrop-filter: var(--glass-blur-md);
70
+ }
71
+ }
72
+ .float-up {
73
+ animation: float-up 450ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
74
+ }
75
+ ```
76
+
77
+ Use for: dashboard cards on load, stagger card groups, stat cards appearing.
78
+
79
+ ### 3. Scale Materialize
80
+ Element scales up from 95% and solidifies — for modals, dropdowns, and menus.
81
+
82
+ ```css
83
+ @keyframes scale-materialize {
84
+ from {
85
+ opacity: 0;
86
+ transform: scale(0.95);
87
+ backdrop-filter: blur(0px);
88
+ }
89
+ to {
90
+ opacity: 1;
91
+ transform: scale(1);
92
+ backdrop-filter: var(--glass-blur-lg);
93
+ }
94
+ }
95
+ .scale-materialize {
96
+ animation: scale-materialize 350ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
97
+ }
98
+ ```
99
+
100
+ Use for: modal open, dropdown menu, context menu, tooltip appearance.
101
+
102
+ ### 4. Glass Slide
103
+ Slides in from a direction and materializes — for drawers, panels, and side sheets.
104
+
105
+ ```css
106
+ @keyframes glass-slide-right {
107
+ from {
108
+ opacity: 0;
109
+ transform: translateX(-20px);
110
+ backdrop-filter: blur(0px);
111
+ }
112
+ to {
113
+ opacity: 1;
114
+ transform: translateX(0);
115
+ backdrop-filter: var(--glass-blur-lg);
116
+ }
117
+ }
118
+ @keyframes glass-slide-up {
119
+ from {
120
+ opacity: 0;
121
+ transform: translateY(20px);
122
+ backdrop-filter: blur(0px);
123
+ }
124
+ to {
125
+ opacity: 1;
126
+ transform: translateY(0);
127
+ backdrop-filter: var(--glass-blur-lg);
128
+ }
129
+ }
130
+ ```
131
+
132
+ Use for: sidebar opening (slide-right), bottom sheet (slide-up on mobile), toast notifications (slide-up from bottom-right).
133
+
134
+ ### 5. Ambient Field Reveal
135
+ Background ambient gradient washes appear softly for landing pages and auth pages.
136
+
137
+ ```css
138
+ @keyframes ambient-field-reveal {
139
+ from {
140
+ opacity: 0;
141
+ transform: scale(0.8);
142
+ }
143
+ to {
144
+ opacity: 0.45;
145
+ transform: scale(1);
146
+ }
147
+ }
148
+ .ambient-field-layer {
149
+ animation: ambient-field-reveal 800ms ease-out forwards;
150
+ }
151
+ ```
152
+
153
+ Use for: ambient gradient washes on landing pages and auth backgrounds. These should be slow and atmospheric.
154
+
155
+ ---
156
+
157
+ ## Glass-Specific Animations
158
+
159
+ ### 1. Blur Shift (nav on scroll)
160
+ Navigation glass becomes more opaque and blurred as the user scrolls — structural, not decorative.
161
+
162
+ ```css
163
+ /* Applied via JS, toggling a class based on scrollY */
164
+ .nav-bar {
165
+ background: var(--glass-bg);
166
+ transition: var(--transition-glass);
167
+ }
168
+ .nav-bar.scrolled {
169
+ background: var(--glass-bg-hover);
170
+ }
171
+ .nav-bar.deep-scrolled {
172
+ background: var(--glass-bg-active);
173
+ }
174
+ ```
175
+
176
+ Breakpoints: `scrollY > 20` → scrolled, `scrollY > 80` → deep-scrolled.
177
+
178
+ ### 2. Opacity Frost (card hover)
179
+ The card's glass becomes more opaque on hover — the primary hover behavior for all glass cards.
180
+
181
+ ```css
182
+ .glass-card {
183
+ background: var(--glass-bg);
184
+ box-shadow: var(--shadow-sm), var(--shadow-inner);
185
+ transition: var(--transition-glass);
186
+ }
187
+ .glass-card:hover {
188
+ background: var(--glass-bg-hover);
189
+ box-shadow: var(--shadow-md), var(--shadow-inner);
190
+ }
191
+ ```
192
+
193
+ Duration: 200ms — fast enough to feel responsive, slow enough to feel smooth.
194
+
195
+ ### 3. Glow Pulse (featured/highlighted elements)
196
+ Subtle accent glow pulsing for featured cards, stat heroes, and highlighted elements.
197
+
198
+ ```css
199
+ @keyframes glow-pulse {
200
+ 0%, 100% { box-shadow: var(--shadow-md), 0 0 20px rgba(124, 58, 237, 0.10); }
201
+ 50% { box-shadow: var(--shadow-md), 0 0 40px rgba(124, 58, 237, 0.20); }
202
+ }
203
+ .glass-card--glow {
204
+ animation: glow-pulse 2s ease-in-out infinite;
205
+ }
206
+ ```
207
+
208
+ Use sparingly — only for the 1 "hero" element per screen. Not for every card.
209
+
210
+ ### 4. Shimmer (skeleton loaders)
211
+ Gradient light sweeping across glass surface — the loading state for glass components.
212
+
213
+ ```css
214
+ @keyframes shimmer {
215
+ to { transform: translateX(100%); }
216
+ }
217
+ .skeleton {
218
+ position: relative;
219
+ overflow: hidden;
220
+ background: var(--glass-bg);
221
+ }
222
+ .skeleton::after {
223
+ content: '';
224
+ position: absolute;
225
+ inset: 0;
226
+ background: linear-gradient(
227
+ 90deg,
228
+ transparent 0%,
229
+ rgba(255, 255, 255, 0.10) 50%,
230
+ transparent 100%
231
+ );
232
+ transform: translateX(-100%);
233
+ animation: shimmer 1.5s infinite;
234
+ }
235
+ ```
236
+
237
+ ### 5. Aurora Shift (animated background — landing only)
238
+ Very slow color hue shift on the aurora gradient background.
239
+
240
+ ```css
241
+ @keyframes aurora-shift {
242
+ 0% { filter: hue-rotate(0deg); }
243
+ 50% { filter: hue-rotate(15deg); }
244
+ 100% { filter: hue-rotate(0deg); }
245
+ }
246
+ body[data-aurora] {
247
+ animation: aurora-shift 10s ease-in-out infinite;
248
+ }
249
+ ```
250
+
251
+ Constraint: only use on landing pages. Never inside apps or dashboards. Keep cycle slow (8-12s). Intensity very low (max 20deg hue rotation).
252
+
253
+ ---
254
+
255
+ ## Stagger
256
+
257
+ When animating multiple cards into view simultaneously:
258
+
259
+ - **Delay per item**: 50ms (between warm-craft at 60ms and clean-saas at 40ms)
260
+ - **Maximum stagger group**: 6 items
261
+ - **Default animation**: `float-up` with staggered delay
262
+ - **Implementation**: CSS custom property or inline `animation-delay`
263
+
264
+ ```css
265
+ .stagger-item:nth-child(1) { animation-delay: 0ms; }
266
+ .stagger-item:nth-child(2) { animation-delay: 50ms; }
267
+ .stagger-item:nth-child(3) { animation-delay: 100ms; }
268
+ .stagger-item:nth-child(4) { animation-delay: 150ms; }
269
+ .stagger-item:nth-child(5) { animation-delay: 200ms; }
270
+ .stagger-item:nth-child(6) { animation-delay: 250ms; }
271
+ ```
272
+
273
+ ---
274
+
275
+ ## Hover States (summary)
276
+
277
+ | Element | Hover behavior | Duration |
278
+ |---------|---------------|----------|
279
+ | Glass Card | `glass-bg` → `glass-bg-hover` + `shadow-sm` → `shadow-md` | 200ms |
280
+ | Primary Button | `brightness(1.05)` + `shadow-sm` → `shadow-md` | 120ms |
281
+ | Glass Button | `glass-bg` → `glass-bg-hover` | 120ms |
282
+ | Nav items (sidebar) | `transparent` → `glass-bg-hover` | 150ms |
283
+ | Nav links (website) | `text-secondary` → `text-heading` | 150ms |
284
+ | Logo cloud | `grayscale opacity-50` → `color opacity-100` | 200ms |
285
+ | Links | underline opacity `0` → `1` | 150ms |
286
+ | Images in glass frame | `scale(1)` → `scale(1.02)` inside `overflow: hidden` | 300ms |
287
+
288
+ ---
289
+
290
+ ## Scroll Animations (websites only)
291
+
292
+ ### Ambient Field Drift
293
+ Ambient gradient field layers move at a slower rate than the scroll:
294
+ ```css
295
+ /* Applied via JS with requestAnimationFrame */
296
+ .ambient-field-layer {
297
+ transform: translateY(calc(var(--scroll-y) * 0.3px));
298
+ }
299
+ ```
300
+ Multiplier: 0.3-0.5 for subtle field drift.
301
+
302
+ ### Section Reveal
303
+ Glass cards and sections fade up as they enter the viewport:
304
+ ```javascript
305
+ const observer = new IntersectionObserver(
306
+ (entries) => entries.forEach(e => {
307
+ if (e.isIntersecting) e.target.classList.add('float-up');
308
+ }),
309
+ { threshold: 0.1 }
310
+ );
311
+ document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
312
+ ```
313
+ Threshold: 0.1 — triggers when 10% of element is visible.
314
+
315
+ ### Nav Frost (scroll-triggered)
316
+ Navigation glass increases opacity as scroll position increases — see Blur Shift above.
317
+
318
+ ---
319
+
320
+ ## Page Transitions
321
+
322
+ | Transition | In | Out |
323
+ |-----------|-----|-----|
324
+ | Route change (SPA) | `glass-fade-in` 350ms + `float-up` 350ms | `opacity` 0, 200ms |
325
+ | Modal open | `scale-materialize` 300ms | `opacity + scale(0.97)` 150ms |
326
+ | Bottom sheet open | `glass-slide-up` 350ms | `glass-slide-up` reversed 250ms |
327
+ | Tab content | `opacity 0→1` 200ms | `opacity 1→0` 150ms |
328
+ | Toast in | `glass-slide-up` 350ms | `opacity 1→0 + translateY(8px)` 200ms |
329
+ | Dropdown open | `scale-materialize` 200ms | `opacity 1→0 + scale(0.97)` 150ms |
330
+
331
+ ---
332
+
333
+ ## Reduced Motion
334
+
335
+ **Mandatory**: always respect `prefers-reduced-motion: reduce`.
336
+
337
+ ```css
338
+ @media (prefers-reduced-motion: reduce) {
339
+ *,
340
+ *::before,
341
+ *::after {
342
+ animation-duration: 0.01ms !important;
343
+ animation-iteration-count: 1 !important;
344
+ transition-duration: 0.01ms !important;
345
+ }
346
+ }
347
+ ```
348
+
349
+ Specific overrides for glass:
350
+ - No animated shimmer on skeletons — use static `glass-bg`
351
+ - No `glow-pulse` — use static `shadow-glow`
352
+ - No `aurora-shift` — use static gradient
353
+ - No ambient-field parallax — background layers stay fixed
354
+ - Glass effects (blur, opacity, borders) remain — they are static visual properties, not animations
355
+ - Hover states: instant transitions (no 200ms transitions — snap immediately)