@jaimevalasek/aioson 1.30.1 → 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 (90) hide show
  1. package/CHANGELOG.md +9 -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 +567 -511
  12. package/template/.aioson/docs/play/README.md +2 -0
  13. package/template/.aioson/docs/play/agent-usage-guide.md +7 -1
  14. package/template/.aioson/docs/play/app-compatibility-guide.md +6 -1
  15. package/template/.aioson/docs/play/auth-services-and-testing.md +16 -1
  16. package/template/.aioson/docs/play/manifest-and-runtime.md +23 -0
  17. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +266 -243
  18. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
  19. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
  20. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
  21. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
  22. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
  23. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +485 -482
  24. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +386 -387
  25. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +228 -205
  26. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
  27. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
  28. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
  29. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
  30. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
  31. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
  32. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
  33. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +233 -210
  34. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
  35. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
  36. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
  37. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
  38. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
  39. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
  40. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
  41. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +239 -203
  42. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
  43. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +417 -407
  44. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +289 -272
  45. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +525 -524
  46. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
  47. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +355 -289
  48. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +443 -437
  49. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +245 -222
  50. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
  51. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
  52. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
  53. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
  54. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
  55. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
  56. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
  57. package/template/.aioson/skills/design/interface-design/SKILL.md +68 -47
  58. package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
  59. package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
  60. package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +92 -71
  61. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
  62. package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
  63. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +236 -213
  64. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
  65. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
  66. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
  67. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
  68. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
  69. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
  70. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
  71. package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +83 -62
  72. package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
  73. package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
  74. package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
  75. package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
  76. package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
  77. package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +94 -66
  78. package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +366 -366
  79. package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
  80. package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
  81. package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
  82. package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +161 -161
  83. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +232 -209
  84. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
  85. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
  86. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
  87. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
  88. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
  89. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
  90. 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)