appostle-installer 0.0.86 → 0.0.87

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 (46) hide show
  1. package/package.json +1 -1
  2. package/dist/appostle-system-prompt.md +0 -28
  3. package/dist/assets/silero_vad.onnx +0 -0
  4. package/dist/mcp-server-templates/adb-illustrator.json +0 -4
  5. package/dist/mcp-server-templates/adb-indesign.json +0 -3
  6. package/dist/mcp-server-templates/adb-photoshop.json +0 -4
  7. package/dist/mcp-server-templates/adb-premiere.json +0 -4
  8. package/dist/mcp-server-templates/better-auth.json +0 -4
  9. package/dist/mcp-server-templates/blender.json +0 -4
  10. package/dist/mcp-server-templates/figma.json +0 -4
  11. package/dist/mcp-server-templates/google.json +0 -8
  12. package/dist/mcp-server-templates/gsap-master.json +0 -4
  13. package/dist/mcp-server-templates/playwright.json +0 -10
  14. package/dist/role-templates/animator/gsap-v1.1.md +0 -348
  15. package/dist/role-templates/architect/website-architect-v2.md +0 -276
  16. package/dist/role-templates/builder/astro-website-v2.md +0 -827
  17. package/dist/role-templates/builder/astro-website-v2.md.bak-prophet +0 -826
  18. package/dist/role-templates/builder/nextjs-website-v2.md +0 -804
  19. package/dist/role-templates/builder/nextjs-website-v3.md +0 -953
  20. package/dist/role-templates/documenter/feature-screenshots-v1.md +0 -218
  21. package/dist/role-templates/onboarding/website-marketing.md +0 -275
  22. package/dist/role-templates/photographer/freepik-mystic-v1.md +0 -369
  23. package/dist/role-templates/scraper/website-via-source-v2.md +0 -775
  24. package/dist/role-templates/scraper/website-via-url-v2.md +0 -1120
  25. package/dist/schema-templates/animations.md +0 -3833
  26. package/dist/schema-templates/buttons.md +0 -541
  27. package/dist/schema-templates/colors.md +0 -178
  28. package/dist/schema-templates/icons.md +0 -45
  29. package/dist/schema-templates/layout.md +0 -8
  30. package/dist/schema-templates/logo.md +0 -68
  31. package/dist/schema-templates/motion.md +0 -53
  32. package/dist/schema-templates/photography.md +0 -144
  33. package/dist/schema-templates/prose/animations.md +0 -3833
  34. package/dist/schema-templates/prose/layout.md +0 -7
  35. package/dist/schema-templates/prose/photography.md +0 -144
  36. package/dist/schema-templates/prose/voice.md +0 -28
  37. package/dist/schema-templates/shadows.md +0 -38
  38. package/dist/schema-templates/shapes.md +0 -15
  39. package/dist/schema-templates/spacing.md +0 -102
  40. package/dist/schema-templates/tokens.json +0 -770
  41. package/dist/schema-templates/typography.md +0 -379
  42. package/dist/schema-templates/voice.md +0 -28
  43. package/dist/shell-integration/zsh/.zshenv +0 -17
  44. package/dist/shell-integration/zsh/appostle-integration.zsh +0 -17
  45. package/dist/worker.js +0 -219557
  46. package/dist/worker.js.map +0 -7
@@ -1,3833 +0,0 @@
1
- ---
2
- description: Animation library — per-prompt toggles drawn from the bundled animations-library. Each enabled entry becomes a candidate the animator role may implement on the site, subject to brand motion tokens and the site context.
3
- variables:
4
- - key: animations.sticky_card_stacks.enabled
5
- type: text
6
- label: "Sticky Card Stacks — enable category"
7
- value: ""
8
- section: sticky_card_stacks
9
- enabled: false
10
- - key: animations.sticky_card_stacks.1
11
- type: text
12
- label: "[stack] Pin the section so it stays in place while the user scrolls — each card in the stack slides up from below and lands on top of the previous one, slightly offset, as if being dealt onto a table one by one."
13
- value: "Pin the section so it stays in place while the user scrolls — each card in the stack slides up from below and lands on top of the previous one, slightly offset, as if being dealt onto a table one by one."
14
- section: sticky_card_stacks
15
- enabled: false
16
- - key: animations.sticky_card_stacks.2
17
- type: text
18
- label: "[depth] As each new card arrives on scroll, push the card underneath it back in 3D space — scaling it down and darkening it slightly — so the stack feels like it has real physical depth, with the freshest card always closest to the viewer."
19
- value: "As each new card arrives on scroll, push the card underneath it back in 3D space — scaling it down and darkening it slightly — so the stack feels like it has real physical depth, with the freshest card always closest to the viewer."
20
- section: sticky_card_stacks
21
- enabled: false
22
- - key: animations.sticky_card_stacks.3
23
- type: text
24
- label: "[reveal] Stack three feature cards on top of each other at the start."
25
- value: "Stack three feature cards on top of each other at the start. As the user scrolls through the pinned section, each card peels away from the bottom of the stack and slides off to the left, revealing the one beneath it."
26
- section: sticky_card_stacks
27
- enabled: false
28
- - key: animations.sticky_card_stacks.4
29
- type: text
30
- label: "[exit] Each card in the stack has its own scroll range — once you've scrolled past a card's content window, it shrinks and slides upward off the top of the stack, collapsing the pile progressively as you move through the section."
31
- value: "Each card in the stack has its own scroll range — once you've scrolled past a card's content window, it shrinks and slides upward off the top of the stack, collapsing the pile progressively as you move through the section."
32
- section: sticky_card_stacks
33
- enabled: false
34
- - key: animations.sticky_card_stacks.5
35
- type: text
36
- label: "[text] The section stays pinned and a headline text changes for each card — as one card scrolls under the next, the outgoing headline splits into characters that scatter upward while the incoming headline assembles from below, letter by letter."
37
- value: "The section stays pinned and a headline text changes for each card — as one card scrolls under the next, the outgoing headline splits into characters that scatter upward while the incoming headline assembles from below, letter by letter."
38
- section: sticky_card_stacks
39
- enabled: false
40
- - key: animations.sticky_card_stacks.6
41
- type: text
42
- label: "[stack] Make a pricing tier section where all three plan cards are stacked directly on top of each other."
43
- value: "Make a pricing tier section where all three plan cards are stacked directly on top of each other. Scrolling fans them out into a side-by-side layout, each card sliding to its final position with a staggered delay and a gentle spring overshoot."
44
- section: sticky_card_stacks
45
- enabled: false
46
- - key: animations.sticky_card_stacks.7
47
- type: text
48
- label: "[layer] Pin a section with five layered cards, each a different background color."
49
- value: "Pin a section with five layered cards, each a different background color. As the user scrolls, each card slides away to reveal the next, and the background color of the entire section crossfades to match the incoming card's palette."
50
- section: sticky_card_stacks
51
- enabled: false
52
- - key: animations.sticky_card_stacks.8
53
- type: text
54
- label: "[depth] Stack cards with a perspective tilt — cards further back in the pile are rotated slightly on the X axis so the stack looks like it's leaning away from you."
55
- value: "Stack cards with a perspective tilt — cards further back in the pile are rotated slightly on the X axis so the stack looks like it's leaning away from you. As each card exits the top, the rest tilt forward one step to close the gap."
56
- section: sticky_card_stacks
57
- enabled: false
58
- - key: animations.sticky_card_stacks.9
59
- type: text
60
- label: "[reveal] Cards are stacked and pinned."
61
- value: "Cards are stacked and pinned. Scrolling causes the top card to split apart — left half slides left, right half slides right — revealing the card below dramatically, like opening a set of double doors."
62
- section: sticky_card_stacks
63
- enabled: false
64
- - key: animations.sticky_card_stacks.10
65
- type: text
66
- label: "[stack] A testimonial section pins itself and cycles through quote cards."
67
- value: "A testimonial section pins itself and cycles through quote cards. Each incoming card starts below, scaled up slightly and transparent, and settles into place while the outgoing card shrinks and fades into the stack behind it."
68
- section: sticky_card_stacks
69
- enabled: false
70
- - key: animations.sticky_card_stacks.11
71
- type: text
72
- label: "[exit] As the user scrolls past each card in the pinned stack, the card crumples — scaling down on both axes rapidly — and drops behind the stack with a slight rotation, like being crushed and discarded."
73
- value: "As the user scrolls past each card in the pinned stack, the card crumples — scaling down on both axes rapidly — and drops behind the stack with a slight rotation, like being crushed and discarded."
74
- section: sticky_card_stacks
75
- enabled: false
76
- - key: animations.sticky_card_stacks.12
77
- type: text
78
- label: "[layer] Each card in the pinned stack has a foreground illustration and a background scene."
79
- value: "Each card in the pinned stack has a foreground illustration and a background scene. As cards transition, the background scenes crossfade at a slower speed than the foreground layers, creating a parallax depth shift between each card change."
80
- section: sticky_card_stacks
81
- enabled: false
82
- - key: animations.sticky_card_stacks.13
83
- type: text
84
- label: "[text] Pin the section and keep a single card frame fixed on screen."
85
- value: "Pin the section and keep a single card frame fixed on screen. As the user scrolls, only the card's content changes — the title clips upward out of view while the new title clips in from below, and the illustration crossfades at half speed."
86
- section: sticky_card_stacks
87
- enabled: false
88
- - key: animations.sticky_card_stacks.14
89
- type: text
90
- label: "[reveal] Stack cards horizontally so they fan out like a hand of playing cards."
91
- value: "Stack cards horizontally so they fan out like a hand of playing cards. As the pinned section scrolls, each card in the fan slides into center stage while the others compress back into the deck on either side."
92
- section: sticky_card_stacks
93
- enabled: false
94
- - key: animations.sticky_card_stacks.15
95
- type: text
96
- label: "[stack] A process steps section stacks all step cards in one spot."
97
- value: "A process steps section stacks all step cards in one spot. Each scroll increment lifts the top card upward with a slight arc path and fades it out, while the next card rises to take its place from below with a spring settle."
98
- section: sticky_card_stacks
99
- enabled: false
100
- - key: animations.sticky_card_stacks.16
101
- type: text
102
- label: "[depth] Give the card stack a real shadow layer — as each new card arrives on top, a shadow rect beneath the stack grows slightly larger and more diffuse, then contracts again as cards exit, making the pile feel heavier or lighter dynamically."
103
- value: "Give the card stack a real shadow layer — as each new card arrives on top, a shadow rect beneath the stack grows slightly larger and more diffuse, then contracts again as cards exit, making the pile feel heavier or lighter dynamically."
104
- section: sticky_card_stacks
105
- enabled: false
106
- - key: animations.sticky_card_stacks.17
107
- type: text
108
- label: "[exit] Once the user has scrolled through all cards in the pinned stack, the whole pile collapses — all remaining cards simultaneously slide to a single point at the center of the screen and disappear, unpin the section and allow scrolling to continue."
109
- value: "Once the user has scrolled through all cards in the pinned stack, the whole pile collapses — all remaining cards simultaneously slide to a single point at the center of the screen and disappear, unpin the section and allow scrolling to continue."
110
- section: sticky_card_stacks
111
- enabled: false
112
- - key: animations.sticky_card_stacks.18
113
- type: text
114
- label: "[layer] Each card sits in a pinned stack with a progress bar along its bottom edge."
115
- value: "Each card sits in a pinned stack with a progress bar along its bottom edge. As the user scrolls through that card's range, the bar fills from left to right — reaching full just as the next card begins its entrance from below."
116
- section: sticky_card_stacks
117
- enabled: false
118
- - key: animations.sticky_card_stacks.19
119
- type: text
120
- label: "[reveal] Cards in the stack have a frosted-glass look."
121
- value: "Cards in the stack have a frosted-glass look. As a new card slides in on scroll, the card behind it blurs progressively until the new one fully covers it — and sharpens back to clear if the user scrolls back up."
122
- section: sticky_card_stacks
123
- enabled: false
124
- - key: animations.sticky_card_stacks.20
125
- type: text
126
- label: "[stack] Pin a section with a deck of case study cards stacked at a slight rotational offset from each other, like a shuffled deck."
127
- value: "Pin a section with a deck of case study cards stacked at a slight rotational offset from each other, like a shuffled deck. As the user scrolls, the top card straightens, comes to the front, expands to fill the frame, then snaps back into the stack as the next one takes over."
128
- section: sticky_card_stacks
129
- enabled: false
130
- - key: animations.horizontal_scroll_panels.enabled
131
- type: text
132
- label: "Horizontal Scroll Panels — enable category"
133
- value: ""
134
- section: horizontal_scroll_panels
135
- enabled: false
136
- - key: animations.horizontal_scroll_panels.1
137
- type: text
138
- label: "[entry] Pin the section so vertical scrolling drives a horizontal journey — each panel slides in from the right as the previous one exits to the left, creating a seamless side-scrolling narrative that feels like flipping through a book."
139
- value: "Pin the section so vertical scrolling drives a horizontal journey — each panel slides in from the right as the previous one exits to the left, creating a seamless side-scrolling narrative that feels like flipping through a book."
140
- section: horizontal_scroll_panels
141
- enabled: false
142
- - key: animations.horizontal_scroll_panels.2
143
- type: text
144
- label: "[parallax] As the horizontal panels scroll into view, the background image inside each panel moves at half the speed of the panel itself, creating a parallax depth effect that makes the scene feel wide and cinematic."
145
- value: "As the horizontal panels scroll into view, the background image inside each panel moves at half the speed of the panel itself, creating a parallax depth effect that makes the scene feel wide and cinematic."
146
- section: horizontal_scroll_panels
147
- enabled: false
148
- - key: animations.horizontal_scroll_panels.3
149
- type: text
150
- label: "[progress] A thin progress bar runs along the bottom of the horizontal scroll section — it fills from left to right in sync with how far the user has scrolled through the panels, snapping to each panel marker with a small pulse."
151
- value: "A thin progress bar runs along the bottom of the horizontal scroll section — it fills from left to right in sync with how far the user has scrolled through the panels, snapping to each panel marker with a small pulse."
152
- section: horizontal_scroll_panels
153
- enabled: false
154
- - key: animations.horizontal_scroll_panels.4
155
- type: text
156
- label: "[entry] Each horizontal panel starts scaled down to 90% and slightly blurred."
157
- value: "Each horizontal panel starts scaled down to 90% and slightly blurred. As it scrolls into the center of the viewport it scales up to full size and sharpens, then scales back down as it exits to the left."
158
- section: horizontal_scroll_panels
159
- enabled: false
160
- - key: animations.horizontal_scroll_panels.5
161
- type: text
162
- label: "[text] The headline text inside each panel is pinned to the left edge as the panel scrolls in — it appears to slide in last, slightly delayed behind the panel itself, as if the words are catching up to their container."
163
- value: "The headline text inside each panel is pinned to the left edge as the panel scrolls in — it appears to slide in last, slightly delayed behind the panel itself, as if the words are catching up to their container."
164
- section: horizontal_scroll_panels
165
- enabled: false
166
- - key: animations.horizontal_scroll_panels.6
167
- type: text
168
- label: "[parallax] Stack three horizontal layers inside each panel — a background scene, a midground illustration, and foreground text — each moving at a different speed as the panel scrolls, building a deep parallax diorama effect."
169
- value: "Stack three horizontal layers inside each panel — a background scene, a midground illustration, and foreground text — each moving at a different speed as the panel scrolls, building a deep parallax diorama effect."
170
- section: horizontal_scroll_panels
171
- enabled: false
172
- - key: animations.horizontal_scroll_panels.7
173
- type: text
174
- label: "[nav] Small dot navigation sits below the horizontal scroll track — as each panel scrolls into view the corresponding dot scales up and fills in, and clicking a dot smoothly tweens the scroll position to that panel."
175
- value: "Small dot navigation sits below the horizontal scroll track — as each panel scrolls into view the corresponding dot scales up and fills in, and clicking a dot smoothly tweens the scroll position to that panel."
176
- section: horizontal_scroll_panels
177
- enabled: false
178
- - key: animations.horizontal_scroll_panels.8
179
- type: text
180
- label: "[entry] Panels enter from the right with a slight rotational tilt — arriving at 5 degrees and settling to 0 as they center — then tilting to minus 5 degrees as they exit left, like pages being turned by hand."
181
- value: "Panels enter from the right with a slight rotational tilt — arriving at 5 degrees and settling to 0 as they center — then tilting to minus 5 degrees as they exit left, like pages being turned by hand."
182
- section: horizontal_scroll_panels
183
- enabled: false
184
- - key: animations.horizontal_scroll_panels.9
185
- type: text
186
- label: "[text] Inside each horizontal panel, the body text is split into lines that animate in one by one from below as the panel reaches center stage, staggered by 80ms each, and reverse out upward as the panel begins to exit."
187
- value: "Inside each horizontal panel, the body text is split into lines that animate in one by one from below as the panel reaches center stage, staggered by 80ms each, and reverse out upward as the panel begins to exit."
188
- section: horizontal_scroll_panels
189
- enabled: false
190
- - key: animations.horizontal_scroll_panels.10
191
- type: text
192
- label: "[color] The background color of the entire section shifts smoothly between a unique hue for each panel as they scroll — the transition begins when the incoming panel is halfway into view and completes as it fully centers."
193
- value: "The background color of the entire section shifts smoothly between a unique hue for each panel as they scroll — the transition begins when the incoming panel is halfway into view and completes as it fully centers."
194
- section: horizontal_scroll_panels
195
- enabled: false
196
- - key: animations.horizontal_scroll_panels.11
197
- type: text
198
- label: "[entry] Each panel has a full-bleed image that starts clipped — a rectangular mask that opens from the center outward as the panel scrolls into place, revealing the image like a camera iris opening."
199
- value: "Each panel has a full-bleed image that starts clipped — a rectangular mask that opens from the center outward as the panel scrolls into place, revealing the image like a camera iris opening."
200
- section: horizontal_scroll_panels
201
- enabled: false
202
- - key: animations.horizontal_scroll_panels.12
203
- type: text
204
- label: "[parallax] The panel images extend beyond the visible area and scroll at 60% of the panel speed, so as you move through the horizontal track you see different portions of each wide image — like panning a camera across a landscape."
205
- value: "The panel images extend beyond the visible area and scroll at 60% of the panel speed, so as you move through the horizontal track you see different portions of each wide image — like panning a camera across a landscape."
206
- section: horizontal_scroll_panels
207
- enabled: false
208
- - key: animations.horizontal_scroll_panels.13
209
- type: text
210
- label: "[nav] An arrow button on the right edge of the section pulses gently to invite interaction."
211
- value: "An arrow button on the right edge of the section pulses gently to invite interaction. Clicking it triggers a smooth GSAP tween to the next panel. It fades out on the last panel and an 'end of story' label fades in its place."
212
- section: horizontal_scroll_panels
213
- enabled: false
214
- - key: animations.horizontal_scroll_panels.14
215
- type: text
216
- label: "[color] Each panel has a colored accent line along its top edge."
217
- value: "Each panel has a colored accent line along its top edge. As the panel scrolls to center, that line expands from a dot at the left edge to full width, then collapses back to a dot at the right edge as the panel exits."
218
- section: horizontal_scroll_panels
219
- enabled: false
220
- - key: animations.horizontal_scroll_panels.15
221
- type: text
222
- label: "[entry] Panels are separated by a thin vertical divider line."
223
- value: "Panels are separated by a thin vertical divider line. As each panel transitions, the divider stretches vertically from 0 to full height with a springy overshoot, holds for a beat, then collapses again as the next panel centers."
224
- section: horizontal_scroll_panels
225
- enabled: false
226
- - key: animations.horizontal_scroll_panels.16
227
- type: text
228
- label: "[text] A large chapter number sits behind each panel's content, oversized and low opacity."
229
- value: "A large chapter number sits behind each panel's content, oversized and low opacity. As the panel scrolls in it moves at 80% speed relative to the panel — arriving slightly late — giving a ghost-like depth to the typography."
230
- section: horizontal_scroll_panels
231
- enabled: false
232
- - key: animations.horizontal_scroll_panels.17
233
- type: text
234
- label: "[parallax] Each horizontal panel contains a floating 3D object."
235
- value: "Each horizontal panel contains a floating 3D object. As the panel scrolls into view the object rotates from a side angle to face-forward, completing its rotation exactly as the panel centers, then rotating away as it exits."
236
- section: horizontal_scroll_panels
237
- enabled: false
238
- - key: animations.horizontal_scroll_panels.18
239
- type: text
240
- label: "[nav] The section title is pinned to the top left during the entire horizontal scroll."
241
- value: "The section title is pinned to the top left during the entire horizontal scroll. As each panel changes, the subtitle below it cross-fades to the current panel's title with a quick clip wipe from left to right."
242
- section: horizontal_scroll_panels
243
- enabled: false
244
- - key: animations.horizontal_scroll_panels.19
245
- type: text
246
- label: "[entry] All horizontal panels start stacked at the right side."
247
- value: "All horizontal panels start stacked at the right side. As the user scrolls, they fan out into the horizontal track one by one with a staggered delay — like a deck of cards being spread across a table from right to left."
248
- section: horizontal_scroll_panels
249
- enabled: false
250
- - key: animations.horizontal_scroll_panels.20
251
- type: text
252
- label: "[color] The cursor changes shape and color to match the active panel as the user scrolls horizontally — growing into a large circle tinted with the panel's accent color, and shrinking back as it transitions between panels."
253
- value: "The cursor changes shape and color to match the active panel as the user scrolls horizontally — growing into a large circle tinted with the panel's accent color, and shrinking back as it transitions between panels."
254
- section: horizontal_scroll_panels
255
- enabled: false
256
- - key: animations.parallax_depth_layers.enabled
257
- type: text
258
- label: "Parallax Depth Layers — enable category"
259
- value: ""
260
- section: parallax_depth_layers
261
- enabled: false
262
- - key: animations.parallax_depth_layers.1
263
- type: text
264
- label: "[depth] Split the hero section into five layers — sky, distant mountains, midground trees, foreground rocks, and floating text — each moving at a progressively faster rate as the user scrolls down, creating a lush sense of physical depth."
265
- value: "Split the hero section into five layers — sky, distant mountains, midground trees, foreground rocks, and floating text — each moving at a progressively faster rate as the user scrolls down, creating a lush sense of physical depth."
266
- section: parallax_depth_layers
267
- enabled: false
268
- - key: animations.parallax_depth_layers.2
269
- type: text
270
- label: "[scale] As the user scrolls past a product image, it scales up slowly from 100% to 115% while the background behind it moves at half the speed — the product feels like it's floating forward out of the scene."
271
- value: "As the user scrolls past a product image, it scales up slowly from 100% to 115% while the background behind it moves at half the speed — the product feels like it's floating forward out of the scene."
272
- section: parallax_depth_layers
273
- enabled: false
274
- - key: animations.parallax_depth_layers.3
275
- type: text
276
- label: "[depth] A cityscape section has four building layers at different opacities and speeds."
277
- value: "A cityscape section has four building layers at different opacities and speeds. The furthest buildings barely move, the closest ones scroll quickly, and a fog overlay between layers thickens as the user scrolls deeper into the scene."
278
- section: parallax_depth_layers
279
- enabled: false
280
- - key: animations.parallax_depth_layers.4
281
- type: text
282
- label: "[rotation] Floating decorative shapes in the background rotate slowly as the user scrolls — circles spin clockwise, triangles counter-clockwise — each at a slightly different rate so the composition feels alive and never repeating."
283
- value: "Floating decorative shapes in the background rotate slowly as the user scrolls — circles spin clockwise, triangles counter-clockwise — each at a slightly different rate so the composition feels alive and never repeating."
284
- section: parallax_depth_layers
285
- enabled: false
286
- - key: animations.parallax_depth_layers.5
287
- type: text
288
- label: "[scale] The section background image scrolls at 40% of the page speed while the foreground content scrolls at 100%, so by the time the section exits the viewport the background has barely moved — making the space feel vast."
289
- value: "The section background image scrolls at 40% of the page speed while the foreground content scrolls at 100%, so by the time the section exits the viewport the background has barely moved — making the space feel vast."
290
- section: parallax_depth_layers
291
- enabled: false
292
- - key: animations.parallax_depth_layers.6
293
- type: text
294
- label: "[depth] A portrait photo sits between two parallax layers — a blurred background pattern moves slowly upward as you scroll, while a foreground color wash moves quickly downward, sandwiching the portrait in a layered composition."
295
- value: "A portrait photo sits between two parallax layers — a blurred background pattern moves slowly upward as you scroll, while a foreground color wash moves quickly downward, sandwiching the portrait in a layered composition."
296
- section: parallax_depth_layers
297
- enabled: false
298
- - key: animations.parallax_depth_layers.7
299
- type: text
300
- label: "[opacity] Each depth layer has a subtle opacity shift tied to scroll position — far layers fade slightly as you scroll down, near layers become more opaque, simulating the atmospheric haze of real distance."
301
- value: "Each depth layer has a subtle opacity shift tied to scroll position — far layers fade slightly as you scroll down, near layers become more opaque, simulating the atmospheric haze of real distance."
302
- section: parallax_depth_layers
303
- enabled: false
304
- - key: animations.parallax_depth_layers.8
305
- type: text
306
- label: "[rotation] Scattered leaf or petal shapes float across the scene at different depths — some large and fast near the viewer, some tiny and slow in the distance — each following a slightly curved path as the page scrolls."
307
- value: "Scattered leaf or petal shapes float across the scene at different depths — some large and fast near the viewer, some tiny and slow in the distance — each following a slightly curved path as the page scrolls."
308
- section: parallax_depth_layers
309
- enabled: false
310
- - key: animations.parallax_depth_layers.9
311
- type: text
312
- label: "[depth] A data dashboard section uses parallax to separate chart layers — the axis and grid lines move at base speed, the bar fills move slightly faster, and the data point labels move fastest — giving the chart a layered, tangible quality."
313
- value: "A data dashboard section uses parallax to separate chart layers — the axis and grid lines move at base speed, the bar fills move slightly faster, and the data point labels move fastest — giving the chart a layered, tangible quality."
314
- section: parallax_depth_layers
315
- enabled: false
316
- - key: animations.parallax_depth_layers.10
317
- type: text
318
- label: "[scale] On scroll, the hero text scales up very slowly from 98% to 105% while the background photo scales in the opposite direction from 105% down to 98% — the text advances toward you as the background retreats."
319
- value: "On scroll, the hero text scales up very slowly from 98% to 105% while the background photo scales in the opposite direction from 105% down to 98% — the text advances toward you as the background retreats."
320
- section: parallax_depth_layers
321
- enabled: false
322
- - key: animations.parallax_depth_layers.11
323
- type: text
324
- label: "[opacity] Three overlapping photo layers sit in a staggered grid."
325
- value: "Three overlapping photo layers sit in a staggered grid. As the user scrolls, each row moves at a different vertical speed, so the photos gradually separate and overlap in new combinations — a living collage that rearranges itself."
326
- section: parallax_depth_layers
327
- enabled: false
328
- - key: animations.parallax_depth_layers.12
329
- type: text
330
- label: "[depth] A technology section has circuit-board line graphics at three depth levels."
331
- value: "A technology section has circuit-board line graphics at three depth levels. The deepest layer moves at 20% scroll speed in a warm tint, the middle at 50% in neutral gray, and the closest at 90% in bright white — receding into the distance."
332
- section: parallax_depth_layers
333
- enabled: false
334
- - key: animations.parallax_depth_layers.13
335
- type: text
336
- label: "[rotation] The section background has a large, very slowly rotating radial pattern — one full rotation over the entire scroll distance of the section — while foreground content scrolls at normal speed over it, creating a hypnotic depth."
337
- value: "The section background has a large, very slowly rotating radial pattern — one full rotation over the entire scroll distance of the section — while foreground content scrolls at normal speed over it, creating a hypnotic depth."
338
- section: parallax_depth_layers
339
- enabled: false
340
- - key: animations.parallax_depth_layers.14
341
- type: text
342
- label: "[scale] A team photo grid uses micro-parallax on hover — when the cursor moves over a photo, the image inside its frame shifts slightly in the opposite direction of the mouse, as if looking through a window at a scene behind the glass."
343
- value: "A team photo grid uses micro-parallax on hover — when the cursor moves over a photo, the image inside its frame shifts slightly in the opposite direction of the mouse, as if looking through a window at a scene behind the glass."
344
- section: parallax_depth_layers
345
- enabled: false
346
- - key: animations.parallax_depth_layers.15
347
- type: text
348
- label: "[opacity] Foreground text paragraphs have a ghost version of themselves slightly offset and scrolling at 95% speed behind them — barely visible at 8% opacity — giving the typography a subtle dimensional shadow as the page moves."
349
- value: "Foreground text paragraphs have a ghost version of themselves slightly offset and scrolling at 95% speed behind them — barely visible at 8% opacity — giving the typography a subtle dimensional shadow as the page moves."
350
- section: parallax_depth_layers
351
- enabled: false
352
- - key: animations.parallax_depth_layers.16
353
- type: text
354
- label: "[depth] Split a landscape illustration into seven SVG layers exported separately."
355
- value: "Split a landscape illustration into seven SVG layers exported separately. Animate each layer at scroll speeds ranging from 10% to 100%, with the nearest layer being the section's interactive content and the furthest being the horizon sky."
356
- section: parallax_depth_layers
357
- enabled: false
358
- - key: animations.parallax_depth_layers.17
359
- type: text
360
- label: "[scale] Product cards in a grid each have a background blob shape that moves on a unique parallax offset — some drifting up, some drifting sideways — so as you scroll the page the blobs shift into new positions behind each card."
361
- value: "Product cards in a grid each have a background blob shape that moves on a unique parallax offset — some drifting up, some drifting sideways — so as you scroll the page the blobs shift into new positions behind each card."
362
- section: parallax_depth_layers
363
- enabled: false
364
- - key: animations.parallax_depth_layers.18
365
- type: text
366
- label: "[rotation] Large typographic characters in the background — oversized initials or a pull quote — drift across the section at 30% scroll speed while rotating 15 degrees over the full scroll distance, anchoring the composition with slow-moving depth."
367
- value: "Large typographic characters in the background — oversized initials or a pull quote — drift across the section at 30% scroll speed while rotating 15 degrees over the full scroll distance, anchoring the composition with slow-moving depth."
368
- section: parallax_depth_layers
369
- enabled: false
370
- - key: animations.parallax_depth_layers.19
371
- type: text
372
- label: "[opacity] A testimonial section uses parallax opacity — the outgoing quote fades to 0 as you scroll while the incoming quote fades from 0 to full, each at a different scroll rate so there's a moment where both are semi-visible and overlapping."
373
- value: "A testimonial section uses parallax opacity — the outgoing quote fades to 0 as you scroll while the incoming quote fades from 0 to full, each at a different scroll rate so there's a moment where both are semi-visible and overlapping."
374
- section: parallax_depth_layers
375
- enabled: false
376
- - key: animations.parallax_depth_layers.20
377
- type: text
378
- label: "[depth] The footer entry uses five layered wave SVG shapes."
379
- value: "The footer entry uses five layered wave SVG shapes. As the footer scrolls into view from the bottom, each wave rises at a different speed — the deepest wave arriving first, the topmost wave last — building the composition layer by layer like a tide coming in."
380
- section: parallax_depth_layers
381
- enabled: false
382
- - key: animations.scroll_driven_video_scrub.enabled
383
- type: text
384
- label: "Scroll Driven Video Scrub — enable category"
385
- value: ""
386
- section: scroll_driven_video_scrub
387
- enabled: false
388
- - key: animations.scroll_driven_video_scrub.1
389
- type: text
390
- label: "[scrub] Pin the section and tie the video currentTime directly to the scroll position — scrolling down advances the video frame by frame, scrolling up rewinds it, so the user is in complete control of the playback like a film editor."
391
- value: "Pin the section and tie the video currentTime directly to the scroll position — scrolling down advances the video frame by frame, scrolling up rewinds it, so the user is in complete control of the playback like a film editor."
392
- section: scroll_driven_video_scrub
393
- enabled: false
394
- - key: animations.scroll_driven_video_scrub.2
395
- type: text
396
- label: "[overlay] As the user scrubs through the video, caption text overlays fade in and out at specific timestamp thresholds — each caption slides up from below, holds while that scene is active, and fades upward as the scrub moves past it."
397
- value: "As the user scrubs through the video, caption text overlays fade in and out at specific timestamp thresholds — each caption slides up from below, holds while that scene is active, and fades upward as the scrub moves past it."
398
- section: scroll_driven_video_scrub
399
- enabled: false
400
- - key: animations.scroll_driven_video_scrub.3
401
- type: text
402
- label: "[scrub] A product assembly video is tied to scroll — as the user scrolls through the pinned section, the product assembles itself piece by piece in the video, and a label for each component fades in on the right side in sync with when that part appears."
403
- value: "A product assembly video is tied to scroll — as the user scrolls through the pinned section, the product assembles itself piece by piece in the video, and a label for each component fades in on the right side in sync with when that part appears."
404
- section: scroll_driven_video_scrub
405
- enabled: false
406
- - key: animations.scroll_driven_video_scrub.4
407
- type: text
408
- label: "[progress] A timeline scrubber UI sits below the pinned video — a playhead marker moves along a track in sync with scroll position, and chapter markers on the track pulse when the scrub reaches them, showing which section of the story you're in."
409
- value: "A timeline scrubber UI sits below the pinned video — a playhead marker moves along a track in sync with scroll position, and chapter markers on the track pulse when the scrub reaches them, showing which section of the story you're in."
410
- section: scroll_driven_video_scrub
411
- enabled: false
412
- - key: animations.scroll_driven_video_scrub.5
413
- type: text
414
- label: "[scrub] An aerial flyover video is scrubbed by scroll."
415
- value: "An aerial flyover video is scrubbed by scroll. At three specific frames, the video pauses and an annotation pin drops onto a location on screen with a spring bounce — the user must scroll further to release the pause and continue the flyover."
416
- section: scroll_driven_video_scrub
417
- enabled: false
418
- - key: animations.scroll_driven_video_scrub.6
419
- type: text
420
- label: "[overlay] The video scrub section has a split layout — the left half shows the video scrubbing, and the right half shows a matching text description that crossfades to the relevant paragraph as each scene in the video is reached by the scroll."
421
- value: "The video scrub section has a split layout — the left half shows the video scrubbing, and the right half shows a matching text description that crossfades to the relevant paragraph as each scene in the video is reached by the scroll."
422
- section: scroll_driven_video_scrub
423
- enabled: false
424
- - key: animations.scroll_driven_video_scrub.7
425
- type: text
426
- label: "[scrub] A before-and-after transformation video is split down the middle with a draggable divider."
427
- value: "A before-and-after transformation video is split down the middle with a draggable divider. The scroll position scrubs the video while the left half shows the before state and the right half shows the after — both halves in sync from the same video source."
428
- section: scroll_driven_video_scrub
429
- enabled: false
430
- - key: animations.scroll_driven_video_scrub.8
431
- type: text
432
- label: "[transition] When the user scrolls out of the video scrub section, the last frame of the video freezes and crossfades into a static hero image of the same scene — a seamless handoff from motion to still as the section transitions out."
433
- value: "When the user scrolls out of the video scrub section, the last frame of the video freezes and crossfades into a static hero image of the same scene — a seamless handoff from motion to still as the section transitions out."
434
- section: scroll_driven_video_scrub
435
- enabled: false
436
- - key: animations.scroll_driven_video_scrub.9
437
- type: text
438
- label: "[scrub] A cooking recipe video scrubs with scroll."
439
- value: "A cooking recipe video scrubs with scroll. Each major step in the recipe is a chapter — when the scrub hits a chapter boundary, the background color of the section changes to a new color associated with that step, and an ingredient list animates in on the side."
440
- section: scroll_driven_video_scrub
441
- enabled: false
442
- - key: animations.scroll_driven_video_scrub.10
443
- type: text
444
- label: "[progress] The scroll progress through the video section is mirrored by a circular countdown ring in the corner — it fills clockwise as the video advances and empties counterclockwise on scroll-up, always showing how far through the video story you are."
445
- value: "The scroll progress through the video section is mirrored by a circular countdown ring in the corner — it fills clockwise as the video advances and empties counterclockwise on scroll-up, always showing how far through the video story you are."
446
- section: scroll_driven_video_scrub
447
- enabled: false
448
- - key: animations.scroll_driven_video_scrub.11
449
- type: text
450
- label: "[overlay] Hotspot markers appear on the video at specific scrub points — small pulsing rings that expand outward from a product detail."
451
- value: "Hotspot markers appear on the video at specific scrub points — small pulsing rings that expand outward from a product detail. Hovering a hotspot pauses the scrub and expands a tooltip card with more information, resuming on mouse-out."
452
- section: scroll_driven_video_scrub
453
- enabled: false
454
- - key: animations.scroll_driven_video_scrub.12
455
- type: text
456
- label: "[scrub] An architectural walkthrough video scrubs with scroll — as the virtual camera moves through the building, room labels animate in from the sides of the screen in sync with when each room is entered in the footage."
457
- value: "An architectural walkthrough video scrubs with scroll — as the virtual camera moves through the building, room labels animate in from the sides of the screen in sync with when each room is entered in the footage."
458
- section: scroll_driven_video_scrub
459
- enabled: false
460
- - key: animations.scroll_driven_video_scrub.13
461
- type: text
462
- label: "[transition] The video scrub section begins with the video at 0% opacity, scaled up to 110%."
463
- value: "The video scrub section begins with the video at 0% opacity, scaled up to 110%. As the user starts scrolling, it fades in and scales down to 100% over the first 20% of the scroll range, then begins scrubbing — an intro that pulls you into the footage."
464
- section: scroll_driven_video_scrub
465
- enabled: false
466
- - key: animations.scroll_driven_video_scrub.14
467
- type: text
468
- label: "[scrub] A scientific visualization video shows a cell dividing."
469
- value: "A scientific visualization video shows a cell dividing. As the scroll scrubs through the video, a data counter on screen updates in sync — displaying the simulated time elapsed, the number of cells, and the division rate — all driven by the same scroll position."
470
- section: scroll_driven_video_scrub
471
- enabled: false
472
- - key: animations.scroll_driven_video_scrub.15
473
- type: text
474
- label: "[overlay] Chapter title cards animate in at the start of each video chapter during scrubbing — the title clips in from the left, holds for a defined scroll range, then clips back out to the right, replaced by the next chapter's title."
475
- value: "Chapter title cards animate in at the start of each video chapter during scrubbing — the title clips in from the left, holds for a defined scroll range, then clips back out to the right, replaced by the next chapter's title."
476
- section: scroll_driven_video_scrub
477
- enabled: false
478
- - key: animations.scroll_driven_video_scrub.16
479
- type: text
480
- label: "[scrub] A fashion lookbook video scrubs with scroll."
481
- value: "A fashion lookbook video scrubs with scroll. The video is full-bleed and the scroll is slow — 600vh for a 30-second clip. Product detail chips float in from the edges when the camera lingers on a garment, each with a springy entrance."
482
- section: scroll_driven_video_scrub
483
- enabled: false
484
- - key: animations.scroll_driven_video_scrub.17
485
- type: text
486
- label: "[transition] When the user reaches the end of the video scrub and keeps scrolling, the video shrinks into the corner of the screen with a smooth layout animation while the rest of the page content scrolls in beneath it — the video becomes a persistent pip player."
487
- value: "When the user reaches the end of the video scrub and keeps scrolling, the video shrinks into the corner of the screen with a smooth layout animation while the rest of the page content scrolls in beneath it — the video becomes a persistent pip player."
488
- section: scroll_driven_video_scrub
489
- enabled: false
490
- - key: animations.scroll_driven_video_scrub.18
491
- type: text
492
- label: "[progress] A waveform visualizer runs below the pinned video — it's a static representation of the video's audio amplitude."
493
- value: "A waveform visualizer runs below the pinned video — it's a static representation of the video's audio amplitude. As the scrub advances, a playhead moves across the waveform and the passed portion fills in with the section's accent color."
494
- section: scroll_driven_video_scrub
495
- enabled: false
496
- - key: animations.scroll_driven_video_scrub.19
497
- type: text
498
- label: "[scrub] A space launch video is pinned and scrubbed."
499
- value: "A space launch video is pinned and scrubbed. At the liftoff moment in the footage, the page background shifts from dark to a warm orange glow, the section shakes with a brief GSAP shake tween, and exhaust plume SVGs animate outward from the bottom of the video frame."
500
- section: scroll_driven_video_scrub
501
- enabled: false
502
- - key: animations.scroll_driven_video_scrub.20
503
- type: text
504
- label: "[overlay] The video scrub section uses a masked reveal — the video sits behind a large text mask, so only the letterforms of a word are visible, showing the video through the typography."
505
- value: "The video scrub section uses a masked reveal — the video sits behind a large text mask, so only the letterforms of a word are visible, showing the video through the typography. As the scrub advances the word changes, cutting to a new mask shape."
506
- section: scroll_driven_video_scrub
507
- enabled: false
508
- - key: animations.text_reveal_on_scroll.enabled
509
- type: text
510
- label: "Text Reveal On Scroll — enable category"
511
- value: ""
512
- section: text_reveal_on_scroll
513
- enabled: false
514
- - key: animations.text_reveal_on_scroll.1
515
- type: text
516
- label: "[line] Split every paragraph into individual lines and wrap each in a clip container."
517
- value: "Split every paragraph into individual lines and wrap each in a clip container. As the section scrolls into view, each line slides up from below its clip boundary with a staggered delay of 60ms per line — clean, editorial, and satisfying."
518
- section: text_reveal_on_scroll
519
- enabled: false
520
- - key: animations.text_reveal_on_scroll.2
521
- type: text
522
- label: "[word] Every word in the hero headline animates in individually as the user scrolls — starting at 0% opacity and translateY 20px, staggered by 40ms per word, so the sentence assembles itself left to right as the section enters the viewport."
523
- value: "Every word in the hero headline animates in individually as the user scrolls — starting at 0% opacity and translateY 20px, staggered by 40ms per word, so the sentence assembles itself left to right as the section enters the viewport."
524
- section: text_reveal_on_scroll
525
- enabled: false
526
- - key: animations.text_reveal_on_scroll.3
527
- type: text
528
- label: "[char] A large pull quote has its characters animated in one by one on scroll, each starting rotated 90 degrees and transparent, snapping to upright and opaque with a springy ease — the text materializes like a typeface being stamped into existence."
529
- value: "A large pull quote has its characters animated in one by one on scroll, each starting rotated 90 degrees and transparent, snapping to upright and opaque with a springy ease — the text materializes like a typeface being stamped into existence."
530
- section: text_reveal_on_scroll
531
- enabled: false
532
- - key: animations.text_reveal_on_scroll.4
533
- type: text
534
- label: "[line] Body text paragraphs reveal line by line as the user scrolls past them — not on section entry, but progressively as each line reaches a trigger point 80% from the top of the viewport, so reading pace matches reveal pace."
535
- value: "Body text paragraphs reveal line by line as the user scrolls past them — not on section entry, but progressively as each line reaches a trigger point 80% from the top of the viewport, so reading pace matches reveal pace."
536
- section: text_reveal_on_scroll
537
- enabled: false
538
- - key: animations.text_reveal_on_scroll.5
539
- type: text
540
- label: "[mask] Large section titles are hidden behind a rectangular mask."
541
- value: "Large section titles are hidden behind a rectangular mask. As the section scrolls into view, the mask slides away to the right, uncovering the text from left to right in a clean wipe reveal with a smooth cubic ease."
542
- section: text_reveal_on_scroll
543
- enabled: false
544
- - key: animations.text_reveal_on_scroll.6
545
- type: text
546
- label: "[word] A statistics section has large numbers and their labels revealed word by word on scroll — the numbers count up from zero simultaneously as their label words stagger in beside them, all timed to complete together as the section centers."
547
- value: "A statistics section has large numbers and their labels revealed word by word on scroll — the numbers count up from zero simultaneously as their label words stagger in beside them, all timed to complete together as the section centers."
548
- section: text_reveal_on_scroll
549
- enabled: false
550
- - key: animations.text_reveal_on_scroll.7
551
- type: text
552
- label: "[char] A brand tagline uses a character scramble reveal on scroll — each character starts as a random symbol and resolves to the correct letter over 400ms, staggered left to right, as if the correct letters are being found one by one."
553
- value: "A brand tagline uses a character scramble reveal on scroll — each character starts as a random symbol and resolves to the correct letter over 400ms, staggered left to right, as if the correct letters are being found one by one."
554
- section: text_reveal_on_scroll
555
- enabled: false
556
- - key: animations.text_reveal_on_scroll.8
557
- type: text
558
- label: "[line] Long-form article text uses a subtle line reveal — each line starts at 60% opacity and full position, and fades to 100% opacity as it scrolls past the 70% viewport threshold."
559
- value: "Long-form article text uses a subtle line reveal — each line starts at 60% opacity and full position, and fades to 100% opacity as it scrolls past the 70% viewport threshold. Barely noticeable individually but gives the whole article a breathing quality."
560
- section: text_reveal_on_scroll
561
- enabled: false
562
- - key: animations.text_reveal_on_scroll.9
563
- type: text
564
- label: "[mask] Section subtitles are revealed with a vertical mask wipe — the text sits inside a container that clips from top to bottom, and as the section enters the viewport the clip opens downward, pulling the text into existence from the top."
565
- value: "Section subtitles are revealed with a vertical mask wipe — the text sits inside a container that clips from top to bottom, and as the section enters the viewport the clip opens downward, pulling the text into existence from the top."
566
- section: text_reveal_on_scroll
567
- enabled: false
568
- - key: animations.text_reveal_on_scroll.10
569
- type: text
570
- label: "[word] A features list has each item revealed word by word with a cascading wave — the first word of each bullet arrives first, followed by the remaining words, then the next bullet starts — creating a reading flow that guides the eye naturally."
571
- value: "A features list has each item revealed word by word with a cascading wave — the first word of each bullet arrives first, followed by the remaining words, then the next bullet starts — creating a reading flow that guides the eye naturally."
572
- section: text_reveal_on_scroll
573
- enabled: false
574
- - key: animations.text_reveal_on_scroll.11
575
- type: text
576
- label: "[char] An oversized background text element — a single huge word behind the section content — has its characters reveal one at a time from center outward, alternating left and right of center, so the word builds from its middle out."
577
- value: "An oversized background text element — a single huge word behind the section content — has its characters reveal one at a time from center outward, alternating left and right of center, so the word builds from its middle out."
578
- section: text_reveal_on_scroll
579
- enabled: false
580
- - key: animations.text_reveal_on_scroll.12
581
- type: text
582
- label: "[line] A timeline section reveals each date and description as separate line pairs."
583
- value: "A timeline section reveals each date and description as separate line pairs. The date line slides in from the left and the description line slides in from the right simultaneously, meeting at the center as the scroll trigger fires."
584
- section: text_reveal_on_scroll
585
- enabled: false
586
- - key: animations.text_reveal_on_scroll.13
587
- type: text
588
- label: "[mask] The hero headline uses a dual-layer mask reveal — the text is duplicated, one copy offset 4px below."
589
- value: "The hero headline uses a dual-layer mask reveal — the text is duplicated, one copy offset 4px below. The masks open at slightly different speeds so there's a brief moment of double-exposure depth before both settle into alignment."
590
- section: text_reveal_on_scroll
591
- enabled: false
592
- - key: animations.text_reveal_on_scroll.14
593
- type: text
594
- label: "[word] A testimonial quote reveals word by word but tied directly to scroll progress — no autoplay, just a 1:1 mapping between scroll distance and how many words are visible."
595
- value: "A testimonial quote reveals word by word but tied directly to scroll progress — no autoplay, just a 1:1 mapping between scroll distance and how many words are visible. The user literally reads at the pace they scroll."
596
- section: text_reveal_on_scroll
597
- enabled: false
598
- - key: animations.text_reveal_on_scroll.15
599
- type: text
600
- label: "[char] Section numbers or chapter markers animate in character by character with a vertical flip — each digit starts face-down (rotateX 90deg) and flips to face-forward with a staggered delay, like a split-flap departure board."
601
- value: "Section numbers or chapter markers animate in character by character with a vertical flip — each digit starts face-down (rotateX 90deg) and flips to face-forward with a staggered delay, like a split-flap departure board."
602
- section: text_reveal_on_scroll
603
- enabled: false
604
- - key: animations.text_reveal_on_scroll.16
605
- type: text
606
- label: "[line] A multi-column text layout reveals column by column — the leftmost column's lines animate in first, then the center column, then the right — so the reveal sweeps across the layout from left to right in a staged wave."
607
- value: "A multi-column text layout reveals column by column — the leftmost column's lines animate in first, then the center column, then the right — so the reveal sweeps across the layout from left to right in a staged wave."
608
- section: text_reveal_on_scroll
609
- enabled: false
610
- - key: animations.text_reveal_on_scroll.17
611
- type: text
612
- label: "[mask] Running body text uses a gradient mask reveal — instead of a hard clip edge, a soft gradient mask sits over the text and scrolls upward as the user reads, so text at the top is fully visible and text near the bottom fades out, revealing progressively."
613
- value: "Running body text uses a gradient mask reveal — instead of a hard clip edge, a soft gradient mask sits over the text and scrolls upward as the user reads, so text at the top is fully visible and text near the bottom fades out, revealing progressively."
614
- section: text_reveal_on_scroll
615
- enabled: false
616
- - key: animations.text_reveal_on_scroll.18
617
- type: text
618
- label: "[word] A call-to-action headline reveals its words with a scale entrance — each word starts at 120% size and transparent, snapping to 100% and opaque with a staggered delay, so the sentence punches into existence with energy."
619
- value: "A call-to-action headline reveals its words with a scale entrance — each word starts at 120% size and transparent, snapping to 100% and opaque with a staggered delay, so the sentence punches into existence with energy."
620
- section: text_reveal_on_scroll
621
- enabled: false
622
- - key: animations.text_reveal_on_scroll.19
623
- type: text
624
- label: "[char] A footer tagline has its characters animate in with a random vertical scatter — each character starts at a random y offset between minus 30 and plus 30 pixels, and simultaneously snaps to baseline on scroll trigger, like pieces falling into place."
625
- value: "A footer tagline has its characters animate in with a random vertical scatter — each character starts at a random y offset between minus 30 and plus 30 pixels, and simultaneously snaps to baseline on scroll trigger, like pieces falling into place."
626
- section: text_reveal_on_scroll
627
- enabled: false
628
- - key: animations.text_reveal_on_scroll.20
629
- type: text
630
- label: "[line] A process description section reveals each step as a full line — but steps are on alternating sides."
631
- value: "A process description section reveals each step as a full line — but steps are on alternating sides. Odd steps slide in from the left, even steps from the right, creating a zigzag reveal pattern down the page as the user scrolls."
632
- section: text_reveal_on_scroll
633
- enabled: false
634
- - key: animations.split_text_entrance.enabled
635
- type: text
636
- label: "Split Text Entrance — enable category"
637
- value: ""
638
- section: split_text_entrance
639
- enabled: false
640
- - key: animations.split_text_entrance.1
641
- type: text
642
- label: "[chars] Split the hero headline into individual characters and animate each one in from a random position — some from the top, some from the sides, some from below — all converging on their correct position simultaneously with a springy elastic ease."
643
- value: "Split the hero headline into individual characters and animate each one in from a random position — some from the top, some from the sides, some from below — all converging on their correct position simultaneously with a springy elastic ease."
644
- section: split_text_entrance
645
- enabled: false
646
- - key: animations.split_text_entrance.2
647
- type: text
648
- label: "[words] Split a subheading into words and animate each word in from below with translateY 40px and opacity 0, staggered by 80ms per word, using a smooth power2."
649
- value: "Split a subheading into words and animate each word in from below with translateY 40px and opacity 0, staggered by 80ms per word, using a smooth power2.out ease — a clean, confident entrance that feels like the words are stepping forward."
650
- section: split_text_entrance
651
- enabled: false
652
- - key: animations.split_text_entrance.3
653
- type: text
654
- label: "[lines] Split a paragraph into lines and animate each line in with a combined translateX and opacity — odd lines slide from the left, even lines from the right — all triggering simultaneously with a 100ms stagger between lines."
655
- value: "Split a paragraph into lines and animate each line in with a combined translateX and opacity — odd lines slide from the left, even lines from the right — all triggering simultaneously with a 100ms stagger between lines."
656
- section: split_text_entrance
657
- enabled: false
658
- - key: animations.split_text_entrance.4
659
- type: text
660
- label: "[chars] A large display number splits into digits."
661
- value: "A large display number splits into digits. Each digit drops in from above, overshoots its final position slightly, and bounces back — staggered from left to right by 60ms — so the number slaps into place with a satisfying impact."
662
- section: split_text_entrance
663
- enabled: false
664
- - key: animations.split_text_entrance.5
665
- type: text
666
- label: "[words] A navigation menu entrance animates each menu item word in with a rotateX flip — starting face-up at 90 degrees and rotating to face-forward — staggered left to right, like a row of tiles being flipped over one by one."
667
- value: "A navigation menu entrance animates each menu item word in with a rotateX flip — starting face-up at 90 degrees and rotating to face-forward — staggered left to right, like a row of tiles being flipped over one by one."
668
- section: split_text_entrance
669
- enabled: false
670
- - key: animations.split_text_entrance.6
671
- type: text
672
- label: "[chars] Split a brand name into characters."
673
- value: "Split a brand name into characters. Animate each character in with a scale from 0 and a rotation from 45 degrees, staggered outward from the center character — so the name builds from the middle letter outward in both directions simultaneously."
674
- section: split_text_entrance
675
- enabled: false
676
- - key: animations.split_text_entrance.7
677
- type: text
678
- label: "[lines] A full-screen text block reveals line by line with a clip-path wipe — each line is clipped to zero height and expands downward to full height with a stagger of 120ms, making the text unfold like a scroll being rolled out."
679
- value: "A full-screen text block reveals line by line with a clip-path wipe — each line is clipped to zero height and expands downward to full height with a stagger of 120ms, making the text unfold like a scroll being rolled out."
680
- section: split_text_entrance
681
- enabled: false
682
- - key: animations.split_text_entrance.8
683
- type: text
684
- label: "[words] Split a testimonial quote into words."
685
- value: "Split a testimonial quote into words. Animate each word with a slight blur that clears as it fades in — starting at filter blur 8px and opacity 0, resolving to blur 0 and opacity 1 with a stagger, like words coming into focus one at a time."
686
- section: split_text_entrance
687
- enabled: false
688
- - key: animations.split_text_entrance.9
689
- type: text
690
- label: "[chars] A loading screen headline splits into characters that start scattered across the entire screen at random positions and rotations, then fly into their correct positions simultaneously with a power4."
691
- value: "A loading screen headline splits into characters that start scattered across the entire screen at random positions and rotations, then fly into their correct positions simultaneously with a power4.out ease — chaos resolving into order."
692
- section: split_text_entrance
693
- enabled: false
694
- - key: animations.split_text_entrance.10
695
- type: text
696
- label: "[lines] Section intro text splits into lines, each animating in with a skewX distortion — starting at skewX 10 degrees and resolving to 0 alongside the opacity and translateY — giving the entrance a dynamic, rushing-forward energy."
697
- value: "Section intro text splits into lines, each animating in with a skewX distortion — starting at skewX 10 degrees and resolving to 0 alongside the opacity and translateY — giving the entrance a dynamic, rushing-forward energy."
698
- section: split_text_entrance
699
- enabled: false
700
- - key: animations.split_text_entrance.11
701
- type: text
702
- label: "[words] A CTA headline splits into words that animate in with a wave — the first word arrives at full opacity, and each subsequent word is delayed by 60ms but also starts 10px higher, creating a rising staircase effect that levels out as each word settles."
703
- value: "A CTA headline splits into words that animate in with a wave — the first word arrives at full opacity, and each subsequent word is delayed by 60ms but also starts 10px higher, creating a rising staircase effect that levels out as each word settles."
704
- section: split_text_entrance
705
- enabled: false
706
- - key: animations.split_text_entrance.12
707
- type: text
708
- label: "[chars] Split a section title into characters and animate each one with a unique duration between 0."
709
- value: "Split a section title into characters and animate each one with a unique duration between 0.4s and 0.8s — randomly assigned — so the characters arrive at slightly different times, creating an organic, hand-lettered feel to the entrance."
710
- section: split_text_entrance
711
- enabled: false
712
- - key: animations.split_text_entrance.13
713
- type: text
714
- label: "[lines] A two-line headline splits and animates the lines in opposite directions — line one slides in from the left and line two from the right — meeting at center simultaneously, framing the composition from both sides at once."
715
- value: "A two-line headline splits and animates the lines in opposite directions — line one slides in from the left and line two from the right — meeting at center simultaneously, framing the composition from both sides at once."
716
- section: split_text_entrance
717
- enabled: false
718
- - key: animations.split_text_entrance.14
719
- type: text
720
- label: "[words] A feature benefit list entrance splits each bullet into words."
721
- value: "A feature benefit list entrance splits each bullet into words. The first word of each bullet pops in at scale 1.2 then settles, followed by the remaining words at normal scale with a 40ms stagger — the key word always hits first for emphasis."
722
- section: split_text_entrance
723
- enabled: false
724
- - key: animations.split_text_entrance.15
725
- type: text
726
- label: "[chars] An awards or accolades section has year numbers split into digits."
727
- value: "An awards or accolades section has year numbers split into digits. Each digit rotates in on the Y axis — a 3D flip from perpendicular to face-forward — staggered by 80ms, making the year stamp itself into place like a rubber stamp being pressed."
728
- section: split_text_entrance
729
- enabled: false
730
- - key: animations.split_text_entrance.16
731
- type: text
732
- label: "[lines] A manifesto text block splits into lines where each line has a unique color on entry — bright and saturated — then fades to the final neutral color over 600ms after it arrives, so the text flashes into existence vividly before settling."
733
- value: "A manifesto text block splits into lines where each line has a unique color on entry — bright and saturated — then fades to the final neutral color over 600ms after it arrives, so the text flashes into existence vividly before settling."
734
- section: split_text_entrance
735
- enabled: false
736
- - key: animations.split_text_entrance.17
737
- type: text
738
- label: "[words] Split a page title into words and animate each with a perspective entrance — they start rotated 60 degrees on the X axis (leaning backward away from the viewer) and rotate forward to flat — staggered left to right, like dominos falling toward you."
739
- value: "Split a page title into words and animate each with a perspective entrance — they start rotated 60 degrees on the X axis (leaning backward away from the viewer) and rotate forward to flat — staggered left to right, like dominos falling toward you."
740
- section: split_text_entrance
741
- enabled: false
742
- - key: animations.split_text_entrance.18
743
- type: text
744
- label: "[chars] A countdown or score display splits into characters that each start as a different random character and rapidly cycle through the alphabet before landing on the correct letter — a slot-machine scramble that resolves character by character, left to right."
745
- value: "A countdown or score display splits into characters that each start as a different random character and rapidly cycle through the alphabet before landing on the correct letter — a slot-machine scramble that resolves character by character, left to right."
746
- section: split_text_entrance
747
- enabled: false
748
- - key: animations.split_text_entrance.19
749
- type: text
750
- label: "[lines] Body copy splits into lines where each line entrance is tied to the user's scroll position entering that line's bounding box — no batch trigger, each line fires independently as the viewport reaches it, so the text reveals precisely as it's read."
751
- value: "Body copy splits into lines where each line entrance is tied to the user's scroll position entering that line's bounding box — no batch trigger, each line fires independently as the viewport reaches it, so the text reveals precisely as it's read."
752
- section: split_text_entrance
753
- enabled: false
754
- - key: animations.split_text_entrance.20
755
- type: text
756
- label: "[words] A closing statement splits into words that animate in with a gravity drop — starting 80px above and accelerating downward with a bounce ease, staggered by 50ms — so the words fall into place like they have weight, landing with a soft thud."
757
- value: "A closing statement splits into words that animate in with a gravity drop — starting 80px above and accelerating downward with a bounce ease, staggered by 50ms — so the words fall into place like they have weight, landing with a soft thud."
758
- section: split_text_entrance
759
- enabled: false
760
- - key: animations.sticky_text_background_swap.enabled
761
- type: text
762
- label: "Sticky Text Background Swap — enable category"
763
- value: ""
764
- section: sticky_text_background_swap
765
- enabled: false
766
- - key: animations.sticky_text_background_swap.1
767
- type: text
768
- label: "[color] Pin the headline text in the center of the viewport while the background color morphs through a sequence of brand colors as the user scrolls — each color has its own scroll range and the transitions crossfade smoothly so there's never a hard cut."
769
- value: "Pin the headline text in the center of the viewport while the background color morphs through a sequence of brand colors as the user scrolls — each color has its own scroll range and the transitions crossfade smoothly so there's never a hard cut."
770
- section: sticky_text_background_swap
771
- enabled: false
772
- - key: animations.sticky_text_background_swap.2
773
- type: text
774
- label: "[image] A pinned product name sits over a full-bleed background that swaps between lifestyle photos as the user scrolls — each photo crossfades in over 400ms, and the text color shifts from dark to light or back depending on the brightness of the incoming image."
775
- value: "A pinned product name sits over a full-bleed background that swaps between lifestyle photos as the user scrolls — each photo crossfades in over 400ms, and the text color shifts from dark to light or back depending on the brightness of the incoming image."
776
- section: sticky_text_background_swap
777
- enabled: false
778
- - key: animations.sticky_text_background_swap.3
779
- type: text
780
- label: "[color] A pinned section counter — showing '01 of 05' — updates each time the background swaps."
781
- value: "A pinned section counter — showing '01 of 05' — updates each time the background swaps. The number change animates as a vertical flip, the outgoing digit rolling upward and the incoming digit rolling in from below."
782
- section: sticky_text_background_swap
783
- enabled: false
784
- - key: animations.sticky_text_background_swap.4
785
- type: text
786
- label: "[gradient] The pinned headline stays fixed while the background transitions between bold full-bleed gradients — each gradient flows in as a diagonal wipe from the bottom-left corner, replacing the previous one as the scroll crosses each threshold."
787
- value: "The pinned headline stays fixed while the background transitions between bold full-bleed gradients — each gradient flows in as a diagonal wipe from the bottom-left corner, replacing the previous one as the scroll crosses each threshold."
788
- section: sticky_text_background_swap
789
- enabled: false
790
- - key: animations.sticky_text_background_swap.5
791
- type: text
792
- label: "[image] A sticky title block stays in the left third of the screen while full-bleed background images swap on the right two-thirds as the user scrolls."
793
- value: "A sticky title block stays in the left third of the screen while full-bleed background images swap on the right two-thirds as the user scrolls. Each image slides up from the bottom of its container and the previous one slides up out of frame above it."
794
- section: sticky_text_background_swap
795
- enabled: false
796
- - key: animations.sticky_text_background_swap.6
797
- type: text
798
- label: "[color] The pinned text is a large typographic element that shifts color in sync with the background swap — but delayed by 200ms — so the background changes first and the text color catches up, creating a brief moment of contrast before harmonizing."
799
- value: "The pinned text is a large typographic element that shifts color in sync with the background swap — but delayed by 200ms — so the background changes first and the text color catches up, creating a brief moment of contrast before harmonizing."
800
- section: sticky_text_background_swap
801
- enabled: false
802
- - key: animations.sticky_text_background_swap.7
803
- type: text
804
- label: "[gradient] Pin a section with a looping sequence of four background colors."
805
- value: "Pin a section with a looping sequence of four background colors. Each color has a unique texture overlay — subtle noise, lines, or dots — that crossfades in alongside the color, giving each background section a distinct material feel."
806
- section: sticky_text_background_swap
807
- enabled: false
808
- - key: animations.sticky_text_background_swap.8
809
- type: text
810
- label: "[image] The sticky text is actually a mask — the background images show through the letterforms of the headline."
811
- value: "The sticky text is actually a mask — the background images show through the letterforms of the headline. As backgrounds swap, the new image fades in behind the mask, so the typography always shows a live, changing image texture inside it."
812
- section: sticky_text_background_swap
813
- enabled: false
814
- - key: animations.sticky_text_background_swap.9
815
- type: text
816
- label: "[color] A pinned navigation indicator — a small colored pill — updates its background color to match the current section's background swap theme, animating the color transition with a smooth 300ms crossfade in sync with the background."
817
- value: "A pinned navigation indicator — a small colored pill — updates its background color to match the current section's background swap theme, animating the color transition with a smooth 300ms crossfade in sync with the background."
818
- section: sticky_text_background_swap
819
- enabled: false
820
- - key: animations.sticky_text_background_swap.10
821
- type: text
822
- label: "[gradient] Five background sections each have a unique color."
823
- value: "Five background sections each have a unique color. The pinned headline word rotates to a synonym for each section — 'fast', 'smart', 'bold', 'clear', 'yours' — the word exit animates upward and the new word enters from below, timed to the background swap."
824
- section: sticky_text_background_swap
825
- enabled: false
826
- - key: animations.sticky_text_background_swap.11
827
- type: text
828
- label: "[image] The background images in the swap sequence are the same photo at different zoom levels — starting wide and progressively more zoomed in with each scroll section."
829
- value: "The background images in the swap sequence are the same photo at different zoom levels — starting wide and progressively more zoomed in with each scroll section. The pinned text stays fixed as the world behind it closes in on a focal point."
830
- section: sticky_text_background_swap
831
- enabled: false
832
- - key: animations.sticky_text_background_swap.12
833
- type: text
834
- label: "[color] A sticky sidebar progress list shows five items."
835
- value: "A sticky sidebar progress list shows five items. As each background section activates, the corresponding list item highlights — scaling up slightly and shifting from muted to full color — and the previous one dims back down."
836
- section: sticky_text_background_swap
837
- enabled: false
838
- - key: animations.sticky_text_background_swap.13
839
- type: text
840
- label: "[gradient] Each background section has a distinct sound-wave or frequency visualization SVG that fades in with the background and animates in a loop — a looping pulse or oscillation — giving each section its own ambient motion while the text stays still."
841
- value: "Each background section has a distinct sound-wave or frequency visualization SVG that fades in with the background and animates in a loop — a looping pulse or oscillation — giving each section its own ambient motion while the text stays still."
842
- section: sticky_text_background_swap
843
- enabled: false
844
- - key: animations.sticky_text_background_swap.14
845
- type: text
846
- label: "[image] The background swap is driven by a clipping reveal rather than a crossfade — the new background image expands from a small circle in the center, growing to fill the entire viewport before the next scroll section takes over."
847
- value: "The background swap is driven by a clipping reveal rather than a crossfade — the new background image expands from a small circle in the center, growing to fill the entire viewport before the next scroll section takes over."
848
- section: sticky_text_background_swap
849
- enabled: false
850
- - key: animations.sticky_text_background_swap.15
851
- type: text
852
- label: "[color] Pin a bold section title and swap five background colors beneath it."
853
- value: "Pin a bold section title and swap five background colors beneath it. Each background color is accompanied by a unique subtle pattern that tiles across the background — switching pattern and color simultaneously creates a complete scene change beneath the static text."
854
- section: sticky_text_background_swap
855
- enabled: false
856
- - key: animations.sticky_text_background_swap.16
857
- type: text
858
- label: "[gradient] The sticky text block contains multiple lines, and each line has a different scroll range for its background section — so as you scroll, the background behind each line changes at a different threshold, creating a cascading section swap effect."
859
- value: "The sticky text block contains multiple lines, and each line has a different scroll range for its background section — so as you scroll, the background behind each line changes at a different threshold, creating a cascading section swap effect."
860
- section: sticky_text_background_swap
861
- enabled: false
862
- - key: animations.sticky_text_background_swap.17
863
- type: text
864
- label: "[image] Background images in the swap sequence enter with a horizontal ken-burns motion — each image slowly pans left to right during its active scroll range, adding life to the static pinned section without overwhelming the fixed headline."
865
- value: "Background images in the swap sequence enter with a horizontal ken-burns motion — each image slowly pans left to right during its active scroll range, adding life to the static pinned section without overwhelming the fixed headline."
866
- section: sticky_text_background_swap
867
- enabled: false
868
- - key: animations.sticky_text_background_swap.18
869
- type: text
870
- label: "[color] A sticky quote rotator pairs with background color swaps — each background section reveals a new quote by the same author."
871
- value: "A sticky quote rotator pairs with background color swaps — each background section reveals a new quote by the same author. The outgoing quote fades and rises, the incoming quote fades and rises into place, all while the author name stays permanently pinned."
872
- section: sticky_text_background_swap
873
- enabled: false
874
- - key: animations.sticky_text_background_swap.19
875
- type: text
876
- label: "[gradient] The section has a sticky frosted overlay element — a card behind the text — that tints to a semi-transparent version of the current background color with each swap, keeping the text readable while still reflecting the changing background palette."
877
- value: "The section has a sticky frosted overlay element — a card behind the text — that tints to a semi-transparent version of the current background color with each swap, keeping the text readable while still reflecting the changing background palette."
878
- section: sticky_text_background_swap
879
- enabled: false
880
- - key: animations.sticky_text_background_swap.20
881
- type: text
882
- label: "[image] As background images swap, a thin border around the pinned text container changes color to match the dominant hue of the incoming image — extracted at runtime — so the text frame always harmonizes with the backdrop behind it."
883
- value: "As background images swap, a thin border around the pinned text container changes color to match the dominant hue of the incoming image — extracted at runtime — so the text frame always harmonizes with the backdrop behind it."
884
- section: sticky_text_background_swap
885
- enabled: false
886
- - key: animations.staggered_image_grid.enabled
887
- type: text
888
- label: "Staggered Image Grid — enable category"
889
- value: ""
890
- section: staggered_image_grid
891
- enabled: false
892
- - key: animations.staggered_image_grid.1
893
- type: text
894
- label: "[enter] A 3x3 image grid enters the viewport with each image fading in and scaling up from 90%, staggered diagonally from the top-left corner to the bottom-right — the cascade travels across the grid like a wave rolling from one corner to the other."
895
- value: "A 3x3 image grid enters the viewport with each image fading in and scaling up from 90%, staggered diagonally from the top-left corner to the bottom-right — the cascade travels across the grid like a wave rolling from one corner to the other."
896
- section: staggered_image_grid
897
- enabled: false
898
- - key: animations.staggered_image_grid.2
899
- type: text
900
- label: "[direction] The image grid items slide in from alternating directions — odd-numbered items enter from the left and even-numbered from the right — creating a symmetrical inward collapse as the grid assembles itself from the outside edges."
901
- value: "The image grid items slide in from alternating directions — odd-numbered items enter from the left and even-numbered from the right — creating a symmetrical inward collapse as the grid assembles itself from the outside edges."
902
- section: staggered_image_grid
903
- enabled: false
904
- - key: animations.staggered_image_grid.3
905
- type: text
906
- label: "[enter] Each image in the grid starts as a blurred, desaturated placeholder and resolves to sharp and full-color with a stagger — as if the images are loading one by one in sequence, left to right, top to bottom."
907
- value: "Each image in the grid starts as a blurred, desaturated placeholder and resolves to sharp and full-color with a stagger — as if the images are loading one by one in sequence, left to right, top to bottom."
908
- section: staggered_image_grid
909
- enabled: false
910
- - key: animations.staggered_image_grid.4
911
- type: text
912
- label: "[clip] Grid images reveal with a clip-path wipe — each image starts fully clipped and the clip rectangle expands from the center outward, staggered by 80ms per item, so the grid fills in as a ripple of expanding squares."
913
- value: "Grid images reveal with a clip-path wipe — each image starts fully clipped and the clip rectangle expands from the center outward, staggered by 80ms per item, so the grid fills in as a ripple of expanding squares."
914
- section: staggered_image_grid
915
- enabled: false
916
- - key: animations.staggered_image_grid.5
917
- type: text
918
- label: "[direction] The portfolio grid enters with a vertical stagger by row — all items in row one animate in first, then row two, then row three — each row sliding up from 30px below with opacity 0, giving the grid a floor-by-floor build feel."
919
- value: "The portfolio grid enters with a vertical stagger by row — all items in row one animate in first, then row two, then row three — each row sliding up from 30px below with opacity 0, giving the grid a floor-by-floor build feel."
920
- section: staggered_image_grid
921
- enabled: false
922
- - key: animations.staggered_image_grid.6
923
- type: text
924
- label: "[enter] Images in the grid enter with a rotation from 6 degrees to 0, combined with scale and opacity — each image tilts into place as it arrives, staggered column by column from left to right."
925
- value: "Images in the grid enter with a rotation from 6 degrees to 0, combined with scale and opacity — each image tilts into place as it arrives, staggered column by column from left to right."
926
- section: staggered_image_grid
927
- enabled: false
928
- - key: animations.staggered_image_grid.7
929
- type: text
930
- label: "[clip] A masonry grid reveals images with a top-to-bottom clip wipe on each item individually — the clip starts at the top and sweeps downward, staggered so shorter columns start after taller ones and all finish at the same time."
931
- value: "A masonry grid reveals images with a top-to-bottom clip wipe on each item individually — the clip starts at the top and sweeps downward, staggered so shorter columns start after taller ones and all finish at the same time."
932
- section: staggered_image_grid
933
- enabled: false
934
- - key: animations.staggered_image_grid.8
935
- type: text
936
- label: "[hover] After the grid entrance animation completes, hovering any image causes it to scale to 102% while adjacent images scale to 98% — a subtle push-away effect that focuses attention on the hovered item without abrupt jumps."
937
- value: "After the grid entrance animation completes, hovering any image causes it to scale to 102% while adjacent images scale to 98% — a subtle push-away effect that focuses attention on the hovered item without abrupt jumps."
938
- section: staggered_image_grid
939
- enabled: false
940
- - key: animations.staggered_image_grid.9
941
- type: text
942
- label: "[enter] A 4-column image grid enters with a wave stagger — the delay for each item is calculated by its column index, creating a left-to-right cascade where every column's images animate in together, sweeping across the layout."
943
- value: "A 4-column image grid enters with a wave stagger — the delay for each item is calculated by its column index, creating a left-to-right cascade where every column's images animate in together, sweeping across the layout."
944
- section: staggered_image_grid
945
- enabled: false
946
- - key: animations.staggered_image_grid.10
947
- type: text
948
- label: "[direction] Grid images enter from outside the viewport in their actual direction from center — top-left image enters from the top-left, center-right image from the right — all converging inward to their grid positions simultaneously."
949
- value: "Grid images enter from outside the viewport in their actual direction from center — top-left image enters from the top-left, center-right image from the right — all converging inward to their grid positions simultaneously."
950
- section: staggered_image_grid
951
- enabled: false
952
- - key: animations.staggered_image_grid.11
953
- type: text
954
- label: "[clip] Each grid image has a colored overlay at full opacity on load."
955
- value: "Each grid image has a colored overlay at full opacity on load. As the item enters the viewport, the overlay slides off to reveal the photo beneath — the slide direction alternates by row: odd rows reveal left-to-right, even rows right-to-left."
956
- section: staggered_image_grid
957
- enabled: false
958
- - key: animations.staggered_image_grid.12
959
- type: text
960
- label: "[hover] The image grid sits at 85% scale on load and expands to 100% as a unit when it scrolls into view, then each individual image stagger-fades from 70% to 100% opacity — a two-stage entrance that first reveals the grid shape then populates it."
961
- value: "The image grid sits at 85% scale on load and expands to 100% as a unit when it scrolls into view, then each individual image stagger-fades from 70% to 100% opacity — a two-stage entrance that first reveals the grid shape then populates it."
962
- section: staggered_image_grid
963
- enabled: false
964
- - key: animations.staggered_image_grid.13
965
- type: text
966
- label: "[enter] A square grid of 16 images enters with a random stagger — each item has a randomly assigned delay between 0 and 600ms — so the grid fills in unpredictably, as if each image is arriving from a separate source at its own time."
967
- value: "A square grid of 16 images enters with a random stagger — each item has a randomly assigned delay between 0 and 600ms — so the grid fills in unpredictably, as if each image is arriving from a separate source at its own time."
968
- section: staggered_image_grid
969
- enabled: false
970
- - key: animations.staggered_image_grid.14
971
- type: text
972
- label: "[clip] Images reveal with an iris clip-path — starting as a small circle at each image's center and expanding to fill the image frame — staggered in a spiral pattern from the center of the grid outward."
973
- value: "Images reveal with an iris clip-path — starting as a small circle at each image's center and expanding to fill the image frame — staggered in a spiral pattern from the center of the grid outward."
974
- section: staggered_image_grid
975
- enabled: false
976
- - key: animations.staggered_image_grid.15
977
- type: text
978
- label: "[direction] The image grid entrance is driven directly by scroll position rather than a one-shot trigger — as the user scrolls down, images progressively appear in sequence, and scrolling back up reverses them, so the user controls the reveal pace."
979
- value: "The image grid entrance is driven directly by scroll position rather than a one-shot trigger — as the user scrolls down, images progressively appear in sequence, and scrolling back up reverses them, so the user controls the reveal pace."
980
- section: staggered_image_grid
981
- enabled: false
982
- - key: animations.staggered_image_grid.16
983
- type: text
984
- label: "[hover] On hover, the entire grid dims to 40% opacity except the hovered image which stays at 100% — the spotlight effect transitions smoothly with a 200ms ease, and shifts instantly to whichever new image the cursor moves to."
985
- value: "On hover, the entire grid dims to 40% opacity except the hovered image which stays at 100% — the spotlight effect transitions smoothly with a 200ms ease, and shifts instantly to whichever new image the cursor moves to."
986
- section: staggered_image_grid
987
- enabled: false
988
- - key: animations.staggered_image_grid.17
989
- type: text
990
- label: "[enter] A photography grid enters with each image dropping in from above its final position — starting 60px higher — and settling with a slight bounce ease, staggered in reading order, as if each photo is being pinned to a board one by one."
991
- value: "A photography grid enters with each image dropping in from above its final position — starting 60px higher — and settling with a slight bounce ease, staggered in reading order, as if each photo is being pinned to a board one by one."
992
- section: staggered_image_grid
993
- enabled: false
994
- - key: animations.staggered_image_grid.18
995
- type: text
996
- label: "[clip] Grid items reveal with a horizontal blinds effect — each image is divided into five horizontal strips that each expand from 0 height to full height with a stagger of 40ms per strip — the image assembles like venetian blinds opening."
997
- value: "Grid items reveal with a horizontal blinds effect — each image is divided into five horizontal strips that each expand from 0 height to full height with a stagger of 40ms per strip — the image assembles like venetian blinds opening."
998
- section: staggered_image_grid
999
- enabled: false
1000
- - key: animations.staggered_image_grid.19
1001
- type: text
1002
- label: "[enter] An image grid entrance uses a 3D card-flip reveal — each image starts face-down (rotateY 90deg) and flips to face-forward staggered across the grid, as if a dealer is turning over a hand of cards across the layout."
1003
- value: "An image grid entrance uses a 3D card-flip reveal — each image starts face-down (rotateY 90deg) and flips to face-forward staggered across the grid, as if a dealer is turning over a hand of cards across the layout."
1004
- section: staggered_image_grid
1005
- enabled: false
1006
- - key: animations.staggered_image_grid.20
1007
- type: text
1008
- label: "[hover] After the staggered entrance, the grid supports a tilt interaction — as the mouse moves across the grid, each image tilts on X and Y axes based on the cursor's distance from that image's center, creating a parallax field of depth across the whole grid."
1009
- value: "After the staggered entrance, the grid supports a tilt interaction — as the mouse moves across the grid, each image tilts on X and Y axes based on the cursor's distance from that image's center, creating a parallax field of depth across the whole grid."
1010
- section: staggered_image_grid
1011
- enabled: false
1012
- - key: animations.card_flip_3d_rotate.enabled
1013
- type: text
1014
- label: "Card Flip 3d Rotate — enable category"
1015
- value: ""
1016
- section: card_flip_3d_rotate
1017
- enabled: false
1018
- - key: animations.card_flip_3d_rotate.1
1019
- type: text
1020
- label: "[hover] A service card flips on hover — the front shows an icon and title, the back reveals a description and CTA button."
1021
- value: "A service card flips on hover — the front shows an icon and title, the back reveals a description and CTA button. The flip rotates on the Y axis with a smooth 0.6s ease, and the card lifts slightly with a translateZ as it begins turning."
1022
- section: card_flip_3d_rotate
1023
- enabled: false
1024
- - key: animations.card_flip_3d_rotate.2
1025
- type: text
1026
- label: "[scroll] A row of feature cards flips into view as the section scrolls into the viewport — each card starts face-down and rotates to face-forward with a stagger of 100ms per card, as if being dealt from a deck flat on the table."
1027
- value: "A row of feature cards flips into view as the section scrolls into the viewport — each card starts face-down and rotates to face-forward with a stagger of 100ms per card, as if being dealt from a deck flat on the table."
1028
- section: card_flip_3d_rotate
1029
- enabled: false
1030
- - key: animations.card_flip_3d_rotate.3
1031
- type: text
1032
- label: "[hover] A team member card flips to reveal bio and contact details on the back."
1033
- value: "A team member card flips to reveal bio and contact details on the back. During the flip, the card casts a soft scale shadow on its container that grows as it reaches 90 degrees and shrinks as it completes the turn."
1034
- section: card_flip_3d_rotate
1035
- enabled: false
1036
- - key: animations.card_flip_3d_rotate.4
1037
- type: text
1038
- label: "[3d] A pricing card tilts continuously on the X and Y axes following the user's cursor position within a 15 degree range — when the cursor leaves, it springs back to flat with a gentle oscillation, as if the card is a physical object on a table."
1039
- value: "A pricing card tilts continuously on the X and Y axes following the user's cursor position within a 15 degree range — when the cursor leaves, it springs back to flat with a gentle oscillation, as if the card is a physical object on a table."
1040
- section: card_flip_3d_rotate
1041
- enabled: false
1042
- - key: animations.card_flip_3d_rotate.5
1043
- type: text
1044
- label: "[scroll] Cards in a grid flip on scroll — but instead of Y-axis flips, they rotate on the X axis as if the cards are tipping forward toward the viewer."
1045
- value: "Cards in a grid flip on scroll — but instead of Y-axis flips, they rotate on the X axis as if the cards are tipping forward toward the viewer. The flip is staggered by column so a left-to-right wave of forward-tipping cards sweeps across the grid."
1046
- section: card_flip_3d_rotate
1047
- enabled: false
1048
- - key: animations.card_flip_3d_rotate.6
1049
- type: text
1050
- label: "[hover] A product card does a partial 3D tilt on hover — not a full flip, just a 12 degree rotateY lean in the direction of the cursor — combined with the product image shifting slightly in the opposite direction of the tilt for a parallax-inside-card effect."
1051
- value: "A product card does a partial 3D tilt on hover — not a full flip, just a 12 degree rotateY lean in the direction of the cursor — combined with the product image shifting slightly in the opposite direction of the tilt for a parallax-inside-card effect."
1052
- section: card_flip_3d_rotate
1053
- enabled: false
1054
- - key: animations.card_flip_3d_rotate.7
1055
- type: text
1056
- label: "[3d] A card stack entrance animates each card rotating in from perpendicular — starting at rotateY 90deg from the right — and landing flat with a bounce."
1057
- value: "A card stack entrance animates each card rotating in from perpendicular — starting at rotateY 90deg from the right — and landing flat with a bounce. Cards stagger by 80ms so the stack assembles from back to front."
1058
- section: card_flip_3d_rotate
1059
- enabled: false
1060
- - key: animations.card_flip_3d_rotate.8
1061
- type: text
1062
- label: "[scroll] A testimonial card section flips each quote card as the scroll reaches it — the card rotates 180 degrees on the Y axis and the quote is revealed on the back, as if turning the card over to read what's written on the reverse side."
1063
- value: "A testimonial card section flips each quote card as the scroll reaches it — the card rotates 180 degrees on the Y axis and the quote is revealed on the back, as if turning the card over to read what's written on the reverse side."
1064
- section: card_flip_3d_rotate
1065
- enabled: false
1066
- - key: animations.card_flip_3d_rotate.9
1067
- type: text
1068
- label: "[hover] A portfolio card lifts and rotates 5 degrees on hover — translateZ 20px and rotateX minus 3 degrees — so it feels like picking up a physical card."
1069
- value: "A portfolio card lifts and rotates 5 degrees on hover — translateZ 20px and rotateX minus 3 degrees — so it feels like picking up a physical card. The surrounding cards press down slightly in response, reinforcing the 3D space."
1070
- section: card_flip_3d_rotate
1071
- enabled: false
1072
- - key: animations.card_flip_3d_rotate.10
1073
- type: text
1074
- label: "[3d] A full-screen card rotates slowly on its Y axis in a continuous loop at 0."
1075
- value: "A full-screen card rotates slowly on its Y axis in a continuous loop at 0.5 RPM while idle — showing 3D depth between the front and back content. On hover the rotation pauses and the card aligns to face-forward perfectly."
1076
- section: card_flip_3d_rotate
1077
- enabled: false
1078
- - key: animations.card_flip_3d_rotate.11
1079
- type: text
1080
- label: "[scroll] Fact cards flip into position as they scroll into view, but the flip axis is diagonal — rotateX and rotateY simultaneously — so the card tumbles in from a corner angle before settling flat, adding a more dynamic entrance than a straight axial flip."
1081
- value: "Fact cards flip into position as they scroll into view, but the flip axis is diagonal — rotateX and rotateY simultaneously — so the card tumbles in from a corner angle before settling flat, adding a more dynamic entrance than a straight axial flip."
1082
- section: card_flip_3d_rotate
1083
- enabled: false
1084
- - key: animations.card_flip_3d_rotate.12
1085
- type: text
1086
- label: "[hover] Clicking a card triggers a 3D flip to its detail view."
1087
- value: "Clicking a card triggers a 3D flip to its detail view. While flipped, clicking a back-arrow button triggers the reverse flip back to the front — the card maintains its 3D depth throughout so both faces feel like sides of the same physical object."
1088
- section: card_flip_3d_rotate
1089
- enabled: false
1090
- - key: animations.card_flip_3d_rotate.13
1091
- type: text
1092
- label: "[3d] A knowledge base card grid uses perspective depth — cards closer to the edges of the grid tilt slightly inward toward center, as if arranged on a curved surface facing the viewer."
1093
- value: "A knowledge base card grid uses perspective depth — cards closer to the edges of the grid tilt slightly inward toward center, as if arranged on a curved surface facing the viewer. Hovering any card brings it fully flat while others maintain their tilt."
1094
- section: card_flip_3d_rotate
1095
- enabled: false
1096
- - key: animations.card_flip_3d_rotate.14
1097
- type: text
1098
- label: "[scroll] A card enters from off the right edge of the screen spinning on its Y axis — completing one full rotation as it travels to its resting position — so by the time it stops moving, it has shown both its front and back during the entrance journey."
1099
- value: "A card enters from off the right edge of the screen spinning on its Y axis — completing one full rotation as it travels to its resting position — so by the time it stops moving, it has shown both its front and back during the entrance journey."
1100
- section: card_flip_3d_rotate
1101
- enabled: false
1102
- - key: animations.card_flip_3d_rotate.15
1103
- type: text
1104
- label: "[hover] A card reveals a hover state by rotating its top edge backward — rotateX minus 20 degrees — so the card leans away at the top, as if someone is lifting the bottom edge to peek at what's underneath."
1105
- value: "A card reveals a hover state by rotating its top edge backward — rotateX minus 20 degrees — so the card leans away at the top, as if someone is lifting the bottom edge to peek at what's underneath. A hint of the back face is visible."
1106
- section: card_flip_3d_rotate
1107
- enabled: false
1108
- - key: animations.card_flip_3d_rotate.16
1109
- type: text
1110
- label: "[3d] A card row enters with a perspective fold — all cards start as a single flat surface and fan outward on the Y axis from a shared center spine, each rotating to its final angle with a stagger, like a book being opened to reveal its pages."
1111
- value: "A card row enters with a perspective fold — all cards start as a single flat surface and fan outward on the Y axis from a shared center spine, each rotating to its final angle with a stagger, like a book being opened to reveal its pages."
1112
- section: card_flip_3d_rotate
1113
- enabled: false
1114
- - key: animations.card_flip_3d_rotate.17
1115
- type: text
1116
- label: "[scroll] A services section has cards that flip on scroll progress — the flip is not a one-shot trigger but tied 1:1 to scroll position, so the card is exactly halfway through its flip when the user is halfway through the scroll range for that item."
1117
- value: "A services section has cards that flip on scroll progress — the flip is not a one-shot trigger but tied 1:1 to scroll position, so the card is exactly halfway through its flip when the user is halfway through the scroll range for that item."
1118
- section: card_flip_3d_rotate
1119
- enabled: false
1120
- - key: animations.card_flip_3d_rotate.18
1121
- type: text
1122
- label: "[hover] A card does a rubber-band response on hover — the first frame of hover pushes it back slightly in Z space, then it springs forward past its neutral position, then settles — a physical press-and-release that makes interaction feel tactile."
1123
- value: "A card does a rubber-band response on hover — the first frame of hover pushes it back slightly in Z space, then it springs forward past its neutral position, then settles — a physical press-and-release that makes interaction feel tactile."
1124
- section: card_flip_3d_rotate
1125
- enabled: false
1126
- - key: animations.card_flip_3d_rotate.19
1127
- type: text
1128
- label: "[3d] A data card reveals its chart on the back side of a flip triggered by a filter button click."
1129
- value: "A data card reveals its chart on the back side of a flip triggered by a filter button click. When the filter changes, all visible cards flip simultaneously to their backs, the data updates, and they flip back to front showing new values."
1130
- section: card_flip_3d_rotate
1131
- enabled: false
1132
- - key: animations.card_flip_3d_rotate.20
1133
- type: text
1134
- label: "[scroll] A card grid sits in a perspective scene — all cards start tilted at rotateX 40 degrees as if lying flat on a table receding into the distance."
1135
- value: "A card grid sits in a perspective scene — all cards start tilted at rotateX 40 degrees as if lying flat on a table receding into the distance. As the section scrolls into view they all rotate upright to face-forward simultaneously, rising from the table."
1136
- section: card_flip_3d_rotate
1137
- enabled: false
1138
- - key: animations.morphing_svg_paths.enabled
1139
- type: text
1140
- label: "Morphing Svg Paths — enable category"
1141
- value: ""
1142
- section: morphing_svg_paths
1143
- enabled: false
1144
- - key: animations.morphing_svg_paths.1
1145
- type: text
1146
- label: "[shape] A circle in the hero section morphs into a square as the page loads, then into a triangle, then back to a circle — looping continuously with a smooth 800ms morph between each shape and a 400ms pause at each final form."
1147
- value: "A circle in the hero section morphs into a square as the page loads, then into a triangle, then back to a circle — looping continuously with a smooth 800ms morph between each shape and a 400ms pause at each final form."
1148
- section: morphing_svg_paths
1149
- enabled: false
1150
- - key: animations.morphing_svg_paths.2
1151
- type: text
1152
- label: "[logo] The brand logomark enters by morphing from a simple dot — expanding and reshaping into the final logo path over 1."
1153
- value: "The brand logomark enters by morphing from a simple dot — expanding and reshaping into the final logo path over 1.2 seconds with an elastic ease — so the logo feels like it crystallizes out of a single point of origin."
1154
- section: morphing_svg_paths
1155
- enabled: false
1156
- - key: animations.morphing_svg_paths.3
1157
- type: text
1158
- label: "[scroll] A decorative SVG blob in the background morphs its outline continuously as the user scrolls — tied directly to scroll position, so scrolling down stretches the blob taller and narrower, scrolling up squishes it wide and flat."
1159
- value: "A decorative SVG blob in the background morphs its outline continuously as the user scrolls — tied directly to scroll position, so scrolling down stretches the blob taller and narrower, scrolling up squishes it wide and flat."
1160
- section: morphing_svg_paths
1161
- enabled: false
1162
- - key: animations.morphing_svg_paths.4
1163
- type: text
1164
- label: "[hover] An icon morphs between two states on hover — the default icon path smoothly transforms into an active-state icon path over 300ms, and morphs back on mouse-out, making the icon feel alive and responsive rather than just swapping images."
1165
- value: "An icon morphs between two states on hover — the default icon path smoothly transforms into an active-state icon path over 300ms, and morphs back on mouse-out, making the icon feel alive and responsive rather than just swapping images."
1166
- section: morphing_svg_paths
1167
- enabled: false
1168
- - key: animations.morphing_svg_paths.5
1169
- type: text
1170
- label: "[shape] Section dividers between content blocks are wavy SVG paths."
1171
- value: "Section dividers between content blocks are wavy SVG paths. As each section scrolls into view, the wave morph animates — from a straight horizontal line to a gentle wave to a deep wave — and holds at the deepest point while the section is in view."
1172
- section: morphing_svg_paths
1173
- enabled: false
1174
- - key: animations.morphing_svg_paths.6
1175
- type: text
1176
- label: "[scroll] A large background shape morphs through five different organic blob forms as the user scrolls through the page — each section has its own blob shape and they transition smoothly between forms as the scroll crosses each section boundary."
1177
- value: "A large background shape morphs through five different organic blob forms as the user scrolls through the page — each section has its own blob shape and they transition smoothly between forms as the scroll crosses each section boundary."
1178
- section: morphing_svg_paths
1179
- enabled: false
1180
- - key: animations.morphing_svg_paths.7
1181
- type: text
1182
- label: "[logo] An SVG illustration of a product morphs into the brand icon on scroll — the detailed product outline simplifies and reshapes into the minimal logo mark as the section exits the viewport, abstracting from complex to simple."
1183
- value: "An SVG illustration of a product morphs into the brand icon on scroll — the detailed product outline simplifies and reshapes into the minimal logo mark as the section exits the viewport, abstracting from complex to simple."
1184
- section: morphing_svg_paths
1185
- enabled: false
1186
- - key: animations.morphing_svg_paths.8
1187
- type: text
1188
- label: "[hover] Navigation icons morph on hover — the hamburger menu morphs into an X, a play button morphs into a pause, a heart outline morphs into a filled heart — all using GSAP MorphSVG with a smooth 250ms transition."
1189
- value: "Navigation icons morph on hover — the hamburger menu morphs into an X, a play button morphs into a pause, a heart outline morphs into a filled heart — all using GSAP MorphSVG with a smooth 250ms transition."
1190
- section: morphing_svg_paths
1191
- enabled: false
1192
- - key: animations.morphing_svg_paths.9
1193
- type: text
1194
- label: "[shape] A loading state uses a morphing path — a circle that stretches into an oval, then into a line, then snaps back to a circle in a loop — the morph ease is custom-tuned to feel like stretching elastic rather than a simple tween."
1195
- value: "A loading state uses a morphing path — a circle that stretches into an oval, then into a line, then snaps back to a circle in a loop — the morph ease is custom-tuned to feel like stretching elastic rather than a simple tween."
1196
- section: morphing_svg_paths
1197
- enabled: false
1198
- - key: animations.morphing_svg_paths.10
1199
- type: text
1200
- label: "[scroll] An abstract SVG background illustration morphs different elements at different scroll speeds — the outer shapes morph slowly, the inner details morph quickly — so as you scroll the illustration reconfigures itself at multiple rates simultaneously."
1201
- value: "An abstract SVG background illustration morphs different elements at different scroll speeds — the outer shapes morph slowly, the inner details morph quickly — so as you scroll the illustration reconfigures itself at multiple rates simultaneously."
1202
- section: morphing_svg_paths
1203
- enabled: false
1204
- - key: animations.morphing_svg_paths.11
1205
- type: text
1206
- label: "[logo] Five SVG icons for five service categories are all morphed from the same starting path — a generic star shape."
1207
- value: "Five SVG icons for five service categories are all morphed from the same starting path — a generic star shape. Each icon morphs in from the star on scroll entry, establishing a visual lineage between all the services."
1208
- section: morphing_svg_paths
1209
- enabled: false
1210
- - key: animations.morphing_svg_paths.12
1211
- type: text
1212
- label: "[hover] A CTA button has an SVG background shape that morphs on hover — from a standard rounded rectangle to an organic blob form — making the button feel soft and inviting on hover rather than rigid and static."
1213
- value: "A CTA button has an SVG background shape that morphs on hover — from a standard rounded rectangle to an organic blob form — making the button feel soft and inviting on hover rather than rigid and static."
1214
- section: morphing_svg_paths
1215
- enabled: false
1216
- - key: animations.morphing_svg_paths.13
1217
- type: text
1218
- label: "[shape] A progress indicator uses a morphing path — it starts as a circle outline, and as progress increases the path morphs toward a filled arc, then a half-filled shape, then a fully filled circle — shape-morphing instead of a conventional progress bar."
1219
- value: "A progress indicator uses a morphing path — it starts as a circle outline, and as progress increases the path morphs toward a filled arc, then a half-filled shape, then a fully filled circle — shape-morphing instead of a conventional progress bar."
1220
- section: morphing_svg_paths
1221
- enabled: false
1222
- - key: animations.morphing_svg_paths.14
1223
- type: text
1224
- label: "[scroll] Country or region outlines in an SVG map morph from abstract blob shapes into their actual geographic forms as the map section scrolls into view — each country assembles its real shape from an amorphous starting point."
1225
- value: "Country or region outlines in an SVG map morph from abstract blob shapes into their actual geographic forms as the map section scrolls into view — each country assembles its real shape from an amorphous starting point."
1226
- section: morphing_svg_paths
1227
- enabled: false
1228
- - key: animations.morphing_svg_paths.15
1229
- type: text
1230
- label: "[logo] The page loader uses a morphing animation — a simple ring morphs into the brand logomark as loading completes, establishing the brand identity as the very first animation the user sees before any content is visible."
1231
- value: "The page loader uses a morphing animation — a simple ring morphs into the brand logomark as loading completes, establishing the brand identity as the very first animation the user sees before any content is visible."
1232
- section: morphing_svg_paths
1233
- enabled: false
1234
- - key: animations.morphing_svg_paths.16
1235
- type: text
1236
- label: "[hover] Social media icons morph between their standard outline form and a bespoke branded shape on hover — a heart becomes a speech bubble, a share icon becomes a star — unexpected transformations that reward cursor exploration."
1237
- value: "Social media icons morph between their standard outline form and a bespoke branded shape on hover — a heart becomes a speech bubble, a share icon becomes a star — unexpected transformations that reward cursor exploration."
1238
- section: morphing_svg_paths
1239
- enabled: false
1240
- - key: animations.morphing_svg_paths.17
1241
- type: text
1242
- label: "[shape] A data visualization uses morphing bar shapes — when the data category filter changes, each bar morphs from its current height and width to its new values rather than fading out and back in, showing continuity between the two data states."
1243
- value: "A data visualization uses morphing bar shapes — when the data category filter changes, each bar morphs from its current height and width to its new values rather than fading out and back in, showing continuity between the two data states."
1244
- section: morphing_svg_paths
1245
- enabled: false
1246
- - key: animations.morphing_svg_paths.18
1247
- type: text
1248
- label: "[scroll] A hero illustration has a central SVG character that morphs its pose as the user scrolls — standing to leaning to sitting — with each morph timed to a scroll threshold, so the character reacts to the user's reading progress."
1249
- value: "A hero illustration has a central SVG character that morphs its pose as the user scrolls — standing to leaning to sitting — with each morph timed to a scroll threshold, so the character reacts to the user's reading progress."
1250
- section: morphing_svg_paths
1251
- enabled: false
1252
- - key: animations.morphing_svg_paths.19
1253
- type: text
1254
- label: "[logo] The 404 page uses a morphing number sequence — the path of the zero morphs into other digits (0 to 4 to 0 to 4) in a loop, as if the page number can't decide what it is, giving the error page a playful and memorable animation."
1255
- value: "The 404 page uses a morphing number sequence — the path of the zero morphs into other digits (0 to 4 to 0 to 4) in a loop, as if the page number can't decide what it is, giving the error page a playful and memorable animation."
1256
- section: morphing_svg_paths
1257
- enabled: false
1258
- - key: animations.morphing_svg_paths.20
1259
- type: text
1260
- label: "[shape] A testimonial section uses a quote mark SVG that morphs between an opening and closing quote mark as each testimonial transitions — the opening curls unfurl and re-curl as a continuous morph loop that punctuates each quote change."
1261
- value: "A testimonial section uses a quote mark SVG that morphs between an opening and closing quote mark as each testimonial transitions — the opening curls unfurl and re-curl as a continuous morph loop that punctuates each quote change."
1262
- section: morphing_svg_paths
1263
- enabled: false
1264
- - key: animations.hero_cinematic_intro.enabled
1265
- type: text
1266
- label: "Hero Cinematic Intro — enable category"
1267
- value: ""
1268
- section: hero_cinematic_intro
1269
- enabled: false
1270
- - key: animations.hero_cinematic_intro.1
1271
- type: text
1272
- label: "[sequence] On page load, the hero background fades in first, then the headline clips up into view from below its mask, then the subtext fades in, then the CTA button pops in with a scale from 90% — each element staggered 200ms apart in a deliberate, cinematic build."
1273
- value: "On page load, the hero background fades in first, then the headline clips up into view from below its mask, then the subtext fades in, then the CTA button pops in with a scale from 90% — each element staggered 200ms apart in a deliberate, cinematic build."
1274
- section: hero_cinematic_intro
1275
- enabled: false
1276
- - key: animations.hero_cinematic_intro.2
1277
- type: text
1278
- label: "[scale] The hero image starts at 120% scale and slowly zooms out to 100% over 2 seconds as the page loads — a Ken Burns entrance that makes the hero feel alive the moment the page appears, before any other element has animated in."
1279
- value: "The hero image starts at 120% scale and slowly zooms out to 100% over 2 seconds as the page loads — a Ken Burns entrance that makes the hero feel alive the moment the page appears, before any other element has animated in."
1280
- section: hero_cinematic_intro
1281
- enabled: false
1282
- - key: animations.hero_cinematic_intro.3
1283
- type: text
1284
- label: "[sequence] The page begins completely black."
1285
- value: "The page begins completely black. The hero background fades in from black over 1 second, then the logo drops from above, then the headline reveals line by line, then a thin horizontal rule draws across the full width — a dramatic theatrical curtain-raise."
1286
- section: hero_cinematic_intro
1287
- enabled: false
1288
- - key: animations.hero_cinematic_intro.4
1289
- type: text
1290
- label: "[split] The hero section splits apart on load — the top half slides upward and the bottom half slides downward, parting like stage curtains to reveal the headline text in the center, which fades in simultaneously as the halves travel outward."
1291
- value: "The hero section splits apart on load — the top half slides upward and the bottom half slides downward, parting like stage curtains to reveal the headline text in the center, which fades in simultaneously as the halves travel outward."
1292
- section: hero_cinematic_intro
1293
- enabled: false
1294
- - key: animations.hero_cinematic_intro.5
1295
- type: text
1296
- label: "[scale] A full-bleed hero video starts paused at frame zero, invisible."
1297
- value: "A full-bleed hero video starts paused at frame zero, invisible. On load, it fades in and begins playing while simultaneously the headline text drops from 0% opacity to full — the video and type arrive together as a unified moment."
1298
- section: hero_cinematic_intro
1299
- enabled: false
1300
- - key: animations.hero_cinematic_intro.6
1301
- type: text
1302
- label: "[sequence] The hero loads with a staggered grid of image tiles — 12 squares that each fade in from white to the hero image content with a random stagger between 0 and 800ms — so the full image assembles itself from a mosaic of arriving pieces."
1303
- value: "The hero loads with a staggered grid of image tiles — 12 squares that each fade in from white to the hero image content with a random stagger between 0 and 800ms — so the full image assembles itself from a mosaic of arriving pieces."
1304
- section: hero_cinematic_intro
1305
- enabled: false
1306
- - key: animations.hero_cinematic_intro.7
1307
- type: text
1308
- label: "[split] On load, the hero background slides in from the left while the hero text slides in from the right — both traveling to meet at center simultaneously — creating a converging composition that locks into place as a unified whole."
1309
- value: "On load, the hero background slides in from the left while the hero text slides in from the right — both traveling to meet at center simultaneously — creating a converging composition that locks into place as a unified whole."
1310
- section: hero_cinematic_intro
1311
- enabled: false
1312
- - key: animations.hero_cinematic_intro.8
1313
- type: text
1314
- label: "[scale] The hero loads with the entire viewport at scale 1."
1315
- value: "The hero loads with the entire viewport at scale 1.15 and zooms smoothly to scale 1.0 over 1.5 seconds while opacity goes from 0 to 1 — the whole scene expanding into view as if the camera is pulling back to reveal the full picture."
1316
- section: hero_cinematic_intro
1317
- enabled: false
1318
- - key: animations.hero_cinematic_intro.9
1319
- type: text
1320
- label: "[sequence] Each word of the hero headline arrives from a different direction — first word from the left, second from above, third from the right, fourth from below — all converging to their correct positions simultaneously, 400ms after page load."
1321
- value: "Each word of the hero headline arrives from a different direction — first word from the left, second from above, third from the right, fourth from below — all converging to their correct positions simultaneously, 400ms after page load."
1322
- section: hero_cinematic_intro
1323
- enabled: false
1324
- - key: animations.hero_cinematic_intro.10
1325
- type: text
1326
- label: "[split] The hero features a large circular image that starts as a tiny dot in the center of the screen and expands radially to its full size over 1 second — an iris-open reveal that bursts open to expose the hero content."
1327
- value: "The hero features a large circular image that starts as a tiny dot in the center of the screen and expands radially to its full size over 1 second — an iris-open reveal that bursts open to expose the hero content."
1328
- section: hero_cinematic_intro
1329
- enabled: false
1330
- - key: animations.hero_cinematic_intro.11
1331
- type: text
1332
- label: "[scale] The hero background image loads in sharp but then a motion blur is applied that clears over 800ms — as if the camera just stopped panning and the scene is coming into focus — before the headline fades in over the sharp image."
1333
- value: "The hero background image loads in sharp but then a motion blur is applied that clears over 800ms — as if the camera just stopped panning and the scene is coming into focus — before the headline fades in over the sharp image."
1334
- section: hero_cinematic_intro
1335
- enabled: false
1336
- - key: animations.hero_cinematic_intro.12
1337
- type: text
1338
- label: "[sequence] A full-screen headline is the first thing visible — large, centered, already in place."
1339
- value: "A full-screen headline is the first thing visible — large, centered, already in place. Then the background image fades in behind it over 1.2 seconds, placing the text in context — reversing the typical order to lead with the message."
1340
- section: hero_cinematic_intro
1341
- enabled: false
1342
- - key: animations.hero_cinematic_intro.13
1343
- type: text
1344
- label: "[split] The hero uses a venetian blind entrance — horizontal strips of the hero image each slide in from alternating left and right positions, assembling the full image from top to bottom like shutters closing over a window."
1345
- value: "The hero uses a venetian blind entrance — horizontal strips of the hero image each slide in from alternating left and right positions, assembling the full image from top to bottom like shutters closing over a window."
1346
- section: hero_cinematic_intro
1347
- enabled: false
1348
- - key: animations.hero_cinematic_intro.14
1349
- type: text
1350
- label: "[scale] The hero number or year stat starts at 1000% scale — enormous and filling the screen — and rapidly zooms out to its final size over 600ms as other hero elements fade in around it."
1351
- value: "The hero number or year stat starts at 1000% scale — enormous and filling the screen — and rapidly zooms out to its final size over 600ms as other hero elements fade in around it. The scale-down creates a crash-zoom effect."
1352
- section: hero_cinematic_intro
1353
- enabled: false
1354
- - key: animations.hero_cinematic_intro.15
1355
- type: text
1356
- label: "[sequence] On load: background is immediate, headline clips in from a mask, then a thin animated underline draws under the key word left-to-right over 400ms, then the subheading fades up, then the CTA appears with a gentle scale — five beats, perfectly timed."
1357
- value: "On load: background is immediate, headline clips in from a mask, then a thin animated underline draws under the key word left-to-right over 400ms, then the subheading fades up, then the CTA appears with a gentle scale — five beats, perfectly timed."
1358
- section: hero_cinematic_intro
1359
- enabled: false
1360
- - key: animations.hero_cinematic_intro.16
1361
- type: text
1362
- label: "[split] The hero headline text and background image swap layers on entry — the text arrives first as large dark letters on white, then the background image crossfades in behind them over 800ms, recontextualizing the already-visible words."
1363
- value: "The hero headline text and background image swap layers on entry — the text arrives first as large dark letters on white, then the background image crossfades in behind them over 800ms, recontextualizing the already-visible words."
1364
- section: hero_cinematic_intro
1365
- enabled: false
1366
- - key: animations.hero_cinematic_intro.17
1367
- type: text
1368
- label: "[scale] A hero section enters with a depth pop — all elements start at their final positions but with a slight rotateX 5 degrees, as if the page is lying flat, then rotate to face-forward over 1 second — the whole scene tilting up to greet the viewer."
1369
- value: "A hero section enters with a depth pop — all elements start at their final positions but with a slight rotateX 5 degrees, as if the page is lying flat, then rotate to face-forward over 1 second — the whole scene tilting up to greet the viewer."
1370
- section: hero_cinematic_intro
1371
- enabled: false
1372
- - key: animations.hero_cinematic_intro.18
1373
- type: text
1374
- label: "[sequence] The page loads to a hero with just one word visible — the brand verb."
1375
- value: "The page loads to a hero with just one word visible — the brand verb. Then the full headline builds around it word by word, then the background image fades in, then supporting elements arrive — expanding outward from the single central word."
1376
- section: hero_cinematic_intro
1377
- enabled: false
1378
- - key: animations.hero_cinematic_intro.19
1379
- type: text
1380
- label: "[split] The hero image is split into left and right halves."
1381
- value: "The hero image is split into left and right halves. On load, the left half slides in from the left and the right half from the right, meeting at center — and as they meet the headline text fades in at the seam between them."
1382
- section: hero_cinematic_intro
1383
- enabled: false
1384
- - key: animations.hero_cinematic_intro.20
1385
- type: text
1386
- label: "[scale] The hero intro uses a slow film-grain texture overlay at 80% opacity that fades out over 2 seconds after load — leaving the clean hero beneath — creating a vintage projector-warming-up feel that transitions into the modern design."
1387
- value: "The hero intro uses a slow film-grain texture overlay at 80% opacity that fades out over 2 seconds after load — leaving the clean hero beneath — creating a vintage projector-warming-up feel that transitions into the modern design."
1388
- section: hero_cinematic_intro
1389
- enabled: false
1390
- - key: animations.scroll_progress_indicator.enabled
1391
- type: text
1392
- label: "Scroll Progress Indicator — enable category"
1393
- value: ""
1394
- section: scroll_progress_indicator
1395
- enabled: false
1396
- - key: animations.scroll_progress_indicator.1
1397
- type: text
1398
- label: "[bar] A thin horizontal bar sits at the very top of the viewport, pinned above the navigation."
1399
- value: "A thin horizontal bar sits at the very top of the viewport, pinned above the navigation. It fills from left to right as the user scrolls the page, reaching full width exactly when the footer is reached — a clean, unobtrusive reading progress indicator."
1400
- section: scroll_progress_indicator
1401
- enabled: false
1402
- - key: animations.scroll_progress_indicator.2
1403
- type: text
1404
- label: "[circle] A circular progress ring sits in the bottom-right corner of the screen."
1405
- value: "A circular progress ring sits in the bottom-right corner of the screen. Its stroke draws clockwise from the 12 o'clock position as the user scrolls, and a percentage number in the center counts up from 0 to 100 in sync with scroll progress."
1406
- section: scroll_progress_indicator
1407
- enabled: false
1408
- - key: animations.scroll_progress_indicator.3
1409
- type: text
1410
- label: "[bar] Each major section of the page has its own progress bar at the top — a thin colored line that fills as the user scrolls through that section, and empties when they leave."
1411
- value: "Each major section of the page has its own progress bar at the top — a thin colored line that fills as the user scrolls through that section, and empties when they leave. The color changes per section to match the section's brand color."
1412
- section: scroll_progress_indicator
1413
- enabled: false
1414
- - key: animations.scroll_progress_indicator.4
1415
- type: text
1416
- label: "[path] A vertical SVG path runs along the left edge of the screen — a winding, organic line."
1417
- value: "A vertical SVG path runs along the left edge of the screen — a winding, organic line. As the user scrolls, a colored fill traces along the path from top to bottom, like ink flowing through a drawn line, marking reading progress artistically."
1418
- section: scroll_progress_indicator
1419
- enabled: false
1420
- - key: animations.scroll_progress_indicator.5
1421
- type: text
1422
- label: "[circle] A scroll progress indicator uses a morphing blob rather than a ring — the blob starts as a small dot at the bottom of the screen and grows and reshapes as the user scrolls, becoming larger and more complex toward the top of the page."
1423
- value: "A scroll progress indicator uses a morphing blob rather than a ring — the blob starts as a small dot at the bottom of the screen and grows and reshapes as the user scrolls, becoming larger and more complex toward the top of the page."
1424
- section: scroll_progress_indicator
1425
- enabled: false
1426
- - key: animations.scroll_progress_indicator.6
1427
- type: text
1428
- label: "[bar] The section navigation in the sidebar has individual progress bars for each section link — each bar fills proportionally as the user scrolls through its section and depletes as they leave, showing not just which section they're in but how far through it."
1429
- value: "The section navigation in the sidebar has individual progress bars for each section link — each bar fills proportionally as the user scrolls through its section and depletes as they leave, showing not just which section they're in but how far through it."
1430
- section: scroll_progress_indicator
1431
- enabled: false
1432
- - key: animations.scroll_progress_indicator.7
1433
- type: text
1434
- label: "[path] A dotted path connects section markers down the left side of the page like a map trail."
1435
- value: "A dotted path connects section markers down the left side of the page like a map trail. As the user scrolls, each dot pulses and fills in as they pass it, and the connecting line between filled dots brightens — a journey metaphor for page progress."
1436
- section: scroll_progress_indicator
1437
- enabled: false
1438
- - key: animations.scroll_progress_indicator.8
1439
- type: text
1440
- label: "[circle] The page's scroll progress is shown as a clock face — the hand sweeps clockwise from 12 as the user scrolls, reaching 12 again at the bottom of the page."
1441
- value: "The page's scroll progress is shown as a clock face — the hand sweeps clockwise from 12 as the user scrolls, reaching 12 again at the bottom of the page. Hour markers pulse as the hand passes them, representing major page sections."
1442
- section: scroll_progress_indicator
1443
- enabled: false
1444
- - key: animations.scroll_progress_indicator.9
1445
- type: text
1446
- label: "[bar] The hero image at the top of the page has a horizontal progress bar overlaid at its bottom edge."
1447
- value: "The hero image at the top of the page has a horizontal progress bar overlaid at its bottom edge. As the user scrolls away from the hero, the bar fills — when they've scrolled one full viewport height, it's complete and fades out."
1448
- section: scroll_progress_indicator
1449
- enabled: false
1450
- - key: animations.scroll_progress_indicator.10
1451
- type: text
1452
- label: "[path] A vertical progress indicator uses a ruler motif — a thin vertical line with tick marks."
1453
- value: "A vertical progress indicator uses a ruler motif — a thin vertical line with tick marks. A sliding marker travels downward along the ruler as the user scrolls, and a numerical depth reading beside it counts up in pixels or percent."
1454
- section: scroll_progress_indicator
1455
- enabled: false
1456
- - key: animations.scroll_progress_indicator.11
1457
- type: text
1458
- label: "[circle] Page section pills in the navigation each contain a micro progress arc — as the user scrolls into a section, that pill's arc begins filling, and completes just as the next section starts."
1459
- value: "Page section pills in the navigation each contain a micro progress arc — as the user scrolls into a section, that pill's arc begins filling, and completes just as the next section starts. Tapping the pill smoothly scrolls to that section's start."
1460
- section: scroll_progress_indicator
1461
- enabled: false
1462
- - key: animations.scroll_progress_indicator.12
1463
- type: text
1464
- label: "[bar] The page footer has an arrival progress bar — a bar that starts empty when the footer first enters the viewport and fills as the user scrolls until the footer is fully visible."
1465
- value: "The page footer has an arrival progress bar — a bar that starts empty when the footer first enters the viewport and fills as the user scrolls until the footer is fully visible. Reaching 100% triggers a subtle congratulatory animation."
1466
- section: scroll_progress_indicator
1467
- enabled: false
1468
- - key: animations.scroll_progress_indicator.13
1469
- type: text
1470
- label: "[path] Scroll progress is shown as a vertical waveform along the right edge of the screen — as the user scrolls, the waveform draws downward, its amplitude varying to reflect the length of each section — short sections produce narrow waves, long ones wide."
1471
- value: "Scroll progress is shown as a vertical waveform along the right edge of the screen — as the user scrolls, the waveform draws downward, its amplitude varying to reflect the length of each section — short sections produce narrow waves, long ones wide."
1472
- section: scroll_progress_indicator
1473
- enabled: false
1474
- - key: animations.scroll_progress_indicator.14
1475
- type: text
1476
- label: "[circle] A large, nearly full-screen circle ring is centered behind the page content at low opacity."
1477
- value: "A large, nearly full-screen circle ring is centered behind the page content at low opacity. Its stroke draws as the user scrolls, making a gigantic subtle progress ring that the content sits inside — visible on close inspection but not distracting."
1478
- section: scroll_progress_indicator
1479
- enabled: false
1480
- - key: animations.scroll_progress_indicator.15
1481
- type: text
1482
- label: "[bar] Chapter-based long-form content has a timeline bar along the bottom of the screen divided into labeled chapters."
1483
- value: "Chapter-based long-form content has a timeline bar along the bottom of the screen divided into labeled chapters. A playhead marker slides along it as the user scrolls, and each chapter label highlights when the playhead enters its range."
1484
- section: scroll_progress_indicator
1485
- enabled: false
1486
- - key: animations.scroll_progress_indicator.16
1487
- type: text
1488
- label: "[path] An SVG drawing of a road or path winds down the page layout."
1489
- value: "An SVG drawing of a road or path winds down the page layout. A car or traveler icon follows the path as the user scrolls, moving along the road in sync with scroll progress — a literal journey metaphor for navigating long content."
1490
- section: scroll_progress_indicator
1491
- enabled: false
1492
- - key: animations.scroll_progress_indicator.17
1493
- type: text
1494
- label: "[circle] The loading state before the page is ready uses the same circular progress ring that later shows reading progress — the ring fills during load, then immediately begins tracking scroll progress, creating continuity between the two states."
1495
- value: "The loading state before the page is ready uses the same circular progress ring that later shows reading progress — the ring fills during load, then immediately begins tracking scroll progress, creating continuity between the two states."
1496
- section: scroll_progress_indicator
1497
- enabled: false
1498
- - key: animations.scroll_progress_indicator.18
1499
- type: text
1500
- label: "[bar] Each paragraph in a long article has a tiny dot beside it in the left margin."
1501
- value: "Each paragraph in a long article has a tiny dot beside it in the left margin. As the user scrolls past each paragraph, the dot fills in with the accent color — so the entire left margin gradually fills with color as the article is read."
1502
- section: scroll_progress_indicator
1503
- enabled: false
1504
- - key: animations.scroll_progress_indicator.19
1505
- type: text
1506
- label: "[path] Scroll progress powers a constellation animation — stars appear in a star map illustration as the user scrolls, connecting into constellation line patterns section by section, completing the full constellation when the user reaches the end of the page."
1507
- value: "Scroll progress powers a constellation animation — stars appear in a star map illustration as the user scrolls, connecting into constellation line patterns section by section, completing the full constellation when the user reaches the end of the page."
1508
- section: scroll_progress_indicator
1509
- enabled: false
1510
- - key: animations.scroll_progress_indicator.20
1511
- type: text
1512
- label: "[circle] A radial menu in the corner shows section icons arranged in a semicircle."
1513
- value: "A radial menu in the corner shows section icons arranged in a semicircle. As the user scrolls through each section, the corresponding icon pulses to the foreground and the arc between icons fills — a compass-like guide to page position."
1514
- section: scroll_progress_indicator
1515
- enabled: false
1516
- - key: animations.image_clip_reveal.enabled
1517
- type: text
1518
- label: "Image Clip Reveal — enable category"
1519
- value: ""
1520
- section: image_clip_reveal
1521
- enabled: false
1522
- - key: animations.image_clip_reveal.1
1523
- type: text
1524
- label: "[wipe] As the image section scrolls into view, a rectangular clip-path wipes from left to right across the image, revealing it from edge to edge over 800ms with a smooth cubic ease — clean, editorial, and highly satisfying."
1525
- value: "As the image section scrolls into view, a rectangular clip-path wipes from left to right across the image, revealing it from edge to edge over 800ms with a smooth cubic ease — clean, editorial, and highly satisfying."
1526
- section: image_clip_reveal
1527
- enabled: false
1528
- - key: animations.image_clip_reveal.2
1529
- type: text
1530
- label: "[iris] The image reveals from the center outward as a growing circle clip-path — starting as a tiny dot at the image's focal point and expanding until the full rectangular image is visible, like a camera iris opening on the subject."
1531
- value: "The image reveals from the center outward as a growing circle clip-path — starting as a tiny dot at the image's focal point and expanding until the full rectangular image is visible, like a camera iris opening on the subject."
1532
- section: image_clip_reveal
1533
- enabled: false
1534
- - key: animations.image_clip_reveal.3
1535
- type: text
1536
- label: "[wipe] A vertical wipe reveals the image from top to bottom — a horizontal clip edge descends across the frame, and behind it the image appears in full detail, as if a physical blind is being raised to expose the photo beneath."
1537
- value: "A vertical wipe reveals the image from top to bottom — a horizontal clip edge descends across the frame, and behind it the image appears in full detail, as if a physical blind is being raised to expose the photo beneath."
1538
- section: image_clip_reveal
1539
- enabled: false
1540
- - key: animations.image_clip_reveal.4
1541
- type: text
1542
- label: "[diagonal] The clip-path reveal travels diagonally from the top-left corner to the bottom-right — a triangular mask that expands across the image frame, revealing the photo along a diagonal front that sweeps the composition corner to corner."
1543
- value: "The clip-path reveal travels diagonally from the top-left corner to the bottom-right — a triangular mask that expands across the image frame, revealing the photo along a diagonal front that sweeps the composition corner to corner."
1544
- section: image_clip_reveal
1545
- enabled: false
1546
- - key: animations.image_clip_reveal.5
1547
- type: text
1548
- label: "[wipe] A hero image pair reveals with opposing wipes — the left image wipes from left to right and the right image wipes from right to left simultaneously, both images arriving at center together to frame the headline between them."
1549
- value: "A hero image pair reveals with opposing wipes — the left image wipes from left to right and the right image wipes from right to left simultaneously, both images arriving at center together to frame the headline between them."
1550
- section: image_clip_reveal
1551
- enabled: false
1552
- - key: animations.image_clip_reveal.6
1553
- type: text
1554
- label: "[iris] A circular clip reveal starts not at the center but at the subject's face or key focal point of the photo — the iris expands outward from the most important part of the image, drawing the eye before the full context is visible."
1555
- value: "A circular clip reveal starts not at the center but at the subject's face or key focal point of the photo — the iris expands outward from the most important part of the image, drawing the eye before the full context is visible."
1556
- section: image_clip_reveal
1557
- enabled: false
1558
- - key: animations.image_clip_reveal.7
1559
- type: text
1560
- label: "[diagonal] An image grid reveals each item with a diagonal wipe but on alternating diagonals — odd items wipe from top-left to bottom-right, even items from top-right to bottom-left — creating a herringbone reveal pattern across the grid."
1561
- value: "An image grid reveals each item with a diagonal wipe but on alternating diagonals — odd items wipe from top-left to bottom-right, even items from top-right to bottom-left — creating a herringbone reveal pattern across the grid."
1562
- section: image_clip_reveal
1563
- enabled: false
1564
- - key: animations.image_clip_reveal.8
1565
- type: text
1566
- label: "[wipe] The image sits behind a colored overlay at page load."
1567
- value: "The image sits behind a colored overlay at page load. On scroll trigger, the overlay wipes away in the same direction as the nearest page edge — the image and its color plate separate, with the overlay sliding off to reveal the photo underneath."
1568
- section: image_clip_reveal
1569
- enabled: false
1570
- - key: animations.image_clip_reveal.9
1571
- type: text
1572
- label: "[iris] Multiple small circular reveals happen simultaneously across the image — six iris openings spread across the frame, each starting at a different point and expanding until their circles overlap and merge into the fully revealed image."
1573
- value: "Multiple small circular reveals happen simultaneously across the image — six iris openings spread across the frame, each starting at a different point and expanding until their circles overlap and merge into the fully revealed image."
1574
- section: image_clip_reveal
1575
- enabled: false
1576
- - key: animations.image_clip_reveal.10
1577
- type: text
1578
- label: "[diagonal] A product image reveals with a chevron-shaped clip — two diagonal wipes originating from the left center and traveling to the top-right and bottom-right corners simultaneously, uncovering the image in a V-shape from left to right."
1579
- value: "A product image reveals with a chevron-shaped clip — two diagonal wipes originating from the left center and traveling to the top-right and bottom-right corners simultaneously, uncovering the image in a V-shape from left to right."
1580
- section: image_clip_reveal
1581
- enabled: false
1582
- - key: animations.image_clip_reveal.11
1583
- type: text
1584
- label: "[wipe] The image reveal is tied directly to scroll position — as the user scrolls down, the clip boundary descends 1:1 with scroll distance, so the user controls exactly how much of the image is visible by how far they scroll."
1585
- value: "The image reveal is tied directly to scroll position — as the user scrolls down, the clip boundary descends 1:1 with scroll distance, so the user controls exactly how much of the image is visible by how far they scroll."
1586
- section: image_clip_reveal
1587
- enabled: false
1588
- - key: animations.image_clip_reveal.12
1589
- type: text
1590
- label: "[iris] A portrait image reveals from bottom to top as an expanding ellipse — wider than tall — that grows upward from the chin to the crown, revealing the face in a natural reading order from below, as if emerging from darkness."
1591
- value: "A portrait image reveals from bottom to top as an expanding ellipse — wider than tall — that grows upward from the chin to the crown, revealing the face in a natural reading order from below, as if emerging from darkness."
1592
- section: image_clip_reveal
1593
- enabled: false
1594
- - key: animations.image_clip_reveal.13
1595
- type: text
1596
- label: "[diagonal] A full-section background image reveals with a diagonal wipe that starts at the top-right corner and sweeps to the bottom-left — the reveal travels against the typical reading direction, creating a dynamic tension in the composition."
1597
- value: "A full-section background image reveals with a diagonal wipe that starts at the top-right corner and sweeps to the bottom-left — the reveal travels against the typical reading direction, creating a dynamic tension in the composition."
1598
- section: image_clip_reveal
1599
- enabled: false
1600
- - key: animations.image_clip_reveal.14
1601
- type: text
1602
- label: "[wipe] An image is revealed through the negative space of large type — the clip-path is shaped like the section's headline letters, and the wipe expands the letterform cutouts until the whole image is visible, text becoming the reveal mechanism."
1603
- value: "An image is revealed through the negative space of large type — the clip-path is shaped like the section's headline letters, and the wipe expands the letterform cutouts until the whole image is visible, text becoming the reveal mechanism."
1604
- section: image_clip_reveal
1605
- enabled: false
1606
- - key: animations.image_clip_reveal.15
1607
- type: text
1608
- label: "[iris] On hover, a thumbnail image expands from its natural size using an iris clip reveal — the clip circle is perfectly sized to the thumbnail on hover start and expands to a larger featured size, so the image grows without a hard cut."
1609
- value: "On hover, a thumbnail image expands from its natural size using an iris clip reveal — the clip circle is perfectly sized to the thumbnail on hover start and expands to a larger featured size, so the image grows without a hard cut."
1610
- section: image_clip_reveal
1611
- enabled: false
1612
- - key: animations.image_clip_reveal.16
1613
- type: text
1614
- label: "[diagonal] A timeline image section reveals each photo with a wipe that matches the timeline direction — past events wipe from the left edge, future events from the right — so the reveal direction encodes the image's temporal position."
1615
- value: "A timeline image section reveals each photo with a wipe that matches the timeline direction — past events wipe from the left edge, future events from the right — so the reveal direction encodes the image's temporal position."
1616
- section: image_clip_reveal
1617
- enabled: false
1618
- - key: animations.image_clip_reveal.17
1619
- type: text
1620
- label: "[wipe] The image reveal uses a multi-strip wipe — the image is divided into five vertical strips, each clip-path opening upward with a stagger of 60ms — the image assembles itself in a venetian-blind upward reveal."
1621
- value: "The image reveal uses a multi-strip wipe — the image is divided into five vertical strips, each clip-path opening upward with a stagger of 60ms — the image assembles itself in a venetian-blind upward reveal."
1622
- section: image_clip_reveal
1623
- enabled: false
1624
- - key: animations.image_clip_reveal.18
1625
- type: text
1626
- label: "[iris] A case study hero image reveals with a slow, deliberate iris expand over 1."
1627
- value: "A case study hero image reveals with a slow, deliberate iris expand over 1.5 seconds — much slower than a typical entrance — timed to coincide with a headline that builds word by word over the same duration, both arriving together."
1628
- section: image_clip_reveal
1629
- enabled: false
1630
- - key: animations.image_clip_reveal.19
1631
- type: text
1632
- label: "[diagonal] A feature image reveals with a diamond-shaped clip that expands from the center — four triangular clip edges peeling back simultaneously toward the four corners — turning the reveal into an X-shape that opens outward."
1633
- value: "A feature image reveals with a diamond-shaped clip that expands from the center — four triangular clip edges peeling back simultaneously toward the four corners — turning the reveal into an X-shape that opens outward."
1634
- section: image_clip_reveal
1635
- enabled: false
1636
- - key: animations.image_clip_reveal.20
1637
- type: text
1638
- label: "[wipe] On mobile scroll, images reveal with a bottom-to-top clip wipe to match the natural upward scroll direction — the clip edge travels in the same direction the user's thumb is moving, making the reveal feel physically connected to the gesture."
1639
- value: "On mobile scroll, images reveal with a bottom-to-top clip wipe to match the natural upward scroll direction — the clip edge travels in the same direction the user's thumb is moving, making the reveal feel physically connected to the gesture."
1640
- section: image_clip_reveal
1641
- enabled: false
1642
- - key: animations.lottie_svg_scrub.enabled
1643
- type: text
1644
- label: "Lottie Svg Scrub — enable category"
1645
- value: ""
1646
- section: lottie_svg_scrub
1647
- enabled: false
1648
- - key: animations.lottie_svg_scrub.1
1649
- type: text
1650
- label: "[scrub] Pin the section and tie a Lottie animation's playhead directly to scroll position — as the user scrolls down the animation advances frame by frame, and scrolling up rewinds it — giving the user full control over the animated story."
1651
- value: "Pin the section and tie a Lottie animation's playhead directly to scroll position — as the user scrolls down the animation advances frame by frame, and scrolling up rewinds it — giving the user full control over the animated story."
1652
- section: lottie_svg_scrub
1653
- enabled: false
1654
- - key: animations.lottie_svg_scrub.2
1655
- type: text
1656
- label: "[trigger] A complex SVG line drawing of a product is drawn stroke by stroke as it scrolls into view — each path's strokeDashoffset animates from full dash to zero, staggered so the lines appear to be drawn in real time by an invisible hand."
1657
- value: "A complex SVG line drawing of a product is drawn stroke by stroke as it scrolls into view — each path's strokeDashoffset animates from full dash to zero, staggered so the lines appear to be drawn in real time by an invisible hand."
1658
- section: lottie_svg_scrub
1659
- enabled: false
1660
- - key: animations.lottie_svg_scrub.3
1661
- type: text
1662
- label: "[scrub] A Lottie character animation is scrubbed by scroll — the character walks in place as the scroll advances, and the background behind them scrolls to create the illusion that the character is actually traveling through the scene."
1663
- value: "A Lottie character animation is scrubbed by scroll — the character walks in place as the scroll advances, and the background behind them scrolls to create the illusion that the character is actually traveling through the scene."
1664
- section: lottie_svg_scrub
1665
- enabled: false
1666
- - key: animations.lottie_svg_scrub.4
1667
- type: text
1668
- label: "[trigger] An SVG world map has flight path lines that draw in one by one as the section scrolls — each arc path animates its strokeDashoffset from hidden to visible in sequence, with a pulse dot traveling along each path after it completes."
1669
- value: "An SVG world map has flight path lines that draw in one by one as the section scrolls — each arc path animates its strokeDashoffset from hidden to visible in sequence, with a pulse dot traveling along each path after it completes."
1670
- section: lottie_svg_scrub
1671
- enabled: false
1672
- - key: animations.lottie_svg_scrub.5
1673
- type: text
1674
- label: "[scrub] A Lottie data visualization animates on scroll — bars grow, lines chart upward, and numbers tick over — all driven by the scroll progress, so the user can slow-scroll to watch the data build or fast-scroll to see the final state immediately."
1675
- value: "A Lottie data visualization animates on scroll — bars grow, lines chart upward, and numbers tick over — all driven by the scroll progress, so the user can slow-scroll to watch the data build or fast-scroll to see the final state immediately."
1676
- section: lottie_svg_scrub
1677
- enabled: false
1678
- - key: animations.lottie_svg_scrub.6
1679
- type: text
1680
- label: "[trigger] An SVG icon library section reveals each icon by drawing it — the paths animate in with a stroke draw effect staggered by grid position, left to right top to bottom, so the icons appear to be sketched in front of the user."
1681
- value: "An SVG icon library section reveals each icon by drawing it — the paths animate in with a stroke draw effect staggered by grid position, left to right top to bottom, so the icons appear to be sketched in front of the user."
1682
- section: lottie_svg_scrub
1683
- enabled: false
1684
- - key: animations.lottie_svg_scrub.7
1685
- type: text
1686
- label: "[scrub] A Lottie explainer animation of a complex process — like how a product works — is pinned and scrubbed."
1687
- value: "A Lottie explainer animation of a complex process — like how a product works — is pinned and scrubbed. Progress markers appear at key animation frames as the scroll reaches them, labeling each stage of the process as it animates."
1688
- section: lottie_svg_scrub
1689
- enabled: false
1690
- - key: animations.lottie_svg_scrub.8
1691
- type: text
1692
- label: "[trigger] An SVG signature or handwriting element draws itself on scroll entry — the letterform paths animate from 0% to 100% strokeDashoffset in sequence following the natural pen path, making the signature appear to be written in real time."
1693
- value: "An SVG signature or handwriting element draws itself on scroll entry — the letterform paths animate from 0% to 100% strokeDashoffset in sequence following the natural pen path, making the signature appear to be written in real time."
1694
- section: lottie_svg_scrub
1695
- enabled: false
1696
- - key: animations.lottie_svg_scrub.9
1697
- type: text
1698
- label: "[scrub] A Lottie animated logo reveal is tied to page scroll progress — at 0% scroll the logo is in its pre-animation state, at 50% it reaches its most complex animated state, and at 100% it settles into its final clean logomark."
1699
- value: "A Lottie animated logo reveal is tied to page scroll progress — at 0% scroll the logo is in its pre-animation state, at 50% it reaches its most complex animated state, and at 100% it settles into its final clean logomark."
1700
- section: lottie_svg_scrub
1701
- enabled: false
1702
- - key: animations.lottie_svg_scrub.10
1703
- type: text
1704
- label: "[trigger] An infographic SVG with multiple data layers animates each layer in sequence on scroll — the base grid draws first, then the data lines plot themselves, then the data points drop in with a scale bounce, then labels fade in beside each point."
1705
- value: "An infographic SVG with multiple data layers animates each layer in sequence on scroll — the base grid draws first, then the data lines plot themselves, then the data points drop in with a scale bounce, then labels fade in beside each point."
1706
- section: lottie_svg_scrub
1707
- enabled: false
1708
- - key: animations.lottie_svg_scrub.11
1709
- type: text
1710
- label: "[scrub] A Lottie animation of seasons changing — spring to summer to autumn to winter — is scrubbed by vertical scroll."
1711
- value: "A Lottie animation of seasons changing — spring to summer to autumn to winter — is scrubbed by vertical scroll. The landscape transforms over the scroll journey of the page, completing the full seasonal cycle by the time the footer is reached."
1712
- section: lottie_svg_scrub
1713
- enabled: false
1714
- - key: animations.lottie_svg_scrub.12
1715
- type: text
1716
- label: "[trigger] A complex SVG circuit board illustration has each trace animate in as the section scrolls — paths light up in sequence following the circuit's logical flow from power input to components to output, like electricity traveling the board."
1717
- value: "A complex SVG circuit board illustration has each trace animate in as the section scrolls — paths light up in sequence following the circuit's logical flow from power input to components to output, like electricity traveling the board."
1718
- section: lottie_svg_scrub
1719
- enabled: false
1720
- - key: animations.lottie_svg_scrub.13
1721
- type: text
1722
- label: "[scrub] A Lottie character reacts to scroll velocity — scrolling slowly makes the character walk calmly, scrolling quickly makes them run, and scrolling very fast makes them sprint with exaggerated motion blur — velocity changes the animation playback rate."
1723
- value: "A Lottie character reacts to scroll velocity — scrolling slowly makes the character walk calmly, scrolling quickly makes them run, and scrolling very fast makes them sprint with exaggerated motion blur — velocity changes the animation playback rate."
1724
- section: lottie_svg_scrub
1725
- enabled: false
1726
- - key: animations.lottie_svg_scrub.14
1727
- type: text
1728
- label: "[trigger] An SVG architectural blueprint draws itself on scroll entry — structural lines appear first, then room labels, then dimension markers, then detail callouts — the plan assembling itself in the logical order a drafter would create it."
1729
- value: "An SVG architectural blueprint draws itself on scroll entry — structural lines appear first, then room labels, then dimension markers, then detail callouts — the plan assembling itself in the logical order a drafter would create it."
1730
- section: lottie_svg_scrub
1731
- enabled: false
1732
- - key: animations.lottie_svg_scrub.15
1733
- type: text
1734
- label: "[scrub] A Lottie loading animation morphs into a success or error state based on a form completion."
1735
- value: "A Lottie loading animation morphs into a success or error state based on a form completion. The loading Lottie plays normally during wait, then the scroll (or a state change) triggers the jump to the success frame, which plays through to completion."
1736
- section: lottie_svg_scrub
1737
- enabled: false
1738
- - key: animations.lottie_svg_scrub.16
1739
- type: text
1740
- label: "[trigger] An SVG of a human body or anatomical diagram draws its systems in layers on scroll — skeleton first, then organ outlines, then detail lines, then labels — each system fading in over the previous as the scroll progresses through the section."
1741
- value: "An SVG of a human body or anatomical diagram draws its systems in layers on scroll — skeleton first, then organ outlines, then detail lines, then labels — each system fading in over the previous as the scroll progresses through the section."
1742
- section: lottie_svg_scrub
1743
- enabled: false
1744
- - key: animations.lottie_svg_scrub.17
1745
- type: text
1746
- label: "[scrub] A Lottie animation of a product being assembled is scrubbed by scroll — each scroll increment reveals the next component being added, so the user must scroll through the entire build process to see the finished product revealed."
1747
- value: "A Lottie animation of a product being assembled is scrubbed by scroll — each scroll increment reveals the next component being added, so the user must scroll through the entire build process to see the finished product revealed."
1748
- section: lottie_svg_scrub
1749
- enabled: false
1750
- - key: animations.lottie_svg_scrub.18
1751
- type: text
1752
- label: "[trigger] An SVG timeline graphic draws its connecting line on scroll — a horizontal or vertical path animating its strokeDashoffset from start to end — and as the line reaches each event marker, that marker's dot scales in and its label fades up."
1753
- value: "An SVG timeline graphic draws its connecting line on scroll — a horizontal or vertical path animating its strokeDashoffset from start to end — and as the line reaches each event marker, that marker's dot scales in and its label fades up."
1754
- section: lottie_svg_scrub
1755
- enabled: false
1756
- - key: animations.lottie_svg_scrub.19
1757
- type: text
1758
- label: "[scrub] Two Lottie animations play in sync with scroll but at different speeds — a foreground animation advances at 1:1 scroll ratio while a background animation advances at 0."
1759
- value: "Two Lottie animations play in sync with scroll but at different speeds — a foreground animation advances at 1:1 scroll ratio while a background animation advances at 0.5x — creating a parallax effect between two layered animated scenes."
1760
- section: lottie_svg_scrub
1761
- enabled: false
1762
- - key: animations.lottie_svg_scrub.20
1763
- type: text
1764
- label: "[trigger] An SVG logo is drawn stroke by stroke on page load rather than on scroll — the brand mark assembles itself over 2 seconds as the very first animation on the page, with each path drawing in sequence from the logo's visual starting point."
1765
- value: "An SVG logo is drawn stroke by stroke on page load rather than on scroll — the brand mark assembles itself over 2 seconds as the very first animation on the page, with each path drawing in sequence from the logo's visual starting point."
1766
- section: lottie_svg_scrub
1767
- enabled: false
1768
- - key: animations.sticky_media_text_fade.enabled
1769
- type: text
1770
- label: "Sticky Media Text Fade — enable category"
1771
- value: ""
1772
- section: sticky_media_text_fade
1773
- enabled: false
1774
- - key: animations.sticky_media_text_fade.1
1775
- type: text
1776
- label: "[fade] Pin a product image or video on the right half of the screen while text blocks on the left scroll past it."
1777
- value: "Pin a product image or video on the right half of the screen while text blocks on the left scroll past it. Each text block fades in as it enters the center of the viewport and fades out as it leaves, with the media staying perfectly still throughout."
1778
- section: sticky_media_text_fade
1779
- enabled: false
1780
- - key: animations.sticky_media_text_fade.2
1781
- type: text
1782
- label: "[swap] A sticky full-bleed background video plays on loop while text sections scroll over it."
1783
- value: "A sticky full-bleed background video plays on loop while text sections scroll over it. Each new text section has a unique color overlay that crossfades in as the text arrives, tinting the video to match the current section's mood."
1784
- section: sticky_media_text_fade
1785
- enabled: false
1786
- - key: animations.sticky_media_text_fade.3
1787
- type: text
1788
- label: "[fade] Feature explanation sections each have a sticky phone mockup on the right."
1789
- value: "Feature explanation sections each have a sticky phone mockup on the right. As each feature text scrolls into view, the phone screen content crossfades to show that feature's UI — sticky device, swappable screen content."
1790
- section: sticky_media_text_fade
1791
- enabled: false
1792
- - key: animations.sticky_media_text_fade.4
1793
- type: text
1794
- label: "[reveal] A sticky 3D product render sits at center while feature bullet points scroll alongside it."
1795
- value: "A sticky 3D product render sits at center while feature bullet points scroll alongside it. As each bullet enters view, its corresponding part of the product highlights — a colored glow pulses on that component — then fades when the next bullet takes over."
1796
- section: sticky_media_text_fade
1797
- enabled: false
1798
- - key: animations.sticky_media_text_fade.5
1799
- type: text
1800
- label: "[fade] A documentary-style section pins a full-screen photo on the left while long-form text scrolls on the right."
1801
- value: "A documentary-style section pins a full-screen photo on the left while long-form text scrolls on the right. The photo has a vignette overlay that pulses at key paragraphs — darkening around the edges to draw focus — then relaxing again."
1802
- section: sticky_media_text_fade
1803
- enabled: false
1804
- - key: animations.sticky_media_text_fade.6
1805
- type: text
1806
- label: "[swap] A sticky laptop mockup displays a website demo."
1807
- value: "A sticky laptop mockup displays a website demo. As the user scrolls through feature descriptions beside it, the laptop screen animates to show different pages of the demo — each transition a smooth GSAP crossfade between screenshot states."
1808
- section: sticky_media_text_fade
1809
- enabled: false
1810
- - key: animations.sticky_media_text_fade.7
1811
- type: text
1812
- label: "[fade] Pin a video reel on the left half."
1813
- value: "Pin a video reel on the left half. As text sections scroll on the right, the video playback speed changes — slow during contemplative sections, faster during energetic ones — the text controls the video's pacing as a narrative tool."
1814
- section: sticky_media_text_fade
1815
- enabled: false
1816
- - key: animations.sticky_media_text_fade.8
1817
- type: text
1818
- label: "[reveal] A sticky infographic sits on the right side and builds up progressively as the user scrolls through explanatory text on the left — each text section adds a new layer or annotation to the infographic, growing the visual alongside the reading."
1819
- value: "A sticky infographic sits on the right side and builds up progressively as the user scrolls through explanatory text on the left — each text section adds a new layer or annotation to the infographic, growing the visual alongside the reading."
1820
- section: sticky_media_text_fade
1821
- enabled: false
1822
- - key: animations.sticky_media_text_fade.9
1823
- type: text
1824
- label: "[fade] A sticky map or diagram is on the left."
1825
- value: "A sticky map or diagram is on the left. As scrollable text sections highlight different regions or components, the corresponding area on the map highlights with a colored overlay that fades in and out — the map and text stay in perfect sync."
1826
- section: sticky_media_text_fade
1827
- enabled: false
1828
- - key: animations.sticky_media_text_fade.10
1829
- type: text
1830
- label: "[swap] A sticky split screen has media on one side and a quote block on the other."
1831
- value: "A sticky split screen has media on one side and a quote block on the other. As the user scrolls, the quote text cross-fades to the next quote while the media crossfades to its paired image — both sides swap simultaneously, always paired together."
1832
- section: sticky_media_text_fade
1833
- enabled: false
1834
- - key: animations.sticky_media_text_fade.11
1835
- type: text
1836
- label: "[fade] Pin an illustration on the right while text scrolls left."
1837
- value: "Pin an illustration on the right while text scrolls left. At each text section boundary, a new illustration element fades in on top of the existing illustration — building a complex layered scene incrementally as the user reads through the copy."
1838
- section: sticky_media_text_fade
1839
- enabled: false
1840
- - key: animations.sticky_media_text_fade.12
1841
- type: text
1842
- label: "[reveal] A sticky before/after image comparison sits pinned while scroll-driven text describes the transformation."
1843
- value: "A sticky before/after image comparison sits pinned while scroll-driven text describes the transformation. As the text advances, the divider of the before/after slider moves — revealing more of the after state as the benefits are described."
1844
- section: sticky_media_text_fade
1845
- enabled: false
1846
- - key: animations.sticky_media_text_fade.13
1847
- type: text
1848
- label: "[fade] A sticky full-bleed image on the right has a frosted glass text card overlaid on it."
1849
- value: "A sticky full-bleed image on the right has a frosted glass text card overlaid on it. The card content changes as scroll sections advance — the overlay fades out, the text updates, the overlay fades back in — the image stays, only the card changes."
1850
- section: sticky_media_text_fade
1851
- enabled: false
1852
- - key: animations.sticky_media_text_fade.14
1853
- type: text
1854
- label: "[swap] A sticky video plays a specific chapter when its paired text section is in view."
1855
- value: "A sticky video plays a specific chapter when its paired text section is in view. The video seeks to the chapter's timestamp as each text section scrolls into the active zone, playing the relevant segment while the user reads the description."
1856
- section: sticky_media_text_fade
1857
- enabled: false
1858
- - key: animations.sticky_media_text_fade.15
1859
- type: text
1860
- label: "[fade] A pinned product photo changes colorway as the user scrolls through color variant descriptions."
1861
- value: "A pinned product photo changes colorway as the user scrolls through color variant descriptions. The product image crossfades from one color to the next in sync with the scroll-in of the corresponding text — sticky frame, dynamic color."
1862
- section: sticky_media_text_fade
1863
- enabled: false
1864
- - key: animations.sticky_media_text_fade.16
1865
- type: text
1866
- label: "[reveal] A sticky statistical graphic pins on the left while text analysis scrolls on the right."
1867
- value: "A sticky statistical graphic pins on the left while text analysis scrolls on the right. Each text paragraph, as it enters view, highlights the corresponding data point in the graphic with a scale pulse and color shift — text and data in conversation."
1868
- section: sticky_media_text_fade
1869
- enabled: false
1870
- - key: animations.sticky_media_text_fade.17
1871
- type: text
1872
- label: "[fade] Pin a full-height image of a person or character."
1873
- value: "Pin a full-height image of a person or character. As text scrolls alongside, the character's expression subtly changes between photos — crossfading between shots where their pose or expression matches the emotional tone of the current text section."
1874
- section: sticky_media_text_fade
1875
- enabled: false
1876
- - key: animations.sticky_media_text_fade.18
1877
- type: text
1878
- label: "[swap] A sticky media area shows a rotating sequence of testimonial videos — each one loads as its corresponding text quote scrolls into the active viewport zone, pauses while the text is active, and transitions out as the next testimonial takes over."
1879
- value: "A sticky media area shows a rotating sequence of testimonial videos — each one loads as its corresponding text quote scrolls into the active viewport zone, pauses while the text is active, and transitions out as the next testimonial takes over."
1880
- section: sticky_media_text_fade
1881
- enabled: false
1882
- - key: animations.sticky_media_text_fade.19
1883
- type: text
1884
- label: "[fade] A sticky abstract animation plays in a loop on the left — particles, geometric shapes, or fluid motion."
1885
- value: "A sticky abstract animation plays in a loop on the left — particles, geometric shapes, or fluid motion. As text sections scroll, the animation's color palette crossfades to match each section's theme, the motion staying constant but the palette shifting."
1886
- section: sticky_media_text_fade
1887
- enabled: false
1888
- - key: animations.sticky_media_text_fade.20
1889
- type: text
1890
- label: "[reveal] A pinned process diagram adds glowing active-state highlights to each step as its description scrolls into view on the right — the diagram starts in a neutral muted state and lights up progressively, step by step, as the user reads through the process."
1891
- value: "A pinned process diagram adds glowing active-state highlights to each step as its description scrolls into view on the right — the diagram starts in a neutral muted state and lights up progressively, step by step, as the user reads through the process."
1892
- section: sticky_media_text_fade
1893
- enabled: false
1894
- - key: animations.counter_data_animation.enabled
1895
- type: text
1896
- label: "Counter Data Animation — enable category"
1897
- value: ""
1898
- section: counter_data_animation
1899
- enabled: false
1900
- - key: animations.counter_data_animation.1
1901
- type: text
1902
- label: "[counter] Statistics section with large numbers that count up from zero to their final values as they scroll into the viewport — each number uses a power2."
1903
- value: "Statistics section with large numbers that count up from zero to their final values as they scroll into the viewport — each number uses a power2.out ease so it accelerates quickly and slows to a satisfying stop exactly on the final digit."
1904
- section: counter_data_animation
1905
- enabled: false
1906
- - key: animations.counter_data_animation.2
1907
- type: text
1908
- label: "[chart] A bar chart draws in on scroll entry — each bar grows from 0% height to its data value with a stagger of 80ms per bar, using a spring ease so each bar slightly overshoots its final height and bounces back before settling."
1909
- value: "A bar chart draws in on scroll entry — each bar grows from 0% height to its data value with a stagger of 80ms per bar, using a spring ease so each bar slightly overshoots its final height and bounces back before settling."
1910
- section: counter_data_animation
1911
- enabled: false
1912
- - key: animations.counter_data_animation.3
1913
- type: text
1914
- label: "[counter] A revenue or user count stat animates as a formatted number — counting up with comma separators appearing naturally as the number grows past thousands and millions — the formatting updates in real time as the counter climbs."
1915
- value: "A revenue or user count stat animates as a formatted number — counting up with comma separators appearing naturally as the number grows past thousands and millions — the formatting updates in real time as the counter climbs."
1916
- section: counter_data_animation
1917
- enabled: false
1918
- - key: animations.counter_data_animation.4
1919
- type: text
1920
- label: "[chart] A line chart draws its path from left to right on scroll — the SVG path's strokeDashoffset animates from full to zero, and data point dots scale in with a spring bounce as the drawing line reaches each one."
1921
- value: "A line chart draws its path from left to right on scroll — the SVG path's strokeDashoffset animates from full to zero, and data point dots scale in with a spring bounce as the drawing line reaches each one."
1922
- section: counter_data_animation
1923
- enabled: false
1924
- - key: animations.counter_data_animation.5
1925
- type: text
1926
- label: "[counter] A percentage stat animates both the number counting up and a circular progress ring filling simultaneously — the ring and the number reach 100% at exactly the same moment, reinforcing the data with two synchronized visual channels."
1927
- value: "A percentage stat animates both the number counting up and a circular progress ring filling simultaneously — the ring and the number reach 100% at exactly the same moment, reinforcing the data with two synchronized visual channels."
1928
- section: counter_data_animation
1929
- enabled: false
1930
- - key: animations.counter_data_animation.6
1931
- type: text
1932
- label: "[chart] A horizontal bar chart animates each bar extending from the left axis on scroll entry — staggered by 60ms per row — and the bar labels fade in as each bar finishes extending, keeping the focus on one data point at a time."
1933
- value: "A horizontal bar chart animates each bar extending from the left axis on scroll entry — staggered by 60ms per row — and the bar labels fade in as each bar finishes extending, keeping the focus on one data point at a time."
1934
- section: counter_data_animation
1935
- enabled: false
1936
- - key: animations.counter_data_animation.7
1937
- type: text
1938
- label: "[counter] A comparison stat section shows two numbers that count up simultaneously but at different rates — one reaching its value faster than the other — so the relative difference between them is immediately legible through the animation timing."
1939
- value: "A comparison stat section shows two numbers that count up simultaneously but at different rates — one reaching its value faster than the other — so the relative difference between them is immediately legible through the animation timing."
1940
- section: counter_data_animation
1941
- enabled: false
1942
- - key: animations.counter_data_animation.8
1943
- type: text
1944
- label: "[chart] A donut or pie chart animates its segments in sequence on scroll entry — each slice sweeps in clockwise with a stagger, and the center total counts up as each segment adds its value, reaching the grand total when the last segment completes."
1945
- value: "A donut or pie chart animates its segments in sequence on scroll entry — each slice sweeps in clockwise with a stagger, and the center total counts up as each segment adds its value, reaching the grand total when the last segment completes."
1946
- section: counter_data_animation
1947
- enabled: false
1948
- - key: animations.counter_data_animation.9
1949
- type: text
1950
- label: "[counter] A countdown timer animates in reverse — starting at a large number and counting down to a deadline value — with each digit flip animated as a vertical roll, like a physical split-flap display ticking down the remaining count."
1951
- value: "A countdown timer animates in reverse — starting at a large number and counting down to a deadline value — with each digit flip animated as a vertical roll, like a physical split-flap display ticking down the remaining count."
1952
- section: counter_data_animation
1953
- enabled: false
1954
- - key: animations.counter_data_animation.10
1955
- type: text
1956
- label: "[chart] A scatter plot reveals its data points one by one on scroll — each dot scales in from zero with a slight bounce, positioned at its x/y coordinate, and a connecting line draws between sequential points after all dots have arrived."
1957
- value: "A scatter plot reveals its data points one by one on scroll — each dot scales in from zero with a slight bounce, positioned at its x/y coordinate, and a connecting line draws between sequential points after all dots have arrived."
1958
- section: counter_data_animation
1959
- enabled: false
1960
- - key: animations.counter_data_animation.11
1961
- type: text
1962
- label: "[counter] Impact stats animate with a visual emphasis burst at completion — when the counter reaches its final value, a ring expands outward from the number and fades, and the number itself briefly scales up to 110% before settling back to 100%."
1963
- value: "Impact stats animate with a visual emphasis burst at completion — when the counter reaches its final value, a ring expands outward from the number and fades, and the number itself briefly scales up to 110% before settling back to 100%."
1964
- section: counter_data_animation
1965
- enabled: false
1966
- - key: animations.counter_data_animation.12
1967
- type: text
1968
- label: "[chart] A stacked bar chart animates each segment layer separately — the base layer extends first, then the second segment grows on top of it, then the third — building the stack from bottom to top so each layer's contribution is clearly visible."
1969
- value: "A stacked bar chart animates each segment layer separately — the base layer extends first, then the second segment grows on top of it, then the third — building the stack from bottom to top so each layer's contribution is clearly visible."
1970
- section: counter_data_animation
1971
- enabled: false
1972
- - key: animations.counter_data_animation.13
1973
- type: text
1974
- label: "[counter] A carbon footprint or environmental stat uses an icon that fills in proportion to the counter's progress — a leaf filling with green, a globe with coverage, a battery icon with charge level — icon fill and number count in sync."
1975
- value: "A carbon footprint or environmental stat uses an icon that fills in proportion to the counter's progress — a leaf filling with green, a globe with coverage, a battery icon with charge level — icon fill and number count in sync."
1976
- section: counter_data_animation
1977
- enabled: false
1978
- - key: animations.counter_data_animation.14
1979
- type: text
1980
- label: "[chart] A timeline chart plots events as dots along a horizontal axis on scroll — the axis line draws first from left to right, then each event dot drops in from above to land on its date position with a small bounce."
1981
- value: "A timeline chart plots events as dots along a horizontal axis on scroll — the axis line draws first from left to right, then each event dot drops in from above to land on its date position with a small bounce."
1982
- section: counter_data_animation
1983
- enabled: false
1984
- - key: animations.counter_data_animation.15
1985
- type: text
1986
- label: "[counter] A multi-stat dashboard layout has all counters start simultaneously on scroll entry but finish at different times based on their values — smaller numbers finish quickly, larger numbers take longer — making the relative size of stats viscerally clear."
1987
- value: "A multi-stat dashboard layout has all counters start simultaneously on scroll entry but finish at different times based on their values — smaller numbers finish quickly, larger numbers take longer — making the relative size of stats viscerally clear."
1988
- section: counter_data_animation
1989
- enabled: false
1990
- - key: animations.counter_data_animation.16
1991
- type: text
1992
- label: "[chart] An area chart fills its color region progressively from left to right on scroll — both the outline path and the filled area beneath it animate together, the fill lagging slightly behind the stroke to create a paint-filling-in-a-drawing effect."
1993
- value: "An area chart fills its color region progressively from left to right on scroll — both the outline path and the filled area beneath it animate together, the fill lagging slightly behind the stroke to create a paint-filling-in-a-drawing effect."
1994
- section: counter_data_animation
1995
- enabled: false
1996
- - key: animations.counter_data_animation.17
1997
- type: text
1998
- label: "[counter] A word count or document stat animates with the actual words appearing and stacking in a text block in fast-forward — lines of placeholder text filling in rapidly until the final word count number is both displayed numerically and literally visible."
1999
- value: "A word count or document stat animates with the actual words appearing and stacking in a text block in fast-forward — lines of placeholder text filling in rapidly until the final word count number is both displayed numerically and literally visible."
2000
- section: counter_data_animation
2001
- enabled: false
2002
- - key: animations.counter_data_animation.18
2003
- type: text
2004
- label: "[chart] A radar/spider chart draws each axis line first, then the data polygon path traces around the axes from the first spoke clockwise, and data point dots appear at each vertex as the path reaches them."
2005
- value: "A radar/spider chart draws each axis line first, then the data polygon path traces around the axes from the first spoke clockwise, and data point dots appear at each vertex as the path reaches them."
2006
- section: counter_data_animation
2007
- enabled: false
2008
- - key: animations.counter_data_animation.19
2009
- type: text
2010
- label: "[counter] Currency amounts count up with the decimal precision changing as the number grows — starting with cents, then rounding to dollars as the value climbs past hundreds, then to thousands — the precision of the counter reflects the scale of the value."
2011
- value: "Currency amounts count up with the decimal precision changing as the number grows — starting with cents, then rounding to dollars as the value climbs past hundreds, then to thousands — the precision of the counter reflects the scale of the value."
2012
- section: counter_data_animation
2013
- enabled: false
2014
- - key: animations.counter_data_animation.20
2015
- type: text
2016
- label: "[chart] A Gantt-style timeline chart animates each row's bar extending from its start date to its end date with a stagger by row — early start dates begin first, later ones follow — so the chart builds in chronological order of project start."
2017
- value: "A Gantt-style timeline chart animates each row's bar extending from its start date to its end date with a stagger by row — early start dates begin first, later ones follow — so the chart builds in chronological order of project start."
2018
- section: counter_data_animation
2019
- enabled: false
2020
- - key: animations.floating_magnetic_cursor.enabled
2021
- type: text
2022
- label: "Floating Magnetic Cursor — enable category"
2023
- value: ""
2024
- section: floating_magnetic_cursor
2025
- enabled: false
2026
- - key: animations.floating_magnetic_cursor.1
2027
- type: text
2028
- label: "[magnetic] Buttons on the page pull the cursor toward them magnetically — within a 60px radius, the cursor begins drifting toward the button center, and the button itself shifts slightly toward the cursor position, meeting it halfway with a springy lag."
2029
- value: "Buttons on the page pull the cursor toward them magnetically — within a 60px radius, the cursor begins drifting toward the button center, and the button itself shifts slightly toward the cursor position, meeting it halfway with a springy lag."
2030
- section: floating_magnetic_cursor
2031
- enabled: false
2032
- - key: animations.floating_magnetic_cursor.2
2033
- type: text
2034
- label: "[custom] Replace the default cursor with a large hollow circle that follows the mouse with a 150ms lag using GSAP quickTo for smooth interpolation — it trails behind the true cursor position, feeling like it's floating through air."
2035
- value: "Replace the default cursor with a large hollow circle that follows the mouse with a 150ms lag using GSAP quickTo for smooth interpolation — it trails behind the true cursor position, feeling like it's floating through air."
2036
- section: floating_magnetic_cursor
2037
- enabled: false
2038
- - key: animations.floating_magnetic_cursor.3
2039
- type: text
2040
- label: "[magnetic] Navigation menu items pull the cursor horizontally — as the cursor moves along the nav bar, each link magnetically attracts the cursor along the X axis, making it feel like the links are drawing the cursor between them."
2041
- value: "Navigation menu items pull the cursor horizontally — as the cursor moves along the nav bar, each link magnetically attracts the cursor along the X axis, making it feel like the links are drawing the cursor between them."
2042
- section: floating_magnetic_cursor
2043
- enabled: false
2044
- - key: animations.floating_magnetic_cursor.4
2045
- type: text
2046
- label: "[hover] The custom cursor circle shrinks to a small dot when hovering text and expands to a large ring when hovering interactive elements — the scale transition uses a spring ease so the cursor snaps to its new size with a slight overshoot."
2047
- value: "The custom cursor circle shrinks to a small dot when hovering text and expands to a large ring when hovering interactive elements — the scale transition uses a spring ease so the cursor snaps to its new size with a slight overshoot."
2048
- section: floating_magnetic_cursor
2049
- enabled: false
2050
- - key: animations.floating_magnetic_cursor.5
2051
- type: text
2052
- label: "[custom] A cursor follower displays the current hover action as text — hovering a video shows 'Play', hovering a link shows 'Visit', hovering an image shows 'View' — the text fades in and out as the cursor moves between element types."
2053
- value: "A cursor follower displays the current hover action as text — hovering a video shows 'Play', hovering a link shows 'Visit', hovering an image shows 'View' — the text fades in and out as the cursor moves between element types."
2054
- section: floating_magnetic_cursor
2055
- enabled: false
2056
- - key: animations.floating_magnetic_cursor.6
2057
- type: text
2058
- label: "[magnetic] Social media icons have a magnetic field that pulls and distorts the cursor — as it approaches, the cursor morphs from its circular shape toward a pointed shape aimed at the icon center, like a magnet attracting a compass needle."
2059
- value: "Social media icons have a magnetic field that pulls and distorts the cursor — as it approaches, the cursor morphs from its circular shape toward a pointed shape aimed at the icon center, like a magnet attracting a compass needle."
2060
- section: floating_magnetic_cursor
2061
- enabled: false
2062
- - key: animations.floating_magnetic_cursor.7
2063
- type: text
2064
- label: "[hover] On hover of a project card, a large custom cursor circle fills with a thumbnail preview image of the project — the cursor becomes a moving preview window that follows the mouse across the card area."
2065
- value: "On hover of a project card, a large custom cursor circle fills with a thumbnail preview image of the project — the cursor becomes a moving preview window that follows the mouse across the card area."
2066
- section: floating_magnetic_cursor
2067
- enabled: false
2068
- - key: animations.floating_magnetic_cursor.8
2069
- type: text
2070
- label: "[custom] A cursor trail effect leaves five fading dots behind the cursor as it moves — each dot is slightly smaller and more transparent than the one before it, creating a comet tail that evaporates 200ms behind the cursor."
2071
- value: "A cursor trail effect leaves five fading dots behind the cursor as it moves — each dot is slightly smaller and more transparent than the one before it, creating a comet tail that evaporates 200ms behind the cursor."
2072
- section: floating_magnetic_cursor
2073
- enabled: false
2074
- - key: animations.floating_magnetic_cursor.9
2075
- type: text
2076
- label: "[magnetic] The hero CTA button has a magnetic attraction radius of 80px — as the cursor enters this zone, the button moves toward the cursor by up to 20px in any direction, making the button appear to reach toward the user's mouse."
2077
- value: "The hero CTA button has a magnetic attraction radius of 80px — as the cursor enters this zone, the button moves toward the cursor by up to 20px in any direction, making the button appear to reach toward the user's mouse."
2078
- section: floating_magnetic_cursor
2079
- enabled: false
2080
- - key: animations.floating_magnetic_cursor.10
2081
- type: text
2082
- label: "[hover] The cursor changes shape based on the section background — a light ring on dark backgrounds, a dark filled dot on light backgrounds — transitioning between states with a smooth 200ms crossfade as the cursor crosses section boundaries."
2083
- value: "The cursor changes shape based on the section background — a light ring on dark backgrounds, a dark filled dot on light backgrounds — transitioning between states with a smooth 200ms crossfade as the cursor crosses section boundaries."
2084
- section: floating_magnetic_cursor
2085
- enabled: false
2086
- - key: animations.floating_magnetic_cursor.11
2087
- type: text
2088
- label: "[custom] A split-color cursor follows the mouse — one half is the accent color and the other half white — and as the cursor moves it rotates the split based on direction of travel, always showing the accent color forward and white trailing behind."
2089
- value: "A split-color cursor follows the mouse — one half is the accent color and the other half white — and as the cursor moves it rotates the split based on direction of travel, always showing the accent color forward and white trailing behind."
2090
- section: floating_magnetic_cursor
2091
- enabled: false
2092
- - key: animations.floating_magnetic_cursor.12
2093
- type: text
2094
- label: "[magnetic] Image gallery thumbnails have a subtle magnetic push effect — as the cursor approaches, the thumbnail shifts away from the cursor by 5px, creating a repulsion field instead of attraction, making the gallery feel physically present."
2095
- value: "Image gallery thumbnails have a subtle magnetic push effect — as the cursor approaches, the thumbnail shifts away from the cursor by 5px, creating a repulsion field instead of attraction, making the gallery feel physically present."
2096
- section: floating_magnetic_cursor
2097
- enabled: false
2098
- - key: animations.floating_magnetic_cursor.13
2099
- type: text
2100
- label: "[hover] On hover of a draggable element, the cursor transforms to display crossed arrows or a drag icon — the custom cursor ring rotates 45 degrees and the drag icon fades in at its center, signaling the available interaction."
2101
- value: "On hover of a draggable element, the cursor transforms to display crossed arrows or a drag icon — the custom cursor ring rotates 45 degrees and the drag icon fades in at its center, signaling the available interaction."
2102
- section: floating_magnetic_cursor
2103
- enabled: false
2104
- - key: animations.floating_magnetic_cursor.14
2105
- type: text
2106
- label: "[custom] The cursor follower circle has a gooey blob quality — as it moves, it stretches in the direction of travel and snaps back to circular when it stops, using GSAP physics to give it a viscous, jelly-like momentum."
2107
- value: "The cursor follower circle has a gooey blob quality — as it moves, it stretches in the direction of travel and snaps back to circular when it stops, using GSAP physics to give it a viscous, jelly-like momentum."
2108
- section: floating_magnetic_cursor
2109
- enabled: false
2110
- - key: animations.floating_magnetic_cursor.15
2111
- type: text
2112
- label: "[magnetic] Card components in a grid magnetically nudge each other — hovering one card pushes adjacent cards away by 8px in a ripple effect, and when the cursor leaves, all cards spring back to their original positions simultaneously."
2113
- value: "Card components in a grid magnetically nudge each other — hovering one card pushes adjacent cards away by 8px in a ripple effect, and when the cursor leaves, all cards spring back to their original positions simultaneously."
2114
- section: floating_magnetic_cursor
2115
- enabled: false
2116
- - key: animations.floating_magnetic_cursor.16
2117
- type: text
2118
- label: "[hover] On hover of a text link, the custom cursor expands to underline the link text as a wide flat rectangle — exactly the width of the word — appearing to draw the underline dynamically as the cursor settles over the link."
2119
- value: "On hover of a text link, the custom cursor expands to underline the link text as a wide flat rectangle — exactly the width of the word — appearing to draw the underline dynamically as the cursor settles over the link."
2120
- section: floating_magnetic_cursor
2121
- enabled: false
2122
- - key: animations.floating_magnetic_cursor.17
2123
- type: text
2124
- label: "[custom] A cursor that shows scroll progress within a section — a circular progress ring around the cursor dot that fills clockwise as the user scrolls through a pinned section, combining cursor position and scroll progress into a single persistent element."
2125
- value: "A cursor that shows scroll progress within a section — a circular progress ring around the cursor dot that fills clockwise as the user scrolls through a pinned section, combining cursor position and scroll progress into a single persistent element."
2126
- section: floating_magnetic_cursor
2127
- enabled: false
2128
- - key: animations.floating_magnetic_cursor.18
2129
- type: text
2130
- label: "[magnetic] Menu items in a large navigation have a magnetic grid — hovering any item pulls all surrounding items slightly toward it, creating a gravity-well effect in the navigation space that makes the whole menu feel physically interconnected."
2131
- value: "Menu items in a large navigation have a magnetic grid — hovering any item pulls all surrounding items slightly toward it, creating a gravity-well effect in the navigation space that makes the whole menu feel physically interconnected."
2132
- section: floating_magnetic_cursor
2133
- enabled: false
2134
- - key: animations.floating_magnetic_cursor.19
2135
- type: text
2136
- label: "[hover] On hover of video content, the cursor transforms into a play button shape — the circular cursor ring morphs its clip-path into a triangle play icon — and morphs back to a circle when the cursor leaves the video area."
2137
- value: "On hover of video content, the cursor transforms into a play button shape — the circular cursor ring morphs its clip-path into a triangle play icon — and morphs back to a circle when the cursor leaves the video area."
2138
- section: floating_magnetic_cursor
2139
- enabled: false
2140
- - key: animations.floating_magnetic_cursor.20
2141
- type: text
2142
- label: "[custom] A cursor spotlight effect — the cursor emits a soft radial light that illuminates a 150px radius of the page, with the rest slightly darkened — as if the user is exploring the page with a flashlight."
2143
- value: "A cursor spotlight effect — the cursor emits a soft radial light that illuminates a 150px radius of the page, with the rest slightly darkened — as if the user is exploring the page with a flashlight. The effect uses a radial gradient mask tied to cursor position."
2144
- section: floating_magnetic_cursor
2145
- enabled: false
2146
- - key: animations.navbar_scroll_transitions.enabled
2147
- type: text
2148
- label: "Navbar Scroll Transitions — enable category"
2149
- value: ""
2150
- section: navbar_scroll_transitions
2151
- enabled: false
2152
- - key: animations.navbar_scroll_transitions.1
2153
- type: text
2154
- label: "[shrink] The navigation starts tall and transparent over the hero, then as the user scrolls past the hero section it compresses in height, gains a solid background, and a bottom border fades in — transforming from hero overlay to fixed compact nav in one smooth transition."
2155
- value: "The navigation starts tall and transparent over the hero, then as the user scrolls past the hero section it compresses in height, gains a solid background, and a bottom border fades in — transforming from hero overlay to fixed compact nav in one smooth transition."
2156
- section: navbar_scroll_transitions
2157
- enabled: false
2158
- - key: animations.navbar_scroll_transitions.2
2159
- type: text
2160
- label: "[hide] The navbar slides upward out of the viewport as the user scrolls down — hiding to maximize reading space — and slides back down smoothly when the user scrolls upward even a tiny amount, using scroll direction detection."
2161
- value: "The navbar slides upward out of the viewport as the user scrolls down — hiding to maximize reading space — and slides back down smoothly when the user scrolls upward even a tiny amount, using scroll direction detection."
2162
- section: navbar_scroll_transitions
2163
- enabled: false
2164
- - key: animations.navbar_scroll_transitions.3
2165
- type: text
2166
- label: "[color] The navbar background transitions from fully transparent to a frosted glass effect as the user scrolls past 100px — the backdrop-filter and background opacity animate simultaneously so the nav solidifies progressively as the page scrolls."
2167
- value: "The navbar background transitions from fully transparent to a frosted glass effect as the user scrolls past 100px — the backdrop-filter and background opacity animate simultaneously so the nav solidifies progressively as the page scrolls."
2168
- section: navbar_scroll_transitions
2169
- enabled: false
2170
- - key: animations.navbar_scroll_transitions.4
2171
- type: text
2172
- label: "[shrink] The logo in the navigation shrinks and shifts left as the user scrolls — from a large centered hero size to a compact left-aligned navigation size — while the menu links fade in alongside it, the whole nav reconfiguring as a unit."
2173
- value: "The logo in the navigation shrinks and shifts left as the user scrolls — from a large centered hero size to a compact left-aligned navigation size — while the menu links fade in alongside it, the whole nav reconfiguring as a unit."
2174
- section: navbar_scroll_transitions
2175
- enabled: false
2176
- - key: animations.navbar_scroll_transitions.5
2177
- type: text
2178
- label: "[color] The navbar text and logo color inverts as the page scrolls from a dark section to a light section — the nav detects the background color of the section beneath it and animates its foreground color to always maintain contrast."
2179
- value: "The navbar text and logo color inverts as the page scrolls from a dark section to a light section — the nav detects the background color of the section beneath it and animates its foreground color to always maintain contrast."
2180
- section: navbar_scroll_transitions
2181
- enabled: false
2182
- - key: animations.navbar_scroll_transitions.6
2183
- type: text
2184
- label: "[hide] Individual navigation links hide one by one as the user scrolls down — disappearing from right to left with a stagger — leaving only the logo and a hamburger menu, which itself transforms into a more compact icon as space tightens."
2185
- value: "Individual navigation links hide one by one as the user scrolls down — disappearing from right to left with a stagger — leaving only the logo and a hamburger menu, which itself transforms into a more compact icon as space tightens."
2186
- section: navbar_scroll_transitions
2187
- enabled: false
2188
- - key: animations.navbar_scroll_transitions.7
2189
- type: text
2190
- label: "[shrink] The top navigation bar merges with a secondary category navigation on scroll — the two bars compress into a single unified bar over 300ms as the user scrolls past the hero, with the secondary nav items folding into a dropdown inside the primary bar."
2191
- value: "The top navigation bar merges with a secondary category navigation on scroll — the two bars compress into a single unified bar over 300ms as the user scrolls past the hero, with the secondary nav items folding into a dropdown inside the primary bar."
2192
- section: navbar_scroll_transitions
2193
- enabled: false
2194
- - key: animations.navbar_scroll_transitions.8
2195
- type: text
2196
- label: "[color] A progress bar appears within the navbar on scroll — filling the full width of the nav bar from left to right as a reading progress indicator, using the brand accent color so it feels intentional rather than an afterthought."
2197
- value: "A progress bar appears within the navbar on scroll — filling the full width of the nav bar from left to right as a reading progress indicator, using the brand accent color so it feels intentional rather than an afterthought."
2198
- section: navbar_scroll_transitions
2199
- enabled: false
2200
- - key: animations.navbar_scroll_transitions.9
2201
- type: text
2202
- label: "[shrink] The navigation has a full-width mega menu on load that collapses to a standard nav height as the user scrolls — the mega menu section slides upward and the remaining nav locks in place as a compact sticky bar."
2203
- value: "The navigation has a full-width mega menu on load that collapses to a standard nav height as the user scrolls — the mega menu section slides upward and the remaining nav locks in place as a compact sticky bar."
2204
- section: navbar_scroll_transitions
2205
- enabled: false
2206
- - key: animations.navbar_scroll_transitions.10
2207
- type: text
2208
- label: "[hide] The navbar hides on downward scroll with a velocity threshold — slow scrolling keeps the nav visible, but fast downward scrolling triggers the hide animation."
2209
- value: "The navbar hides on downward scroll with a velocity threshold — slow scrolling keeps the nav visible, but fast downward scrolling triggers the hide animation. The sensitivity adjusts so intentional navigation is never accidentally hidden."
2210
- section: navbar_scroll_transitions
2211
- enabled: false
2212
- - key: animations.navbar_scroll_transitions.11
2213
- type: text
2214
- label: "[color] Each page section has a designated nav color scheme — the nav background, link color, and accent color all crossfade to the section's palette as the scroll enters each section's range, making the nav responsive to the content below."
2215
- value: "Each page section has a designated nav color scheme — the nav background, link color, and accent color all crossfade to the section's palette as the scroll enters each section's range, making the nav responsive to the content below."
2216
- section: navbar_scroll_transitions
2217
- enabled: false
2218
- - key: animations.navbar_scroll_transitions.12
2219
- type: text
2220
- label: "[shrink] The hero navigation has a full-screen height on load — covering the entire viewport — and collapses to a standard nav bar height as the first scroll input is detected, revealing the hero content beneath it."
2221
- value: "The hero navigation has a full-screen height on load — covering the entire viewport — and collapses to a standard nav bar height as the first scroll input is detected, revealing the hero content beneath it."
2222
- section: navbar_scroll_transitions
2223
- enabled: false
2224
- - key: animations.navbar_scroll_transitions.13
2225
- type: text
2226
- label: "[hide] On mobile scroll, the nav bar transforms into a floating pill — shrinking from full-width to a compact centered pill containing only the logo — and docking to the bottom of the viewport rather than the top, optimizing for thumb reach."
2227
- value: "On mobile scroll, the nav bar transforms into a floating pill — shrinking from full-width to a compact centered pill containing only the logo — and docking to the bottom of the viewport rather than the top, optimizing for thumb reach."
2228
- section: navbar_scroll_transitions
2229
- enabled: false
2230
- - key: animations.navbar_scroll_transitions.14
2231
- type: text
2232
- label: "[color] The active section link in the navigation highlights with an animated underline that slides from the previous active link to the new one as the user scrolls — the underline travels horizontally along the nav to its new position."
2233
- value: "The active section link in the navigation highlights with an animated underline that slides from the previous active link to the new one as the user scrolls — the underline travels horizontally along the nav to its new position."
2234
- section: navbar_scroll_transitions
2235
- enabled: false
2236
- - key: animations.navbar_scroll_transitions.15
2237
- type: text
2238
- label: "[shrink] A large editorial navigation with oversized type and generous spacing compresses on scroll — font sizes reduce, line heights collapse, padding tightens — the typography rescaling fluidly so the nav transitions from editorial to functional."
2239
- value: "A large editorial navigation with oversized type and generous spacing compresses on scroll — font sizes reduce, line heights collapse, padding tightens — the typography rescaling fluidly so the nav transitions from editorial to functional."
2240
- section: navbar_scroll_transitions
2241
- enabled: false
2242
- - key: animations.navbar_scroll_transitions.16
2243
- type: text
2244
- label: "[hide] The navbar fades out completely when the user has been idle for 3 seconds while scrolled deep into the page — and fades back in immediately on any mouse movement or scroll input — a distraction-free reading mode."
2245
- value: "The navbar fades out completely when the user has been idle for 3 seconds while scrolled deep into the page — and fades back in immediately on any mouse movement or scroll input — a distraction-free reading mode."
2246
- section: navbar_scroll_transitions
2247
- enabled: false
2248
- - key: animations.navbar_scroll_transitions.17
2249
- type: text
2250
- label: "[color] A dark-mode navbar transitions to light mode as the user scrolls into a light-background section — all nav element colors transition simultaneously — logo, links, backgrounds — so the nav adapts seamlessly to the content it overlays."
2251
- value: "A dark-mode navbar transitions to light mode as the user scrolls into a light-background section — all nav element colors transition simultaneously — logo, links, backgrounds — so the nav adapts seamlessly to the content it overlays."
2252
- section: navbar_scroll_transitions
2253
- enabled: false
2254
- - key: animations.navbar_scroll_transitions.18
2255
- type: text
2256
- label: "[shrink] The navigation has a secondary announcement bar above it that slides upward and disappears as the user scrolls past 50px — the main nav simultaneously rises to fill its position, expanding upward to fill the vacated space."
2257
- value: "The navigation has a secondary announcement bar above it that slides upward and disappears as the user scrolls past 50px — the main nav simultaneously rises to fill its position, expanding upward to fill the vacated space."
2258
- section: navbar_scroll_transitions
2259
- enabled: false
2260
- - key: animations.navbar_scroll_transitions.19
2261
- type: text
2262
- label: "[hide] On downward scroll, the logo fades out of the nav and the nav links center-align to fill the space — on upward scroll the logo fades back in and the links shift back to their offset positions — the nav composition changes with scroll direction."
2263
- value: "On downward scroll, the logo fades out of the nav and the nav links center-align to fill the space — on upward scroll the logo fades back in and the links shift back to their offset positions — the nav composition changes with scroll direction."
2264
- section: navbar_scroll_transitions
2265
- enabled: false
2266
- - key: animations.navbar_scroll_transitions.20
2267
- type: text
2268
- label: "[color] The navigation background uses a live color blend — it samples the average color of the page content directly behind it and sets its background to a semi-transparent version of that color, creating a chameleon nav that always harmonizes."
2269
- value: "The navigation background uses a live color blend — it samples the average color of the page content directly behind it and sets its background to a semi-transparent version of that color, creating a chameleon nav that always harmonizes."
2270
- section: navbar_scroll_transitions
2271
- enabled: false
2272
- - key: animations.page_transition_wipes.enabled
2273
- type: text
2274
- label: "Page Transition Wipes — enable category"
2275
- value: ""
2276
- section: page_transition_wipes
2277
- enabled: false
2278
- - key: animations.page_transition_wipes.1
2279
- type: text
2280
- label: "[wipe] Navigating to a new page triggers a solid color panel that sweeps in from the left edge, covers the entire viewport, then sweeps off to the right to reveal the incoming page — a classic curtain wipe using the brand accent color."
2281
- value: "Navigating to a new page triggers a solid color panel that sweeps in from the left edge, covers the entire viewport, then sweeps off to the right to reveal the incoming page — a classic curtain wipe using the brand accent color."
2282
- section: page_transition_wipes
2283
- enabled: false
2284
- - key: animations.page_transition_wipes.2
2285
- type: text
2286
- label: "[fade] Page transitions use a coordinated fade — the outgoing page fades to white over 400ms while simultaneously the incoming page fades in from white, the two crossfading through a shared white moment in the middle of the transition."
2287
- value: "Page transitions use a coordinated fade — the outgoing page fades to white over 400ms while simultaneously the incoming page fades in from white, the two crossfading through a shared white moment in the middle of the transition."
2288
- section: page_transition_wipes
2289
- enabled: false
2290
- - key: animations.page_transition_wipes.3
2291
- type: text
2292
- label: "[wipe] A diagonal wipe transition — a colored panel enters from the top-right corner and sweeps diagonally to the bottom-left, covering the screen, then retreats in the same direction to reveal the new page beneath it."
2293
- value: "A diagonal wipe transition — a colored panel enters from the top-right corner and sweeps diagonally to the bottom-left, covering the screen, then retreats in the same direction to reveal the new page beneath it."
2294
- section: page_transition_wipes
2295
- enabled: false
2296
- - key: animations.page_transition_wipes.4
2297
- type: text
2298
- label: "[morph] The clicked navigation link or card morphs into the new page — its background color expands from the element's position outward to fill the entire viewport, then the new page content fades in over that color background."
2299
- value: "The clicked navigation link or card morphs into the new page — its background color expands from the element's position outward to fill the entire viewport, then the new page content fades in over that color background."
2300
- section: page_transition_wipes
2301
- enabled: false
2302
- - key: animations.page_transition_wipes.5
2303
- type: text
2304
- label: "[wipe] A page transition uses multiple horizontal strips — the screen divides into six horizontal bands that each slide left simultaneously with a stagger of 30ms per band, revealing the new page in a venetian-blind wipe."
2305
- value: "A page transition uses multiple horizontal strips — the screen divides into six horizontal bands that each slide left simultaneously with a stagger of 30ms per band, revealing the new page in a venetian-blind wipe."
2306
- section: page_transition_wipes
2307
- enabled: false
2308
- - key: animations.page_transition_wipes.6
2309
- type: text
2310
- label: "[fade] Between pages, the current page's hero image scales up to fill the entire viewport and then crossfades into the new page's hero image — a match-cut transition that connects the two pages through their most prominent visual."
2311
- value: "Between pages, the current page's hero image scales up to fill the entire viewport and then crossfades into the new page's hero image — a match-cut transition that connects the two pages through their most prominent visual."
2312
- section: page_transition_wipes
2313
- enabled: false
2314
- - key: animations.page_transition_wipes.7
2315
- type: text
2316
- label: "[wipe] A circular wipe expands from the position of the clicked element — growing from that exact point outward to cover the screen — then the new page content fades in as the circle reaches full coverage."
2317
- value: "A circular wipe expands from the position of the clicked element — growing from that exact point outward to cover the screen — then the new page content fades in as the circle reaches full coverage."
2318
- section: page_transition_wipes
2319
- enabled: false
2320
- - key: animations.page_transition_wipes.8
2321
- type: text
2322
- label: "[morph] The page exit animation slides all content upward off the screen — staggered from bottom to top so the footer leaves first and the header last — then the new page's content slides in from below in the same stagger order."
2323
- value: "The page exit animation slides all content upward off the screen — staggered from bottom to top so the footer leaves first and the header last — then the new page's content slides in from below in the same stagger order."
2324
- section: page_transition_wipes
2325
- enabled: false
2326
- - key: animations.page_transition_wipes.9
2327
- type: text
2328
- label: "[wipe] A split wipe transition — the outgoing page splits into left and right halves that slide apart, revealing the new page in the gap between them."
2329
- value: "A split wipe transition — the outgoing page splits into left and right halves that slide apart, revealing the new page in the gap between them. The gap starts at the vertical center and expands outward until both halves are off screen."
2330
- section: page_transition_wipes
2331
- enabled: false
2332
- - key: animations.page_transition_wipes.10
2333
- type: text
2334
- label: "[fade] Page transitions use a logo reveal — the brand mark scales up from its navbar size to fill the center of the screen during the transition, then scales back down as the new page loads, bookending the transition with brand identity."
2335
- value: "Page transitions use a logo reveal — the brand mark scales up from its navbar size to fill the center of the screen during the transition, then scales back down as the new page loads, bookending the transition with brand identity."
2336
- section: page_transition_wipes
2337
- enabled: false
2338
- - key: animations.page_transition_wipes.11
2339
- type: text
2340
- label: "[wipe] A paint-stroke wipe transition — an organic brush stroke shape sweeps across the screen from left to right, its irregular edge giving the transition a hand-crafted, textural quality before the new page reveals beneath it."
2341
- value: "A paint-stroke wipe transition — an organic brush stroke shape sweeps across the screen from left to right, its irregular edge giving the transition a hand-crafted, textural quality before the new page reveals beneath it."
2342
- section: page_transition_wipes
2343
- enabled: false
2344
- - key: animations.page_transition_wipes.12
2345
- type: text
2346
- label: "[morph] When navigating from a list to a detail page, the selected list item expands — its card scales and repositions to match the layout of the detail page header — a seamless FLIP transition that makes the navigation feel spatially continuous."
2347
- value: "When navigating from a list to a detail page, the selected list item expands — its card scales and repositions to match the layout of the detail page header — a seamless FLIP transition that makes the navigation feel spatially continuous."
2348
- section: page_transition_wipes
2349
- enabled: false
2350
- - key: animations.page_transition_wipes.13
2351
- type: text
2352
- label: "[wipe] A pixel dissolve transition — the outgoing page breaks into a grid of small squares that fade out in a random order over 600ms, revealing the new page below — like a digital disintegration of the current content."
2353
- value: "A pixel dissolve transition — the outgoing page breaks into a grid of small squares that fade out in a random order over 600ms, revealing the new page below — like a digital disintegration of the current content."
2354
- section: page_transition_wipes
2355
- enabled: false
2356
- - key: animations.page_transition_wipes.14
2357
- type: text
2358
- label: "[fade] Page transitions use a blur-out/blur-in — the outgoing page blurs to maximum and fades to 0, while the incoming page arrives blurred at 0 opacity and resolves to sharp and full opacity — a dreamy, cinematic between-pages moment."
2359
- value: "Page transitions use a blur-out/blur-in — the outgoing page blurs to maximum and fades to 0, while the incoming page arrives blurred at 0 opacity and resolves to sharp and full opacity — a dreamy, cinematic between-pages moment."
2360
- section: page_transition_wipes
2361
- enabled: false
2362
- - key: animations.page_transition_wipes.15
2363
- type: text
2364
- label: "[wipe] A vertical wipe from the top — a color panel drops from the top edge to the bottom, covering the page, then rises from bottom to top to reveal the new page — the panel's color matches the destination page's primary color."
2365
- value: "A vertical wipe from the top — a color panel drops from the top edge to the bottom, covering the page, then rises from bottom to top to reveal the new page — the panel's color matches the destination page's primary color."
2366
- section: page_transition_wipes
2367
- enabled: false
2368
- - key: animations.page_transition_wipes.16
2369
- type: text
2370
- label: "[morph] The page cursor morphs into a loading indicator during the transition — expanding to a large circle that fills the screen, inside which the new page content reveals — the cursor itself becomes the transition mechanism."
2371
- value: "The page cursor morphs into a loading indicator during the transition — expanding to a large circle that fills the screen, inside which the new page content reveals — the cursor itself becomes the transition mechanism."
2372
- section: page_transition_wipes
2373
- enabled: false
2374
- - key: animations.page_transition_wipes.17
2375
- type: text
2376
- label: "[wipe] A text-based transition wipe — the word describing the destination page types itself across the screen in very large type, filling the viewport, then the letterforms clip away to reveal the actual destination page behind the text."
2377
- value: "A text-based transition wipe — the word describing the destination page types itself across the screen in very large type, filling the viewport, then the letterforms clip away to reveal the actual destination page behind the text."
2378
- section: page_transition_wipes
2379
- enabled: false
2380
- - key: animations.page_transition_wipes.18
2381
- type: text
2382
- label: "[fade] Same-section page transitions use a subtle shared element animation — elements present on both pages (like the header or a shared image) stay in place while page-specific content fades out and new content fades in around them."
2383
- value: "Same-section page transitions use a subtle shared element animation — elements present on both pages (like the header or a shared image) stay in place while page-specific content fades out and new content fades in around them."
2384
- section: page_transition_wipes
2385
- enabled: false
2386
- - key: animations.page_transition_wipes.19
2387
- type: text
2388
- label: "[wipe] A noise-texture wipe — a procedural noise pattern sweeps across the screen, the noise threshold animating from 0 to 1 to create an organic, non-geometric wipe pattern that feels natural rather than mechanical."
2389
- value: "A noise-texture wipe — a procedural noise pattern sweeps across the screen, the noise threshold animating from 0 to 1 to create an organic, non-geometric wipe pattern that feels natural rather than mechanical."
2390
- section: page_transition_wipes
2391
- enabled: false
2392
- - key: animations.page_transition_wipes.20
2393
- type: text
2394
- label: "[morph] On back navigation, the page transition reverses — instead of a left-to-right wipe, the new wipe comes from the right — so the direction of the transition always matches the conceptual direction of the navigation, forward or backward."
2395
- value: "On back navigation, the page transition reverses — instead of a left-to-right wipe, the new wipe comes from the right — so the direction of the transition always matches the conceptual direction of the navigation, forward or backward."
2396
- section: page_transition_wipes
2397
- enabled: false
2398
- - key: animations.typewriter_scramble_text.enabled
2399
- type: text
2400
- label: "Typewriter Scramble Text — enable category"
2401
- value: ""
2402
- section: typewriter_scramble_text
2403
- enabled: false
2404
- - key: animations.typewriter_scramble_text.1
2405
- type: text
2406
- label: "[typewriter] The hero headline types itself in one character at a time at 40ms per character, with a blinking cursor sitting at the insertion point — the cursor blinks three times after the last character is placed, then fades out."
2407
- value: "The hero headline types itself in one character at a time at 40ms per character, with a blinking cursor sitting at the insertion point — the cursor blinks three times after the last character is placed, then fades out."
2408
- section: typewriter_scramble_text
2409
- enabled: false
2410
- - key: animations.typewriter_scramble_text.2
2411
- type: text
2412
- label: "[scramble] A rotating tagline cycles through three different messages — each transition scrambles the current text into random characters over 200ms, then unscrambles into the next message left to right, as if the text is being decoded."
2413
- value: "A rotating tagline cycles through three different messages — each transition scrambles the current text into random characters over 200ms, then unscrambles into the next message left to right, as if the text is being decoded."
2414
- section: typewriter_scramble_text
2415
- enabled: false
2416
- - key: animations.typewriter_scramble_text.3
2417
- type: text
2418
- label: "[typewriter] A coding terminal aesthetic — green text on dark background — types a series of command lines with realistic delays between each line, including a blinking cursor and a pause before each new line begins, like watching a real terminal session."
2419
- value: "A coding terminal aesthetic — green text on dark background — types a series of command lines with realistic delays between each line, including a blinking cursor and a pause before each new line begins, like watching a real terminal session."
2420
- section: typewriter_scramble_text
2421
- enabled: false
2422
- - key: animations.typewriter_scramble_text.4
2423
- type: text
2424
- label: "[scramble] Section headings use a hover scramble effect — mousing over any heading triggers a 300ms scramble animation that resolves back to the original text, as if the letters briefly lost their form under the cursor's attention."
2425
- value: "Section headings use a hover scramble effect — mousing over any heading triggers a 300ms scramble animation that resolves back to the original text, as if the letters briefly lost their form under the cursor's attention."
2426
- section: typewriter_scramble_text
2427
- enabled: false
2428
- - key: animations.typewriter_scramble_text.5
2429
- type: text
2430
- label: "[typewriter] A pricing page has cost values that type in one digit at a time from left to right — the dollar sign appears first, then each digit types in — so the price builds up in front of the user rather than appearing all at once."
2431
- value: "A pricing page has cost values that type in one digit at a time from left to right — the dollar sign appears first, then each digit types in — so the price builds up in front of the user rather than appearing all at once."
2432
- section: typewriter_scramble_text
2433
- enabled: false
2434
- - key: animations.typewriter_scramble_text.6
2435
- type: text
2436
- label: "[scramble] A skills or technology list has each item appear with a scramble-resolve — random characters rain through the word's positions for 400ms before the correct characters lock in left to right, staggered 100ms per word in the list."
2437
- value: "A skills or technology list has each item appear with a scramble-resolve — random characters rain through the word's positions for 400ms before the correct characters lock in left to right, staggered 100ms per word in the list."
2438
- section: typewriter_scramble_text
2439
- enabled: false
2440
- - key: animations.typewriter_scramble_text.7
2441
- type: text
2442
- label: "[typewriter] An AI assistant interface typewriter effect — the response text types in at variable speed, faster for common words and slower for technical terms — mimicking the natural rhythm variations of a real streaming text response."
2443
- value: "An AI assistant interface typewriter effect — the response text types in at variable speed, faster for common words and slower for technical terms — mimicking the natural rhythm variations of a real streaming text response."
2444
- section: typewriter_scramble_text
2445
- enabled: false
2446
- - key: animations.typewriter_scramble_text.8
2447
- type: text
2448
- label: "[scramble] The page title scrambles into the new section title during a page transition — the characters of the outgoing title randomly reassign themselves into the characters of the incoming title, morphing from one word to another through chaos."
2449
- value: "The page title scrambles into the new section title during a page transition — the characters of the outgoing title randomly reassign themselves into the characters of the incoming title, morphing from one word to another through chaos."
2450
- section: typewriter_scramble_text
2451
- enabled: false
2452
- - key: animations.typewriter_scramble_text.9
2453
- type: text
2454
- label: "[typewriter] A quotes carousel types each new quote in after deleting the previous one — the cursor moves to the start of the text, deletes backward at high speed, then types the new quote forward at a natural reading pace."
2455
- value: "A quotes carousel types each new quote in after deleting the previous one — the cursor moves to the start of the text, deletes backward at high speed, then types the new quote forward at a natural reading pace."
2456
- section: typewriter_scramble_text
2457
- enabled: false
2458
- - key: animations.typewriter_scramble_text.10
2459
- type: text
2460
- label: "[scramble] A hero with a rotating word — 'we are [creative / strategic / bold]' — uses a scramble to transition between adjectives."
2461
- value: "A hero with a rotating word — 'we are [creative / strategic / bold]' — uses a scramble to transition between adjectives. The static part stays fixed while only the rotating word scrambles and resolves into each new option."
2462
- section: typewriter_scramble_text
2463
- enabled: false
2464
- - key: animations.typewriter_scramble_text.11
2465
- type: text
2466
- label: "[typewriter] Error messages type in with an intentionally slow, ominous pace — one character every 80ms — as if the system is reluctantly admitting the error, building tension through the typewriter timing before the full message is revealed."
2467
- value: "Error messages type in with an intentionally slow, ominous pace — one character every 80ms — as if the system is reluctantly admitting the error, building tension through the typewriter timing before the full message is revealed."
2468
- section: typewriter_scramble_text
2469
- enabled: false
2470
- - key: animations.typewriter_scramble_text.12
2471
- type: text
2472
- label: "[scramble] A data dashboard has live values that scramble briefly when they update — a number changes, briefly scrambles its digits as if recalculating, then resolves to the new value — giving data updates a sense of computation happening."
2473
- value: "A data dashboard has live values that scramble briefly when they update — a number changes, briefly scrambles its digits as if recalculating, then resolves to the new value — giving data updates a sense of computation happening."
2474
- section: typewriter_scramble_text
2475
- enabled: false
2476
- - key: animations.typewriter_scramble_text.13
2477
- type: text
2478
- label: "[typewriter] A timeline of company history types each year and milestone in sequence — year types first, then a dash, then the milestone description — all in a monospace font with the cursor moving through the timeline chronologically."
2479
- value: "A timeline of company history types each year and milestone in sequence — year types first, then a dash, then the milestone description — all in a monospace font with the cursor moving through the timeline chronologically."
2480
- section: typewriter_scramble_text
2481
- enabled: false
2482
- - key: animations.typewriter_scramble_text.14
2483
- type: text
2484
- label: "[scramble] On page load, all headings simultaneously scramble for 600ms — all text on the page briefly unreadable — then all resolve to their final text simultaneously, as if the page is descrambling from an encrypted state."
2485
- value: "On page load, all headings simultaneously scramble for 600ms — all text on the page briefly unreadable — then all resolve to their final text simultaneously, as if the page is descrambling from an encrypted state."
2486
- section: typewriter_scramble_text
2487
- enabled: false
2488
- - key: animations.typewriter_scramble_text.15
2489
- type: text
2490
- label: "[typewriter] A contact form confirmation message types itself in after submission — personal and human-feeling compared to an instant static reveal — 'Thanks [name], we'll be in touch soon."
2491
- value: "A contact form confirmation message types itself in after submission — personal and human-feeling compared to an instant static reveal — 'Thanks [name], we'll be in touch soon.' typing in with the user's name filled in mid-sentence."
2492
- section: typewriter_scramble_text
2493
- enabled: false
2494
- - key: animations.typewriter_scramble_text.16
2495
- type: text
2496
- label: "[scramble] Navigation links scramble on hover — the link text briefly cycles through random characters before resolving back to the original text — a subtle scramble that rewards hover exploration without obscuring the navigation function."
2497
- value: "Navigation links scramble on hover — the link text briefly cycles through random characters before resolving back to the original text — a subtle scramble that rewards hover exploration without obscuring the navigation function."
2498
- section: typewriter_scramble_text
2499
- enabled: false
2500
- - key: animations.typewriter_scramble_text.17
2501
- type: text
2502
- label: "[typewriter] A loading screen types a random interesting fact or brand statement while content loads in the background — one character at a time — giving the user something to read during the wait and establishing personality before the page is ready."
2503
- value: "A loading screen types a random interesting fact or brand statement while content loads in the background — one character at a time — giving the user something to read during the wait and establishing personality before the page is ready."
2504
- section: typewriter_scramble_text
2505
- enabled: false
2506
- - key: animations.typewriter_scramble_text.18
2507
- type: text
2508
- label: "[scramble] A language/locale switcher scrambles the page's key text elements when switching language — all headings scramble simultaneously, then resolve into the translated versions — visualizing the translation as a transformation rather than a reload."
2509
- value: "A language/locale switcher scrambles the page's key text elements when switching language — all headings scramble simultaneously, then resolve into the translated versions — visualizing the translation as a transformation rather than a reload."
2510
- section: typewriter_scramble_text
2511
- enabled: false
2512
- - key: animations.typewriter_scramble_text.19
2513
- type: text
2514
- label: "[typewriter] An about page bio types itself as if the person is writing their own introduction in real time — with occasional pauses as if thinking, a backspace to correct a word, then retyping — a playful self-aware typewriter that mimics human writing behavior."
2515
- value: "An about page bio types itself as if the person is writing their own introduction in real time — with occasional pauses as if thinking, a backspace to correct a word, then retyping — a playful self-aware typewriter that mimics human writing behavior."
2516
- section: typewriter_scramble_text
2517
- enabled: false
2518
- - key: animations.typewriter_scramble_text.20
2519
- type: text
2520
- label: "[scramble] A 404 error page headline scrambles repeatedly — 'Page Not Found' scrambling into random characters every 2 seconds and resolving back — as if the page can't quite figure out what it is, turning an error into an engaging animation."
2521
- value: "A 404 error page headline scrambles repeatedly — 'Page Not Found' scrambling into random characters every 2 seconds and resolving back — as if the page can't quite figure out what it is, turning an error into an engaging animation."
2522
- section: typewriter_scramble_text
2523
- enabled: false
2524
- - key: animations.section_background_morph.enabled
2525
- type: text
2526
- label: "Section Background Morph — enable category"
2527
- value: ""
2528
- section: section_background_morph
2529
- enabled: false
2530
- - key: animations.section_background_morph.1
2531
- type: text
2532
- label: "[color] The page background shifts through a curated palette of brand colors as the user scrolls through sections — each color crossfades over a 400ms window as the scroll crosses each section threshold, the whole page atmosphere changing with each transition."
2533
- value: "The page background shifts through a curated palette of brand colors as the user scrolls through sections — each color crossfades over a 400ms window as the scroll crosses each section threshold, the whole page atmosphere changing with each transition."
2534
- section: section_background_morph
2535
- enabled: false
2536
- - key: animations.section_background_morph.2
2537
- type: text
2538
- label: "[gradient] The background gradient rotates its angle as the user scrolls — starting at 0 degrees at the top of the page and rotating to 180 degrees at the bottom — so the gradient's direction evolves continuously throughout the scrolling journey."
2539
- value: "The background gradient rotates its angle as the user scrolls — starting at 0 degrees at the top of the page and rotating to 180 degrees at the bottom — so the gradient's direction evolves continuously throughout the scrolling journey."
2540
- section: section_background_morph
2541
- enabled: false
2542
- - key: animations.section_background_morph.3
2543
- type: text
2544
- label: "[color] Each section has a background color that bleeds into the next — no hard dividers between sections — instead the color morph begins 100px before the section boundary and completes 100px after, creating smooth color transitions in the content flow."
2545
- value: "Each section has a background color that bleeds into the next — no hard dividers between sections — instead the color morph begins 100px before the section boundary and completes 100px after, creating smooth color transitions in the content flow."
2546
- section: section_background_morph
2547
- enabled: false
2548
- - key: animations.section_background_morph.4
2549
- type: text
2550
- label: "[texture] The background transitions from a flat color to a subtle texture pattern as the user scrolls into specific sections — the texture fades in over 500ms, adding material depth to certain sections while others remain clean and flat."
2551
- value: "The background transitions from a flat color to a subtle texture pattern as the user scrolls into specific sections — the texture fades in over 500ms, adding material depth to certain sections while others remain clean and flat."
2552
- section: section_background_morph
2553
- enabled: false
2554
- - key: animations.section_background_morph.5
2555
- type: text
2556
- label: "[gradient] A two-tone gradient background has its stop positions animated by scroll — the gradient starts tight and centered, then stretches and shifts as the user scrolls, the color bands expanding and contracting in response to scroll position."
2557
- value: "A two-tone gradient background has its stop positions animated by scroll — the gradient starts tight and centered, then stretches and shifts as the user scrolls, the color bands expanding and contracting in response to scroll position."
2558
- section: section_background_morph
2559
- enabled: false
2560
- - key: animations.section_background_morph.6
2561
- type: text
2562
- label: "[color] A dark-to-light page journey — the background starts near-black at the top and gradually lightens section by section to near-white at the bottom — a full tonal journey across the page driven entirely by scroll progress."
2563
- value: "A dark-to-light page journey — the background starts near-black at the top and gradually lightens section by section to near-white at the bottom — a full tonal journey across the page driven entirely by scroll progress."
2564
- section: section_background_morph
2565
- enabled: false
2566
- - key: animations.section_background_morph.7
2567
- type: text
2568
- label: "[texture] The background alternates between solid color and a dot-grid pattern with each section — the dots fade in and scale up from nothing as the section enters and fade out as it exits, adding rhythmic texture changes to the reading experience."
2569
- value: "The background alternates between solid color and a dot-grid pattern with each section — the dots fade in and scale up from nothing as the section enters and fade out as it exits, adding rhythmic texture changes to the reading experience."
2570
- section: section_background_morph
2571
- enabled: false
2572
- - key: animations.section_background_morph.8
2573
- type: text
2574
- label: "[gradient] A radial gradient follows the scroll position — its center point moves from the top of the viewport at page top to the bottom of the viewport at page bottom, always emanating from the center of the current view."
2575
- value: "A radial gradient follows the scroll position — its center point moves from the top of the viewport at page top to the bottom of the viewport at page bottom, always emanating from the center of the current view."
2576
- section: section_background_morph
2577
- enabled: false
2578
- - key: animations.section_background_morph.9
2579
- type: text
2580
- label: "[color] Scrolling into a case study section triggers a background morph to that client's brand color — a smooth crossfade that immerses the user in the brand world of that project — then morphs back to neutral when leaving the section."
2581
- value: "Scrolling into a case study section triggers a background morph to that client's brand color — a smooth crossfade that immerses the user in the brand world of that project — then morphs back to neutral when leaving the section."
2582
- section: section_background_morph
2583
- enabled: false
2584
- - key: animations.section_background_morph.10
2585
- type: text
2586
- label: "[texture] The background has a large, slowly moving blob shape — an organic SVG form — that shifts color in sync with section changes while continuing its slow autonomous drift, background color and shape both changing together."
2587
- value: "The background has a large, slowly moving blob shape — an organic SVG form — that shifts color in sync with section changes while continuing its slow autonomous drift, background color and shape both changing together."
2588
- section: section_background_morph
2589
- enabled: false
2590
- - key: animations.section_background_morph.11
2591
- type: text
2592
- label: "[gradient] The background gradient transitions from warm tones in sections about problems — reds and ambers — to cool tones in sections about solutions — blues and teals — using color temperature to reinforce the emotional narrative of the page."
2593
- value: "The background gradient transitions from warm tones in sections about problems — reds and ambers — to cool tones in sections about solutions — blues and teals — using color temperature to reinforce the emotional narrative of the page."
2594
- section: section_background_morph
2595
- enabled: false
2596
- - key: animations.section_background_morph.12
2597
- type: text
2598
- label: "[color] In a features section, each feature's background color is desaturated while the feature is not in focus, and saturates to its full color when the feature becomes the active scroll target — the whole section breathing color in and out."
2599
- value: "In a features section, each feature's background color is desaturated while the feature is not in focus, and saturates to its full color when the feature becomes the active scroll target — the whole section breathing color in and out."
2600
- section: section_background_morph
2601
- enabled: false
2602
- - key: animations.section_background_morph.13
2603
- type: text
2604
- label: "[texture] The background has a subtle line-grid texture whose density changes with scroll — sparse at the top of each section, becoming denser as the scroll progresses through the section, visualizing depth or intensity through texture density."
2605
- value: "The background has a subtle line-grid texture whose density changes with scroll — sparse at the top of each section, becoming denser as the scroll progresses through the section, visualizing depth or intensity through texture density."
2606
- section: section_background_morph
2607
- enabled: false
2608
- - key: animations.section_background_morph.14
2609
- type: text
2610
- label: "[gradient] A multi-stop gradient background has each color stop animated independently by scroll — some stops moving faster than others — so the gradient is constantly rearranging its color positions as the user scrolls, never static."
2611
- value: "A multi-stop gradient background has each color stop animated independently by scroll — some stops moving faster than others — so the gradient is constantly rearranging its color positions as the user scrolls, never static."
2612
- section: section_background_morph
2613
- enabled: false
2614
- - key: animations.section_background_morph.15
2615
- type: text
2616
- label: "[color] The background color behind a testimonial section changes to match the brand color of the company whose testimonial is currently active — synced with the testimonial carousel — giving each quote its own branded atmospheric backdrop."
2617
- value: "The background color behind a testimonial section changes to match the brand color of the company whose testimonial is currently active — synced with the testimonial carousel — giving each quote its own branded atmospheric backdrop."
2618
- section: section_background_morph
2619
- enabled: false
2620
- - key: animations.section_background_morph.16
2621
- type: text
2622
- label: "[texture] A particle field in the background becomes denser and more active as sections of greater importance are scrolled into view — sparse and slow-moving in intro sections, dense and fast in climax sections — intensity matching content weight."
2623
- value: "A particle field in the background becomes denser and more active as sections of greater importance are scrolled into view — sparse and slow-moving in intro sections, dense and fast in climax sections — intensity matching content weight."
2624
- section: section_background_morph
2625
- enabled: false
2626
- - key: animations.section_background_morph.17
2627
- type: text
2628
- label: "[gradient] The page background uses a split — the left half transitions through one color palette and the right half through a complementary palette — both evolving in sync with scroll, creating a dynamic color field that evolves across both axes."
2629
- value: "The page background uses a split — the left half transitions through one color palette and the right half through a complementary palette — both evolving in sync with scroll, creating a dynamic color field that evolves across both axes."
2630
- section: section_background_morph
2631
- enabled: false
2632
- - key: animations.section_background_morph.18
2633
- type: text
2634
- label: "[color] Scrolling speed affects the background color saturation — fast scrolling desaturates the background toward gray, slow and deliberate scrolling allows the full brand color to saturate fully — rewarding contemplative reading with richer visuals."
2635
- value: "Scrolling speed affects the background color saturation — fast scrolling desaturates the background toward gray, slow and deliberate scrolling allows the full brand color to saturate fully — rewarding contemplative reading with richer visuals."
2636
- section: section_background_morph
2637
- enabled: false
2638
- - key: animations.section_background_morph.19
2639
- type: text
2640
- label: "[texture] The background transitions from a light-mode neutral to a dark-mode atmospheric as the user scrolls into the product demo section — the entire color scheme inverting smoothly over 600ms, framing the demo in its natural dark interface context."
2641
- value: "The background transitions from a light-mode neutral to a dark-mode atmospheric as the user scrolls into the product demo section — the entire color scheme inverting smoothly over 600ms, framing the demo in its natural dark interface context."
2642
- section: section_background_morph
2643
- enabled: false
2644
- - key: animations.section_background_morph.20
2645
- type: text
2646
- label: "[gradient] The footer approach uses a dramatic background morph — starting 400px before the footer, the background begins a deep color shift toward the footer's dark background — the transition starting early enough that the user feels themselves descending into the footer."
2647
- value: "The footer approach uses a dramatic background morph — starting 400px before the footer, the background begins a deep color shift toward the footer's dark background — the transition starting early enough that the user feels themselves descending into the footer."
2648
- section: section_background_morph
2649
- enabled: false
2650
- - key: animations.timeline_storytelling.enabled
2651
- type: text
2652
- label: "Timeline Storytelling — enable category"
2653
- value: ""
2654
- section: timeline_storytelling
2655
- enabled: false
2656
- - key: animations.timeline_storytelling.1
2657
- type: text
2658
- label: "[scroll] Pin the section and draw a vertical timeline line from top to bottom as the user scrolls — a drawing stroke that descends at the same pace as the scroll — with event nodes popping in with a scale bounce as the line reaches each one."
2659
- value: "Pin the section and draw a vertical timeline line from top to bottom as the user scrolls — a drawing stroke that descends at the same pace as the scroll — with event nodes popping in with a scale bounce as the line reaches each one."
2660
- section: timeline_storytelling
2661
- enabled: false
2662
- - key: animations.timeline_storytelling.2
2663
- type: text
2664
- label: "[reveal] A horizontal timeline sits pinned at the top of the section."
2665
- value: "A horizontal timeline sits pinned at the top of the section. As the user scrolls, a playhead marker moves along the timeline from left to right, and at each event marker it pauses while the corresponding event card fades in below it."
2666
- section: timeline_storytelling
2667
- enabled: false
2668
- - key: animations.timeline_storytelling.3
2669
- type: text
2670
- label: "[scroll] A company history timeline has decade markers."
2671
- value: "A company history timeline has decade markers. As each decade scrolls into view, the year number flips in like a split-flap display, the connecting line extends to the next event, and the event description clips up from below its mask."
2672
- section: timeline_storytelling
2673
- enabled: false
2674
- - key: animations.timeline_storytelling.4
2675
- type: text
2676
- label: "[branch] A branching timeline shows cause-and-effect relationships — the main timeline advances on scroll, and at branch points, secondary branches extend outward with a drawing animation, showing parallel events or consequences."
2677
- value: "A branching timeline shows cause-and-effect relationships — the main timeline advances on scroll, and at branch points, secondary branches extend outward with a drawing animation, showing parallel events or consequences."
2678
- section: timeline_storytelling
2679
- enabled: false
2680
- - key: animations.timeline_storytelling.5
2681
- type: text
2682
- label: "[scroll] Each timeline event has a before/after photo pair — as the event scrolls into view, the before photo is visible, then a horizontal wipe reveals the after photo, visually showing the change the event caused."
2683
- value: "Each timeline event has a before/after photo pair — as the event scrolls into view, the before photo is visible, then a horizontal wipe reveals the after photo, visually showing the change the event caused."
2684
- section: timeline_storytelling
2685
- enabled: false
2686
- - key: animations.timeline_storytelling.6
2687
- type: text
2688
- label: "[reveal] A pinned timeline section shows events as cards that stack behind a fixed viewport window — as the user scrolls, cards emerge from the bottom of the window one at a time with a slide and fade entrance, and old cards exit the top."
2689
- value: "A pinned timeline section shows events as cards that stack behind a fixed viewport window — as the user scrolls, cards emerge from the bottom of the window one at a time with a slide and fade entrance, and old cards exit the top."
2690
- section: timeline_storytelling
2691
- enabled: false
2692
- - key: animations.timeline_storytelling.7
2693
- type: text
2694
- label: "[scroll] A product development timeline animates version numbers incrementing — each version release event types its version number in, its feature list stagger-reveals below it, and a progress bar shows total development time elapsed."
2695
- value: "A product development timeline animates version numbers incrementing — each version release event types its version number in, its feature list stagger-reveals below it, and a progress bar shows total development time elapsed."
2696
- section: timeline_storytelling
2697
- enabled: false
2698
- - key: animations.timeline_storytelling.8
2699
- type: text
2700
- label: "[branch] A personal or brand story timeline uses a winding path SVG — a curving road or river — that draws itself on scroll, with location pins dropping in at each key event, the path always arriving at the pin just as the event card animates in."
2701
- value: "A personal or brand story timeline uses a winding path SVG — a curving road or river — that draws itself on scroll, with location pins dropping in at each key event, the path always arriving at the pin just as the event card animates in."
2702
- section: timeline_storytelling
2703
- enabled: false
2704
- - key: animations.timeline_storytelling.9
2705
- type: text
2706
- label: "[scroll] A news or press timeline has date stamps that type themselves in from right to left — the day, then month, then year — followed by the headline clipping in from a mask, creating a journalistic timestamp effect for each entry."
2707
- value: "A news or press timeline has date stamps that type themselves in from right to left — the day, then month, then year — followed by the headline clipping in from a mask, creating a journalistic timestamp effect for each entry."
2708
- section: timeline_storytelling
2709
- enabled: false
2710
- - key: animations.timeline_storytelling.10
2711
- type: text
2712
- label: "[reveal] A pinned timeline with milestone markers — each marker is a circle that starts empty and fills with a solid color as the scroll reaches it, with the fill triggering the event label and description to animate in on the opposite side of the line."
2713
- value: "A pinned timeline with milestone markers — each marker is a circle that starts empty and fills with a solid color as the scroll reaches it, with the fill triggering the event label and description to animate in on the opposite side of the line."
2714
- section: timeline_storytelling
2715
- enabled: false
2716
- - key: animations.timeline_storytelling.11
2717
- type: text
2718
- label: "[scroll] A scientific discovery timeline has each event accompanied by an SVG illustration that draws itself — the stroke animating in — as the scroll reaches that event."
2719
- value: "A scientific discovery timeline has each event accompanied by an SVG illustration that draws itself — the stroke animating in — as the scroll reaches that event. Complex discoveries have more complex drawings that take longer to complete."
2720
- section: timeline_storytelling
2721
- enabled: false
2722
- - key: animations.timeline_storytelling.12
2723
- type: text
2724
- label: "[branch] An industry evolution timeline shows the emergence of technologies — each new technology branches off from a main trunk line, its branch extending outward as the scroll reaches its inception date, with sub-branches for derivative technologies."
2725
- value: "An industry evolution timeline shows the emergence of technologies — each new technology branches off from a main trunk line, its branch extending outward as the scroll reaches its inception date, with sub-branches for derivative technologies."
2726
- section: timeline_storytelling
2727
- enabled: false
2728
- - key: animations.timeline_storytelling.13
2729
- type: text
2730
- label: "[scroll] A timeline that maps to real geographic distance — the further back in history, the more scroll distance required — so ancient events require long scrolling while recent events are close together, making the user feel the pace of historical change."
2731
- value: "A timeline that maps to real geographic distance — the further back in history, the more scroll distance required — so ancient events require long scrolling while recent events are close together, making the user feel the pace of historical change."
2732
- section: timeline_storytelling
2733
- enabled: false
2734
- - key: animations.timeline_storytelling.14
2735
- type: text
2736
- label: "[reveal] A music album release timeline — each album card reveals with a vinyl record spinning in from the side, the album art fades in on the record, and a waveform visualizer draws in below each card representing the album's audio signature."
2737
- value: "A music album release timeline — each album card reveals with a vinyl record spinning in from the side, the album art fades in on the record, and a waveform visualizer draws in below each card representing the album's audio signature."
2738
- section: timeline_storytelling
2739
- enabled: false
2740
- - key: animations.timeline_storytelling.15
2741
- type: text
2742
- label: "[scroll] A future roadmap timeline uses a different visual treatment than the past sections — past events use solid fills and completed-state styling, future events use dashed lines and outline-only styling, with the 'today' marker clearly animated."
2743
- value: "A future roadmap timeline uses a different visual treatment than the past sections — past events use solid fills and completed-state styling, future events use dashed lines and outline-only styling, with the 'today' marker clearly animated."
2744
- section: timeline_storytelling
2745
- enabled: false
2746
- - key: animations.timeline_storytelling.16
2747
- type: text
2748
- label: "[branch] A team growth timeline shows headcount — as each hiring milestone is reached by the scroll, new avatar circles appear with a scale-in bounce, joining the growing cluster of team member icons, visually showing the team expanding."
2749
- value: "A team growth timeline shows headcount — as each hiring milestone is reached by the scroll, new avatar circles appear with a scale-in bounce, joining the growing cluster of team member icons, visually showing the team expanding."
2750
- section: timeline_storytelling
2751
- enabled: false
2752
- - key: animations.timeline_storytelling.17
2753
- type: text
2754
- label: "[scroll] A climate or environmental timeline uses color-coded severity — early events in green, middle events in amber, recent events in red — the color of each event card and its timeline node reflecting the urgency of that historical moment."
2755
- value: "A climate or environmental timeline uses color-coded severity — early events in green, middle events in amber, recent events in red — the color of each event card and its timeline node reflecting the urgency of that historical moment."
2756
- section: timeline_storytelling
2757
- enabled: false
2758
- - key: animations.timeline_storytelling.18
2759
- type: text
2760
- label: "[reveal] A legal or patent timeline reveals each document as a folded page that unfolds on scroll entry — the document icon animating from folded to flat — before the event description fades in below it, like opening an archive."
2761
- value: "A legal or patent timeline reveals each document as a folded page that unfolds on scroll entry — the document icon animating from folded to flat — before the event description fades in below it, like opening an archive."
2762
- section: timeline_storytelling
2763
- enabled: false
2764
- - key: animations.timeline_storytelling.19
2765
- type: text
2766
- label: "[scroll] A sports season timeline has each match result revealed with a score counter that counts up from 0-0 to the final score — both numbers counting simultaneously — with the winning team's side highlighted as the scores resolve."
2767
- value: "A sports season timeline has each match result revealed with a score counter that counts up from 0-0 to the final score — both numbers counting simultaneously — with the winning team's side highlighted as the scores resolve."
2768
- section: timeline_storytelling
2769
- enabled: false
2770
- - key: animations.timeline_storytelling.20
2771
- type: text
2772
- label: "[branch] A technology stack evolution timeline shows how the current tech stack grew — each tool or framework appearing at its adoption date, with dependency lines drawing between tools that influenced each other, building a visual dependency graph over time."
2773
- value: "A technology stack evolution timeline shows how the current tech stack grew — each tool or framework appearing at its adoption date, with dependency lines drawing between tools that influenced each other, building a visual dependency graph over time."
2774
- section: timeline_storytelling
2775
- enabled: false
2776
- - key: animations.infinite_marquee.enabled
2777
- type: text
2778
- label: "Infinite Marquee — enable category"
2779
- value: ""
2780
- section: infinite_marquee
2781
- enabled: false
2782
- - key: animations.infinite_marquee.1
2783
- type: text
2784
- label: "[horizontal] A logo strip marquee scrolls continuously from right to left in a seamless loop — client logos spaced evenly — pausing on hover with a smooth deceleration, and resuming with an acceleration when the cursor leaves."
2785
- value: "A logo strip marquee scrolls continuously from right to left in a seamless loop — client logos spaced evenly — pausing on hover with a smooth deceleration, and resuming with an acceleration when the cursor leaves."
2786
- section: infinite_marquee
2787
- enabled: false
2788
- - key: animations.infinite_marquee.2
2789
- type: text
2790
- label: "[vertical] A vertical ticker of news headlines or updates scrolls upward in a continuous loop — each item slides up and out of frame at the top while a new one enters from the bottom — pausing on hover to allow reading."
2791
- value: "A vertical ticker of news headlines or updates scrolls upward in a continuous loop — each item slides up and out of frame at the top while a new one enters from the bottom — pausing on hover to allow reading."
2792
- section: infinite_marquee
2793
- enabled: false
2794
- - key: animations.infinite_marquee.3
2795
- type: text
2796
- label: "[horizontal] Two marquee rows running in opposite directions — the top row moving left, the bottom row moving right — stacked with a small gap, creating a dynamic visual tension between the two streams of content."
2797
- value: "Two marquee rows running in opposite directions — the top row moving left, the bottom row moving right — stacked with a small gap, creating a dynamic visual tension between the two streams of content."
2798
- section: infinite_marquee
2799
- enabled: false
2800
- - key: animations.infinite_marquee.4
2801
- type: text
2802
- label: "[speed] A marquee that accelerates when the page scrolls — the marquee base speed is slow when the page is idle, but as the user scrolls, the marquee speeds up proportionally, decelerating back to slow when scrolling stops."
2803
- value: "A marquee that accelerates when the page scrolls — the marquee base speed is slow when the page is idle, but as the user scrolls, the marquee speeds up proportionally, decelerating back to slow when scrolling stops."
2804
- section: infinite_marquee
2805
- enabled: false
2806
- - key: animations.infinite_marquee.5
2807
- type: text
2808
- label: "[horizontal] A text-only marquee with a single repeated phrase — large, bold, oversized type — scrolling slowly across the full viewport width, the repetition creating a typographic wallpaper effect that reinforces the brand message."
2809
- value: "A text-only marquee with a single repeated phrase — large, bold, oversized type — scrolling slowly across the full viewport width, the repetition creating a typographic wallpaper effect that reinforces the brand message."
2810
- section: infinite_marquee
2811
- enabled: false
2812
- - key: animations.infinite_marquee.6
2813
- type: text
2814
- label: "[vertical] A vertical awards and recognition ticker scrolls through accolades — each item formatted as an award icon, title, and year — scrolling upward slowly enough to be read without pausing, like credits rolling at the end of a film."
2815
- value: "A vertical awards and recognition ticker scrolls through accolades — each item formatted as an award icon, title, and year — scrolling upward slowly enough to be read without pausing, like credits rolling at the end of a film."
2816
- section: infinite_marquee
2817
- enabled: false
2818
- - key: animations.infinite_marquee.7
2819
- type: text
2820
- label: "[speed] A marquee that reverses direction when the scroll direction reverses — scrolling down moves the marquee left, scrolling up moves it right — so the marquee direction is always linked to the user's scroll momentum."
2821
- value: "A marquee that reverses direction when the scroll direction reverses — scrolling down moves the marquee left, scrolling up moves it right — so the marquee direction is always linked to the user's scroll momentum."
2822
- section: infinite_marquee
2823
- enabled: false
2824
- - key: animations.infinite_marquee.8
2825
- type: text
2826
- label: "[horizontal] A marquee strip that separates page sections — positioned between content blocks — alternating between text and small decorative icons or symbols in the stream, creating a divider that also communicates brand personality."
2827
- value: "A marquee strip that separates page sections — positioned between content blocks — alternating between text and small decorative icons or symbols in the stream, creating a divider that also communicates brand personality."
2828
- section: infinite_marquee
2829
- enabled: false
2830
- - key: animations.infinite_marquee.9
2831
- type: text
2832
- label: "[vertical] A skills or services list in a vertical marquee that scrolls at just below reading speed — forcing the user to track individual items — with a gradient mask fading items out at the top and bottom edges of the visible area."
2833
- value: "A skills or services list in a vertical marquee that scrolls at just below reading speed — forcing the user to track individual items — with a gradient mask fading items out at the top and bottom edges of the visible area."
2834
- section: infinite_marquee
2835
- enabled: false
2836
- - key: animations.infinite_marquee.10
2837
- type: text
2838
- label: "[speed] A marquee whose speed is controlled by cursor proximity — as the cursor moves toward the marquee strip the speed increases, as it moves away the speed decreases — a magnetic speed relationship between cursor and content."
2839
- value: "A marquee whose speed is controlled by cursor proximity — as the cursor moves toward the marquee strip the speed increases, as it moves away the speed decreases — a magnetic speed relationship between cursor and content."
2840
- section: infinite_marquee
2841
- enabled: false
2842
- - key: animations.infinite_marquee.11
2843
- type: text
2844
- label: "[horizontal] A multi-language marquee — the same phrase repeating in different languages — scrolling so that each language occupies the same amount of horizontal space due to variable type sizing, creating a global rhythm."
2845
- value: "A multi-language marquee — the same phrase repeating in different languages — scrolling so that each language occupies the same amount of horizontal space due to variable type sizing, creating a global rhythm."
2846
- section: infinite_marquee
2847
- enabled: false
2848
- - key: animations.infinite_marquee.12
2849
- type: text
2850
- label: "[vertical] A testimonial quote ticker scrolls upward showing short excerpts — just one or two lines each — with the speaker's name below each quote, creating a rapid impression of social proof as the quotes stream past."
2851
- value: "A testimonial quote ticker scrolls upward showing short excerpts — just one or two lines each — with the speaker's name below each quote, creating a rapid impression of social proof as the quotes stream past."
2852
- section: infinite_marquee
2853
- enabled: false
2854
- - key: animations.infinite_marquee.13
2855
- type: text
2856
- label: "[speed] A marquee that pauses when a specific element on the page is in the viewport — a related section or featured item — and resumes when that element is scrolled past, creating a contextual relationship between scroll position and marquee motion."
2857
- value: "A marquee that pauses when a specific element on the page is in the viewport — a related section or featured item — and resumes when that element is scrolled past, creating a contextual relationship between scroll position and marquee motion."
2858
- section: infinite_marquee
2859
- enabled: false
2860
- - key: animations.infinite_marquee.14
2861
- type: text
2862
- label: "[horizontal] An image marquee with mixed portrait and landscape photos at consistent heights — photos scrolling left with slight gaps between them — each photo subtly zooms in on hover while the strip continues scrolling around it."
2863
- value: "An image marquee with mixed portrait and landscape photos at consistent heights — photos scrolling left with slight gaps between them — each photo subtly zooms in on hover while the strip continues scrolling around it."
2864
- section: infinite_marquee
2865
- enabled: false
2866
- - key: animations.infinite_marquee.15
2867
- type: text
2868
- label: "[vertical] A real-time data ticker — showing live statistics, counts, or updates — scrolling upward with new items appending at the bottom."
2869
- value: "A real-time data ticker — showing live statistics, counts, or updates — scrolling upward with new items appending at the bottom. New items slide in with a brief highlight color that fades to match the others."
2870
- section: infinite_marquee
2871
- enabled: false
2872
- - key: animations.infinite_marquee.16
2873
- type: text
2874
- label: "[speed] A marquee that slows dramatically as it enters the viewport on scroll — starting fast as the section first appears and decelerating to its cruise speed over 1 second — giving the first impression of urgency that settles into a calm rhythm."
2875
- value: "A marquee that slows dramatically as it enters the viewport on scroll — starting fast as the section first appears and decelerating to its cruise speed over 1 second — giving the first impression of urgency that settles into a calm rhythm."
2876
- section: infinite_marquee
2877
- enabled: false
2878
- - key: animations.infinite_marquee.17
2879
- type: text
2880
- label: "[horizontal] A marquee with mixed content types — some items are text, some are small icons, some are image thumbnails — all in a single continuous stream, creating a rich varied strip that rewards extended watching."
2881
- value: "A marquee with mixed content types — some items are text, some are small icons, some are image thumbnails — all in a single continuous stream, creating a rich varied strip that rewards extended watching."
2882
- section: infinite_marquee
2883
- enabled: false
2884
- - key: animations.infinite_marquee.18
2885
- type: text
2886
- label: "[vertical] A job listings or opportunities ticker scrolls position titles upward — each item formatted with role, team, and location — with a 'View all' CTA that fades in after the ticker has been running for 3 seconds."
2887
- value: "A job listings or opportunities ticker scrolls position titles upward — each item formatted with role, team, and location — with a 'View all' CTA that fades in after the ticker has been running for 3 seconds."
2888
- section: infinite_marquee
2889
- enabled: false
2890
- - key: animations.infinite_marquee.19
2891
- type: text
2892
- label: "[speed] A diagonal marquee — scrolling at 45 degrees from bottom-left to top-right — filling a full-bleed section as a background texture of repeating text, the diagonal direction making it feel more dynamic than horizontal or vertical."
2893
- value: "A diagonal marquee — scrolling at 45 degrees from bottom-left to top-right — filling a full-bleed section as a background texture of repeating text, the diagonal direction making it feel more dynamic than horizontal or vertical."
2894
- section: infinite_marquee
2895
- enabled: false
2896
- - key: animations.infinite_marquee.20
2897
- type: text
2898
- label: "[horizontal] A marquee that clips at a container boundary rather than the viewport edge — contained within a card or section — with a gradient fade at both edges of the container, creating an internal scrolling window effect."
2899
- value: "A marquee that clips at a container boundary rather than the viewport edge — contained within a card or section — with a gradient fade at both edges of the container, creating an internal scrolling window effect."
2900
- section: infinite_marquee
2901
- enabled: false
2902
- - key: animations.3d_scene_on_scroll.enabled
2903
- type: text
2904
- label: "3d Scene On Scroll — enable category"
2905
- value: ""
2906
- section: 3d_scene_on_scroll
2907
- enabled: false
2908
- - key: animations.3d_scene_on_scroll.1
2909
- type: text
2910
- label: "[orbit] A 3D product model orbits slowly as the user scrolls — the camera position rotates around the object's Y axis, completing a full 360-degree orbit over the full scroll distance of the pinned section, revealing all angles of the product."
2911
- value: "A 3D product model orbits slowly as the user scrolls — the camera position rotates around the object's Y axis, completing a full 360-degree orbit over the full scroll distance of the pinned section, revealing all angles of the product."
2912
- section: 3d_scene_on_scroll
2913
- enabled: false
2914
- - key: animations.3d_scene_on_scroll.2
2915
- type: text
2916
- label: "[depth] A scene built with CSS perspective has elements at multiple Z depths — foreground, mid, and background layers — that spread apart on scroll, the camera pulling back to reveal the full depth of the composition as the user scrolls down."
2917
- value: "A scene built with CSS perspective has elements at multiple Z depths — foreground, mid, and background layers — that spread apart on scroll, the camera pulling back to reveal the full depth of the composition as the user scrolls down."
2918
- section: 3d_scene_on_scroll
2919
- enabled: false
2920
- - key: animations.3d_scene_on_scroll.3
2921
- type: text
2922
- label: "[orbit] A 3D globe rotates on the Y axis in sync with horizontal mouse movement — and tilts on the X axis with vertical mouse movement — while scroll controls the camera zoom level, pulling the globe closer or pushing it further away."
2923
- value: "A 3D globe rotates on the Y axis in sync with horizontal mouse movement — and tilts on the X axis with vertical mouse movement — while scroll controls the camera zoom level, pulling the globe closer or pushing it further away."
2924
- section: 3d_scene_on_scroll
2925
- enabled: false
2926
- - key: animations.3d_scene_on_scroll.4
2927
- type: text
2928
- label: "[tilt] An entire hero section tilts in 3D perspective as the cursor moves — the whole scene rotating up to 8 degrees on both axes based on mouse position — creating the illusion that the flat design exists in a real 3D space."
2929
- value: "An entire hero section tilts in 3D perspective as the cursor moves — the whole scene rotating up to 8 degrees on both axes based on mouse position — creating the illusion that the flat design exists in a real 3D space."
2930
- section: 3d_scene_on_scroll
2931
- enabled: false
2932
- - key: animations.3d_scene_on_scroll.5
2933
- type: text
2934
- label: "[depth] A stack of 3D cards is arranged along the Z axis — closest card in full size and sharp, cards behind it progressively smaller and slightly blurred."
2935
- value: "A stack of 3D cards is arranged along the Z axis — closest card in full size and sharp, cards behind it progressively smaller and slightly blurred. Scrolling moves the whole stack forward, cycling each card to the front position."
2936
- section: 3d_scene_on_scroll
2937
- enabled: false
2938
- - key: animations.3d_scene_on_scroll.6
2939
- type: text
2940
- label: "[orbit] Scroll drives a first-person camera through a 3D scene — a hallway, a space, a landscape — built from layered CSS elements with perspective."
2941
- value: "Scroll drives a first-person camera through a 3D scene — a hallway, a space, a landscape — built from layered CSS elements with perspective. The camera advances forward as the user scrolls, creating a walk-through experience."
2942
- section: 3d_scene_on_scroll
2943
- enabled: false
2944
- - key: animations.3d_scene_on_scroll.7
2945
- type: text
2946
- label: "[tilt] Individual feature cards tilt independently based on cursor position within their own bounds — each card has its own tilt center, so multiple cards on screen simultaneously each have their own perspective response to the cursor."
2947
- value: "Individual feature cards tilt independently based on cursor position within their own bounds — each card has its own tilt center, so multiple cards on screen simultaneously each have their own perspective response to the cursor."
2948
- section: 3d_scene_on_scroll
2949
- enabled: false
2950
- - key: animations.3d_scene_on_scroll.8
2951
- type: text
2952
- label: "[depth] A 3D text extrusion effect — the headline has depth behind it, the extrusion visible from one angle."
2953
- value: "A 3D text extrusion effect — the headline has depth behind it, the extrusion visible from one angle. As the user scrolls, the text rotates to face-forward, collapsing the visible depth, as if the 3D text is turning to look at the user."
2954
- section: 3d_scene_on_scroll
2955
- enabled: false
2956
- - key: animations.3d_scene_on_scroll.9
2957
- type: text
2958
- label: "[orbit] A 3D icon or logo spins on entry — arriving from a rotated state and spinning to face-forward as it enters the viewport, the rotation triggered by scroll position so the spin speed is controlled by how fast the user scrolls."
2959
- value: "A 3D icon or logo spins on entry — arriving from a rotated state and spinning to face-forward as it enters the viewport, the rotation triggered by scroll position so the spin speed is controlled by how fast the user scrolls."
2960
- section: 3d_scene_on_scroll
2961
- enabled: false
2962
- - key: animations.3d_scene_on_scroll.10
2963
- type: text
2964
- label: "[tilt] A pricing table section uses 3D perspective — the table starts tilted back at rotateX 30 degrees as if lying flat on a table, and as it scrolls into view it rotates to face the user, rising from horizontal to vertical over the scroll range."
2965
- value: "A pricing table section uses 3D perspective — the table starts tilted back at rotateX 30 degrees as if lying flat on a table, and as it scrolls into view it rotates to face the user, rising from horizontal to vertical over the scroll range."
2966
- section: 3d_scene_on_scroll
2967
- enabled: false
2968
- - key: animations.3d_scene_on_scroll.11
2969
- type: text
2970
- label: "[depth] A 3D product showcase has the product on a virtual turntable — scroll drives rotation on the Y axis — while a separate mouse-driven tilt controls X axis rotation — combining two input types for full 3D control over the viewing angle."
2971
- value: "A 3D product showcase has the product on a virtual turntable — scroll drives rotation on the Y axis — while a separate mouse-driven tilt controls X axis rotation — combining two input types for full 3D control over the viewing angle."
2972
- section: 3d_scene_on_scroll
2973
- enabled: false
2974
- - key: animations.3d_scene_on_scroll.12
2975
- type: text
2976
- label: "[orbit] A team section uses a 3D arc layout — team member cards arranged on a curve receding into the distance."
2977
- value: "A team section uses a 3D arc layout — team member cards arranged on a curve receding into the distance. As the user scrolls, the arc rotates to bring each team member to the front-and-center position in the arc."
2978
- section: 3d_scene_on_scroll
2979
- enabled: false
2980
- - key: animations.3d_scene_on_scroll.13
2981
- type: text
2982
- label: "[tilt] A mobile app screenshot has a 3D device tilt that matches the screenshot content — a map app tilts the device to show the map in perspective, a fitness app tilts dynamically based on a simulated accelerometer value driven by scroll."
2983
- value: "A mobile app screenshot has a 3D device tilt that matches the screenshot content — a map app tilts the device to show the map in perspective, a fitness app tilts dynamically based on a simulated accelerometer value driven by scroll."
2984
- section: 3d_scene_on_scroll
2985
- enabled: false
2986
- - key: animations.3d_scene_on_scroll.14
2987
- type: text
2988
- label: "[depth] A 3D layered infographic uses CSS preserve-3d to separate layers — icons float at different Z positions — and as the user scrolls past the section, the layers slowly drift apart in Z space, then come back together, demonstrating their relationships."
2989
- value: "A 3D layered infographic uses CSS preserve-3d to separate layers — icons float at different Z positions — and as the user scrolls past the section, the layers slowly drift apart in Z space, then come back together, demonstrating their relationships."
2990
- section: 3d_scene_on_scroll
2991
- enabled: false
2992
- - key: animations.3d_scene_on_scroll.15
2993
- type: text
2994
- label: "[orbit] A 3D rotating cube displays different content on each face — scroll rotates the cube to the next face every section — each 90-degree rotation reveals a new content panel, making navigation a physical 3D turning of a cube."
2995
- value: "A 3D rotating cube displays different content on each face — scroll rotates the cube to the next face every section — each 90-degree rotation reveals a new content panel, making navigation a physical 3D turning of a cube."
2996
- section: 3d_scene_on_scroll
2997
- enabled: false
2998
- - key: animations.3d_scene_on_scroll.16
2999
- type: text
3000
- label: "[tilt] A gallery section uses a 3D perspective grid — images arranged with slight rotational offsets along both axes — the whole grid tilts gently as the cursor moves across the section, making the grid feel like a physical surface in space."
3001
- value: "A gallery section uses a 3D perspective grid — images arranged with slight rotational offsets along both axes — the whole grid tilts gently as the cursor moves across the section, making the grid feel like a physical surface in space."
3002
- section: 3d_scene_on_scroll
3003
- enabled: false
3004
- - key: animations.3d_scene_on_scroll.17
3005
- type: text
3006
- label: "[depth] A 3D book or brochure opens on scroll — the cover rotates on a spine axis to reveal interior pages, each page then turning individually as the scroll advances, creating a realistic page-turning animation driven entirely by scroll position."
3007
- value: "A 3D book or brochure opens on scroll — the cover rotates on a spine axis to reveal interior pages, each page then turning individually as the scroll advances, creating a realistic page-turning animation driven entirely by scroll position."
3008
- section: 3d_scene_on_scroll
3009
- enabled: false
3010
- - key: animations.3d_scene_on_scroll.18
3011
- type: text
3012
- label: "[orbit] A 3D architectural model rotates to show different elevations — front, side, rear, top — as the user scrolls through the description of each elevation."
3013
- value: "A 3D architectural model rotates to show different elevations — front, side, rear, top — as the user scrolls through the description of each elevation. The model snaps to each view with a smooth spring rotation."
3014
- section: 3d_scene_on_scroll
3015
- enabled: false
3016
- - key: animations.3d_scene_on_scroll.19
3017
- type: text
3018
- label: "[tilt] A skills or expertise radar chart exists in a 3D perspective — tilted back at 60 degrees — and rotates upright to face the user as it scrolls into view."
3019
- value: "A skills or expertise radar chart exists in a 3D perspective — tilted back at 60 degrees — and rotates upright to face the user as it scrolls into view. The chart's data fills in as the 3D rotation completes, combining entrance and data animation."
3020
- section: 3d_scene_on_scroll
3021
- enabled: false
3022
- - key: animations.3d_scene_on_scroll.20
3023
- type: text
3024
- label: "[depth] A 3D ribbon or banner twists through the section in perspective — one long surface folding through space — with text content printed on the ribbon."
3025
- value: "A 3D ribbon or banner twists through the section in perspective — one long surface folding through space — with text content printed on the ribbon. As the scroll advances, the camera moves along the ribbon, reading its content around the twists."
3026
- section: 3d_scene_on_scroll
3027
- enabled: false
3028
- - key: animations.accordion_drawer_reveal.enabled
3029
- type: text
3030
- label: "Accordion Drawer Reveal — enable category"
3031
- value: ""
3032
- section: accordion_drawer_reveal
3033
- enabled: false
3034
- - key: animations.accordion_drawer_reveal.1
3035
- type: text
3036
- label: "[height] An FAQ accordion opens each answer panel by animating from height 0 to auto — using GSAP's height auto technique — with an ease that starts fast and decelerates, making the drawer feel like it's releasing under spring tension."
3037
- value: "An FAQ accordion opens each answer panel by animating from height 0 to auto — using GSAP's height auto technique — with an ease that starts fast and decelerates, making the drawer feel like it's releasing under spring tension."
3038
- section: accordion_drawer_reveal
3039
- enabled: false
3040
- - key: animations.accordion_drawer_reveal.2
3041
- type: text
3042
- label: "[clip] Accordion panels reveal their content with a clip-path animation rather than height — the content is already at full height but clipped to zero, and the clip expands downward on open, creating a smoother animation without layout reflow."
3043
- value: "Accordion panels reveal their content with a clip-path animation rather than height — the content is already at full height but clipped to zero, and the clip expands downward on open, creating a smoother animation without layout reflow."
3044
- section: accordion_drawer_reveal
3045
- enabled: false
3046
- - key: animations.accordion_drawer_reveal.3
3047
- type: text
3048
- label: "[height] When one accordion item opens, all currently open items close simultaneously — their heights animate to zero while the new item opens — so there's always exactly one panel visible, and the transitions cross-fade rather than happening in sequence."
3049
- value: "When one accordion item opens, all currently open items close simultaneously — their heights animate to zero while the new item opens — so there's always exactly one panel visible, and the transitions cross-fade rather than happening in sequence."
3050
- section: accordion_drawer_reveal
3051
- enabled: false
3052
- - key: animations.accordion_drawer_reveal.4
3053
- type: text
3054
- label: "[icon] The accordion trigger icon rotates on open — a plus rotates 45 degrees to become an X, a chevron rotates 180 degrees to point upward — the icon rotation is springy, overshooting slightly before settling at its end angle."
3055
- value: "The accordion trigger icon rotates on open — a plus rotates 45 degrees to become an X, a chevron rotates 180 degrees to point upward — the icon rotation is springy, overshooting slightly before settling at its end angle."
3056
- section: accordion_drawer_reveal
3057
- enabled: false
3058
- - key: animations.accordion_drawer_reveal.5
3059
- type: text
3060
- label: "[height] A drawer component reveals from the bottom of the screen — sliding upward from below the viewport to its open position — with the background content scaling down slightly to acknowledge the drawer's presence in the space."
3061
- value: "A drawer component reveals from the bottom of the screen — sliding upward from below the viewport to its open position — with the background content scaling down slightly to acknowledge the drawer's presence in the space."
3062
- section: accordion_drawer_reveal
3063
- enabled: false
3064
- - key: animations.accordion_drawer_reveal.6
3065
- type: text
3066
- label: "[clip] A mobile filter panel slides in from the left edge — a drawer that opens horizontally — with the main content simultaneously shifting right to make room, both elements animating together as a coordinated space reconfiguration."
3067
- value: "A mobile filter panel slides in from the left edge — a drawer that opens horizontally — with the main content simultaneously shifting right to make room, both elements animating together as a coordinated space reconfiguration."
3068
- section: accordion_drawer_reveal
3069
- enabled: false
3070
- - key: animations.accordion_drawer_reveal.7
3071
- type: text
3072
- label: "[height] Accordion items open with a stagger of internal content — the panel height expands first, then the content inside fades in with its own internal stagger — so the container opens first and content follows, like unpacking a box."
3073
- value: "Accordion items open with a stagger of internal content — the panel height expands first, then the content inside fades in with its own internal stagger — so the container opens first and content follows, like unpacking a box."
3074
- section: accordion_drawer_reveal
3075
- enabled: false
3076
- - key: animations.accordion_drawer_reveal.8
3077
- type: text
3078
- label: "[icon] A settings drawer that opens from the right edge — clicking the trigger slides the panel in from the right — with an overlay fading in behind it, the overlay click closing the drawer with a matching reverse animation."
3079
- value: "A settings drawer that opens from the right edge — clicking the trigger slides the panel in from the right — with an overlay fading in behind it, the overlay click closing the drawer with a matching reverse animation."
3080
- section: accordion_drawer_reveal
3081
- enabled: false
3082
- - key: animations.accordion_drawer_reveal.9
3083
- type: text
3084
- label: "[height] A nested accordion — parent items contain child accordions — with each level of nesting having a slightly different animation duration, so child panels open faster than parent panels, communicating their relative hierarchy through timing."
3085
- value: "A nested accordion — parent items contain child accordions — with each level of nesting having a slightly different animation duration, so child panels open faster than parent panels, communicating their relative hierarchy through timing."
3086
- section: accordion_drawer_reveal
3087
- enabled: false
3088
- - key: animations.accordion_drawer_reveal.10
3089
- type: text
3090
- label: "[clip] A product specification accordion uses a horizontal reveal — each spec row expands its value column from the right using a clip animation — so the label is always visible and the value slides in to join it on open."
3091
- value: "A product specification accordion uses a horizontal reveal — each spec row expands its value column from the right using a clip animation — so the label is always visible and the value slides in to join it on open."
3092
- section: accordion_drawer_reveal
3093
- enabled: false
3094
- - key: animations.accordion_drawer_reveal.11
3095
- type: text
3096
- label: "[height] An accordion where the active item expands while simultaneously all inactive items compress slightly — not closing, just shrinking by 10% — creating a breathing effect where the active item takes up proportionally more space in the group."
3097
- value: "An accordion where the active item expands while simultaneously all inactive items compress slightly — not closing, just shrinking by 10% — creating a breathing effect where the active item takes up proportionally more space in the group."
3098
- section: accordion_drawer_reveal
3099
- enabled: false
3100
- - key: animations.accordion_drawer_reveal.12
3101
- type: text
3102
- label: "[icon] A drawer trigger button morphs on open — the button text changes from 'Show more' to 'Show less' with a character-by-character scramble transition — while the button width animates to accommodate the slightly different text length."
3103
- value: "A drawer trigger button morphs on open — the button text changes from 'Show more' to 'Show less' with a character-by-character scramble transition — while the button width animates to accommodate the slightly different text length."
3104
- section: accordion_drawer_reveal
3105
- enabled: false
3106
- - key: animations.accordion_drawer_reveal.13
3107
- type: text
3108
- label: "[height] A timeline-style accordion where each item is a period or phase — opening an item expands it to show detailed content and simultaneously advances a progress indicator, so the expanded state is visually connected to a sense of progress."
3109
- value: "A timeline-style accordion where each item is a period or phase — opening an item expands it to show detailed content and simultaneously advances a progress indicator, so the expanded state is visually connected to a sense of progress."
3110
- section: accordion_drawer_reveal
3111
- enabled: false
3112
- - key: animations.accordion_drawer_reveal.14
3113
- type: text
3114
- label: "[clip] A fullscreen overlay drawer — clicking a trigger expands a panel from the trigger's position outward to fill the entire viewport — using a clip-path circle expand from the trigger point — and collapses back to the trigger on close."
3115
- value: "A fullscreen overlay drawer — clicking a trigger expands a panel from the trigger's position outward to fill the entire viewport — using a clip-path circle expand from the trigger point — and collapses back to the trigger on close."
3116
- section: accordion_drawer_reveal
3117
- enabled: false
3118
- - key: animations.accordion_drawer_reveal.15
3119
- type: text
3120
- label: "[height] A shopping cart drawer slides down from the top navigation — the nav bar remains visible and the cart panel expands below it — with each cart item stagger-fading in after the panel finishes opening."
3121
- value: "A shopping cart drawer slides down from the top navigation — the nav bar remains visible and the cart panel expands below it — with each cart item stagger-fading in after the panel finishes opening."
3122
- section: accordion_drawer_reveal
3123
- enabled: false
3124
- - key: animations.accordion_drawer_reveal.16
3125
- type: text
3126
- label: "[icon] Accordion items have a background color that bleeds in on open — the panel background transitions from transparent to a light tint as the height expands — and bleeds back out on close — the color tied to the open state."
3127
- value: "Accordion items have a background color that bleeds in on open — the panel background transitions from transparent to a light tint as the height expands — and bleeds back out on close — the color tied to the open state."
3128
- section: accordion_drawer_reveal
3129
- enabled: false
3130
- - key: animations.accordion_drawer_reveal.17
3131
- type: text
3132
- label: "[height] A comparison accordion — two columns, each with their own independent accordion items — where opening an item in one column highlights the corresponding row in the other column, syncing the two accordions contextually."
3133
- value: "A comparison accordion — two columns, each with their own independent accordion items — where opening an item in one column highlights the corresponding row in the other column, syncing the two accordions contextually."
3134
- section: accordion_drawer_reveal
3135
- enabled: false
3136
- - key: animations.accordion_drawer_reveal.18
3137
- type: text
3138
- label: "[clip] A mega menu drawer that opens the entire secondary navigation below the header — the menu panel slides down from the header's bottom edge — with menu items staggering in from left to right after the panel has opened."
3139
- value: "A mega menu drawer that opens the entire secondary navigation below the header — the menu panel slides down from the header's bottom edge — with menu items staggering in from left to right after the panel has opened."
3140
- section: accordion_drawer_reveal
3141
- enabled: false
3142
- - key: animations.accordion_drawer_reveal.19
3143
- type: text
3144
- label: "[height] An accordion where long open panels lazily load their content — the panel opens to a skeleton loader state first, then the real content fades in once loaded, with a smooth height adjustment if the real content is taller than the skeleton."
3145
- value: "An accordion where long open panels lazily load their content — the panel opens to a skeleton loader state first, then the real content fades in once loaded, with a smooth height adjustment if the real content is taller than the skeleton."
3146
- section: accordion_drawer_reveal
3147
- enabled: false
3148
- - key: animations.accordion_drawer_reveal.20
3149
- type: text
3150
- label: "[icon] A horizontal accordion — items expand to the right rather than downward — where clicking an item pushes the other items to compress their width, the active item taking up more horizontal space while others shrink to icon-only mode."
3151
- value: "A horizontal accordion — items expand to the right rather than downward — where clicking an item pushes the other items to compress their width, the active item taking up more horizontal space while others shrink to icon-only mode."
3152
- section: accordion_drawer_reveal
3153
- enabled: false
3154
- - key: animations.stagger_list_entrance.enabled
3155
- type: text
3156
- label: "Stagger List Entrance — enable category"
3157
- value: ""
3158
- section: stagger_list_entrance
3159
- enabled: false
3160
- - key: animations.stagger_list_entrance.1
3161
- type: text
3162
- label: "[vertical] A feature list animates in from below — each list item slides up from translateY 30px and fades from 0 opacity to 1, staggered by 80ms per item in reading order — a clean, confident cascade that draws the eye downward through the list."
3163
- value: "A feature list animates in from below — each list item slides up from translateY 30px and fades from 0 opacity to 1, staggered by 80ms per item in reading order — a clean, confident cascade that draws the eye downward through the list."
3164
- section: stagger_list_entrance
3165
- enabled: false
3166
- - key: animations.stagger_list_entrance.2
3167
- type: text
3168
- label: "[horizontal] A grid of service cards enters with a left-to-right stagger — each card slides in from the left side with opacity 0 to 1, the stagger timing creating a wave that travels across the grid from left edge to right edge."
3169
- value: "A grid of service cards enters with a left-to-right stagger — each card slides in from the left side with opacity 0 to 1, the stagger timing creating a wave that travels across the grid from left edge to right edge."
3170
- section: stagger_list_entrance
3171
- enabled: false
3172
- - key: animations.stagger_list_entrance.3
3173
- type: text
3174
- label: "[vertical] A navigation menu opens with its items staggering in from above — each link drops down from above its final position with a spring ease, staggered from top to bottom so the menu assembles downward like a venetian blind opening."
3175
- value: "A navigation menu opens with its items staggering in from above — each link drops down from above its final position with a spring ease, staggered from top to bottom so the menu assembles downward like a venetian blind opening."
3176
- section: stagger_list_entrance
3177
- enabled: false
3178
- - key: animations.stagger_list_entrance.4
3179
- type: text
3180
- label: "[scale] A tag cloud or skill pill list enters with each pill scaling in from 0 to 1 with a spring bounce, staggered randomly across all items so they pop in at unpredictable intervals, creating an organic arrival rather than a mechanical sequence."
3181
- value: "A tag cloud or skill pill list enters with each pill scaling in from 0 to 1 with a spring bounce, staggered randomly across all items so they pop in at unpredictable intervals, creating an organic arrival rather than a mechanical sequence."
3182
- section: stagger_list_entrance
3183
- enabled: false
3184
- - key: animations.stagger_list_entrance.5
3185
- type: text
3186
- label: "[horizontal] A comparison feature list has two columns that stagger in from opposite sides — the left column items slide in from the left, the right column items from the right — both columns staggering simultaneously, meeting at center."
3187
- value: "A comparison feature list has two columns that stagger in from opposite sides — the left column items slide in from the left, the right column items from the right — both columns staggering simultaneously, meeting at center."
3188
- section: stagger_list_entrance
3189
- enabled: false
3190
- - key: animations.stagger_list_entrance.6
3191
- type: text
3192
- label: "[vertical] A price breakdown list reveals each line item one at a time from top to bottom — each row slides in and a subtle total counter updates at the bottom, re-tallying with each new line item that appears."
3193
- value: "A price breakdown list reveals each line item one at a time from top to bottom — each row slides in and a subtle total counter updates at the bottom, re-tallying with each new line item that appears."
3194
- section: stagger_list_entrance
3195
- enabled: false
3196
- - key: animations.stagger_list_entrance.7
3197
- type: text
3198
- label: "[scale] A team directory grid enters with cards scaling up from 80% and fading in, staggered diagonally — the card at the top-left corner arrives first, then the wave travels diagonally to the bottom-right, one card at a time."
3199
- value: "A team directory grid enters with cards scaling up from 80% and fading in, staggered diagonally — the card at the top-left corner arrives first, then the wave travels diagonally to the bottom-right, one card at a time."
3200
- section: stagger_list_entrance
3201
- enabled: false
3202
- - key: animations.stagger_list_entrance.8
3203
- type: text
3204
- label: "[horizontal] A menu list stagger where items enter from alternating sides — odd items from the left, even items from the right — creating a zig-zag entrance that gives the list a dynamic, energetic arrival."
3205
- value: "A menu list stagger where items enter from alternating sides — odd items from the left, even items from the right — creating a zig-zag entrance that gives the list a dynamic, energetic arrival."
3206
- section: stagger_list_entrance
3207
- enabled: false
3208
- - key: animations.stagger_list_entrance.9
3209
- type: text
3210
- label: "[vertical] A results list — search results, product listings, or news items — staggers in from below with a very tight 40ms delay between items, so the list appears to flow in rapidly like water filling the container."
3211
- value: "A results list — search results, product listings, or news items — staggers in from below with a very tight 40ms delay between items, so the list appears to flow in rapidly like water filling the container."
3212
- section: stagger_list_entrance
3213
- enabled: false
3214
- - key: animations.stagger_list_entrance.10
3215
- type: text
3216
- label: "[scale] A statistics grid enters with each stat card scaling in with a rotation — starting at scale 0 and rotated 10 degrees — landing at scale 1 and 0 degrees with a spring overshoot, staggered column by column across the grid."
3217
- value: "A statistics grid enters with each stat card scaling in with a rotation — starting at scale 0 and rotated 10 degrees — landing at scale 1 and 0 degrees with a spring overshoot, staggered column by column across the grid."
3218
- section: stagger_list_entrance
3219
- enabled: false
3220
- - key: animations.stagger_list_entrance.11
3221
- type: text
3222
- label: "[horizontal] A steps or process list enters with each step sliding in from the right — staggered by 100ms — so the steps arrive in reading order, reinforcing the sequential nature of the process with the direction of the animation."
3223
- value: "A steps or process list enters with each step sliding in from the right — staggered by 100ms — so the steps arrive in reading order, reinforcing the sequential nature of the process with the direction of the animation."
3224
- section: stagger_list_entrance
3225
- enabled: false
3226
- - key: animations.stagger_list_entrance.12
3227
- type: text
3228
- label: "[vertical] A dropdown menu list staggers its items in with a very fast 30ms delay — the menu appears to fill almost instantly but the stagger is just perceptible enough to feel fluid rather than jarring, much smoother than a blink appearance."
3229
- value: "A dropdown menu list staggers its items in with a very fast 30ms delay — the menu appears to fill almost instantly but the stagger is just perceptible enough to feel fluid rather than jarring, much smoother than a blink appearance."
3230
- section: stagger_list_entrance
3231
- enabled: false
3232
- - key: animations.stagger_list_entrance.13
3233
- type: text
3234
- label: "[scale] A client logo grid enters with each logo fading and scaling in — but tied to scroll position rather than a one-shot trigger — as the user scrolls down, logos pop in one at a time in the order they enter the viewport."
3235
- value: "A client logo grid enters with each logo fading and scaling in — but tied to scroll position rather than a one-shot trigger — as the user scrolls down, logos pop in one at a time in the order they enter the viewport."
3236
- section: stagger_list_entrance
3237
- enabled: false
3238
- - key: animations.stagger_list_entrance.14
3239
- type: text
3240
- label: "[horizontal] A breadcrumb navigation animates in on page load — each crumb sliding in from the left with a stagger, the separator chevron between crumbs fading in after each crumb arrives, building the path from root to current page."
3241
- value: "A breadcrumb navigation animates in on page load — each crumb sliding in from the left with a stagger, the separator chevron between crumbs fading in after each crumb arrives, building the path from root to current page."
3242
- section: stagger_list_entrance
3243
- enabled: false
3244
- - key: animations.stagger_list_entrance.15
3245
- type: text
3246
- label: "[vertical] A changelog or version list staggers in by version — newest version at top animates in first, older versions follow staggered below — with each version's change items having their own inner stagger after their version header appears."
3247
- value: "A changelog or version list staggers in by version — newest version at top animates in first, older versions follow staggered below — with each version's change items having their own inner stagger after their version header appears."
3248
- section: stagger_list_entrance
3249
- enabled: false
3250
- - key: animations.stagger_list_entrance.16
3251
- type: text
3252
- label: "[scale] A selection of color swatches or material options enters with each swatch dropping in from above and landing with a bounce, staggered left to right — the bounce height varies by swatch position, earlier swatches bouncing higher."
3253
- value: "A selection of color swatches or material options enters with each swatch dropping in from above and landing with a bounce, staggered left to right — the bounce height varies by swatch position, earlier swatches bouncing higher."
3254
- section: stagger_list_entrance
3255
- enabled: false
3256
- - key: animations.stagger_list_entrance.17
3257
- type: text
3258
- label: "[horizontal] A sidebar filter list enters when the sidebar opens — items sliding in from the left edge of the sidebar with a tight stagger, giving the filter panel a feel of being populated dynamically rather than appearing all at once."
3259
- value: "A sidebar filter list enters when the sidebar opens — items sliding in from the left edge of the sidebar with a tight stagger, giving the filter panel a feel of being populated dynamically rather than appearing all at once."
3260
- section: stagger_list_entrance
3261
- enabled: false
3262
- - key: animations.stagger_list_entrance.18
3263
- type: text
3264
- label: "[vertical] A testimonial list staggers with photos and text separated — profile photos enter first with a scale-in stagger, then the quote text fades in beside each photo with a slight delay — photo then text, for each item in order."
3265
- value: "A testimonial list staggers with photos and text separated — profile photos enter first with a scale-in stagger, then the quote text fades in beside each photo with a slight delay — photo then text, for each item in order."
3266
- section: stagger_list_entrance
3267
- enabled: false
3268
- - key: animations.stagger_list_entrance.19
3269
- type: text
3270
- label: "[scale] A social proof strip — logos plus text — enters as a unit but with internal stagger: the label fades in first, then each logo scales in one by one, then the supporting text fades in last — a three-beat build for a single component."
3271
- value: "A social proof strip — logos plus text — enters as a unit but with internal stagger: the label fades in first, then each logo scales in one by one, then the supporting text fades in last — a three-beat build for a single component."
3272
- section: stagger_list_entrance
3273
- enabled: false
3274
- - key: animations.stagger_list_entrance.20
3275
- type: text
3276
- label: "[horizontal] An on-scroll list entrance that's tied to scroll velocity — scrolling fast staggers items in with minimal delay so they all appear quickly, scrolling slowly gives each item its full stagger duration — the reading pace shaping the animation pace."
3277
- value: "An on-scroll list entrance that's tied to scroll velocity — scrolling fast staggers items in with minimal delay so they all appear quickly, scrolling slowly gives each item its full stagger duration — the reading pace shaping the animation pace."
3278
- section: stagger_list_entrance
3279
- enabled: false
3280
- - key: animations.hover_microinteractions.enabled
3281
- type: text
3282
- label: "Hover Microinteractions — enable category"
3283
- value: ""
3284
- section: hover_microinteractions
3285
- enabled: false
3286
- - key: animations.hover_microinteractions.1
3287
- type: text
3288
- label: "[spring] Buttons have a spring press response on hover — scaling to 103% with a slight overshoot on enter and springing back to 100% with overshoot on leave — the button feels physically pliant, like pressing a soft pad."
3289
- value: "Buttons have a spring press response on hover — scaling to 103% with a slight overshoot on enter and springing back to 100% with overshoot on leave — the button feels physically pliant, like pressing a soft pad."
3290
- section: hover_microinteractions
3291
- enabled: false
3292
- - key: animations.hover_microinteractions.2
3293
- type: text
3294
- label: "[underline] Navigation links reveal an animated underline on hover — the underline draws in from the left edge on mouseenter and retracts to the right edge on mouseleave — never retracting the same direction it entered."
3295
- value: "Navigation links reveal an animated underline on hover — the underline draws in from the left edge on mouseenter and retracts to the right edge on mouseleave — never retracting the same direction it entered."
3296
- section: hover_microinteractions
3297
- enabled: false
3298
- - key: animations.hover_microinteractions.3
3299
- type: text
3300
- label: "[spring] Card components lift on hover — a translateY of minus 6px combined with a scale of 1."
3301
- value: "Card components lift on hover — a translateY of minus 6px combined with a scale of 1.02 — with a spring ease that makes the card feel like it's floating upward under magnetic repulsion from the surface below."
3302
- section: hover_microinteractions
3303
- enabled: false
3304
- - key: animations.hover_microinteractions.4
3305
- type: text
3306
- label: "[fill] Icon buttons reveal a circular fill behind them on hover — the fill expands from the cursor's entry point within the button outward to cover the button area — a ripple-origin fill rather than a center-expanding one."
3307
- value: "Icon buttons reveal a circular fill behind them on hover — the fill expands from the cursor's entry point within the button outward to cover the button area — a ripple-origin fill rather than a center-expanding one."
3308
- section: hover_microinteractions
3309
- enabled: false
3310
- - key: animations.hover_microinteractions.5
3311
- type: text
3312
- label: "[spring] Menu items have a stagger-responsive hover — hovering one item moves it forward while adjacent items subtly push backward, creating a depth relationship between the hovered item and its neighbors without the neighbors moving far."
3313
- value: "Menu items have a stagger-responsive hover — hovering one item moves it forward while adjacent items subtly push backward, creating a depth relationship between the hovered item and its neighbors without the neighbors moving far."
3314
- section: hover_microinteractions
3315
- enabled: false
3316
- - key: animations.hover_microinteractions.6
3317
- type: text
3318
- label: "[underline] A link underline that follows the cursor position along the text — the underline is only as wide as the word or character directly above the cursor, sliding along the full text as the cursor moves across it."
3319
- value: "A link underline that follows the cursor position along the text — the underline is only as wide as the word or character directly above the cursor, sliding along the full text as the cursor moves across it."
3320
- section: hover_microinteractions
3321
- enabled: false
3322
- - key: animations.hover_microinteractions.7
3323
- type: text
3324
- label: "[fill] A social share button fill — on hover a solid color floods in from the left using a clip-path wipe over 200ms — simultaneously the icon and label text color inverts to maintain contrast as the fill covers them."
3325
- value: "A social share button fill — on hover a solid color floods in from the left using a clip-path wipe over 200ms — simultaneously the icon and label text color inverts to maintain contrast as the fill covers them."
3326
- section: hover_microinteractions
3327
- enabled: false
3328
- - key: animations.hover_microinteractions.8
3329
- type: text
3330
- label: "[spring] Image thumbnails have a hover zoom on the internal image — the frame stays fixed but the photo inside scales to 108% with a smooth spring ease, hinting at more content without changing the layout grid."
3331
- value: "Image thumbnails have a hover zoom on the internal image — the frame stays fixed but the photo inside scales to 108% with a smooth spring ease, hinting at more content without changing the layout grid."
3332
- section: hover_microinteractions
3333
- enabled: false
3334
- - key: animations.hover_microinteractions.9
3335
- type: text
3336
- label: "[underline] A thick decorative underline on headings animates its width on hover — starting narrow and the same width as the text, expanding to full container width and changing color — a hover that reframes the heading in its space."
3337
- value: "A thick decorative underline on headings animates its width on hover — starting narrow and the same width as the text, expanding to full container width and changing color — a hover that reframes the heading in its space."
3338
- section: hover_microinteractions
3339
- enabled: false
3340
- - key: animations.hover_microinteractions.10
3341
- type: text
3342
- label: "[fill] Tab buttons reveal their active state fill on hover — the fill slides in from the direction of the previously active tab, so if the last active tab was to the left, the hover fill enters from the left — directional fill based on origin."
3343
- value: "Tab buttons reveal their active state fill on hover — the fill slides in from the direction of the previously active tab, so if the last active tab was to the left, the hover fill enters from the left — directional fill based on origin."
3344
- section: hover_microinteractions
3345
- enabled: false
3346
- - key: animations.hover_microinteractions.11
3347
- type: text
3348
- label: "[spring] A submit button compresses slightly on click — scaleY to 0."
3349
- value: "A submit button compresses slightly on click — scaleY to 0.95 — then releases with a spring rebound, combined with a label that briefly blurs and sharpens — a physical press-and-release that confirms the click action tactilely."
3350
- section: hover_microinteractions
3351
- enabled: false
3352
- - key: animations.hover_microinteractions.12
3353
- type: text
3354
- label: "[underline] Dropdown trigger links reveal their open state with a double underline on hover — a second underline appearing 3px below the first — so the hover state is clearly distinguished from the normal underline that appears on focus."
3355
- value: "Dropdown trigger links reveal their open state with a double underline on hover — a second underline appearing 3px below the first — so the hover state is clearly distinguished from the normal underline that appears on focus."
3356
- section: hover_microinteractions
3357
- enabled: false
3358
- - key: animations.hover_microinteractions.13
3359
- type: text
3360
- label: "[fill] A pricing plan card highlight shifts between plans smoothly — the highlight background rectangle slides horizontally from the current plan to the hovered plan with a spring tween — so the highlight is always visibly transitioning between options."
3361
- value: "A pricing plan card highlight shifts between plans smoothly — the highlight background rectangle slides horizontally from the current plan to the hovered plan with a spring tween — so the highlight is always visibly transitioning between options."
3362
- section: hover_microinteractions
3363
- enabled: false
3364
- - key: animations.hover_microinteractions.14
3365
- type: text
3366
- label: "[spring] Icon elements do a quick shake or wiggle on hover — a rapid left-right oscillation using a GSAP keyframe timeline — subtle enough to be delightful rather than distracting, signaling interactivity through a micromotion gesture."
3367
- value: "Icon elements do a quick shake or wiggle on hover — a rapid left-right oscillation using a GSAP keyframe timeline — subtle enough to be delightful rather than distracting, signaling interactivity through a micromotion gesture."
3368
- section: hover_microinteractions
3369
- enabled: false
3370
- - key: animations.hover_microinteractions.15
3371
- type: text
3372
- label: "[underline] Link underlines use a two-color system on hover — the default underline is neutral, and on hover a second colored underline slides in from the left underneath the first — so both colors are visible simultaneously during the hover state."
3373
- value: "Link underlines use a two-color system on hover — the default underline is neutral, and on hover a second colored underline slides in from the left underneath the first — so both colors are visible simultaneously during the hover state."
3374
- section: hover_microinteractions
3375
- enabled: false
3376
- - key: animations.hover_microinteractions.16
3377
- type: text
3378
- label: "[fill] A category filter button swaps its fill on hover with a color that's complementary to its default state — not just darker, but a different hue — making the hover state feel like a genuine alternative rather than a simple brightness change."
3379
- value: "A category filter button swaps its fill on hover with a color that's complementary to its default state — not just darker, but a different hue — making the hover state feel like a genuine alternative rather than a simple brightness change."
3380
- section: hover_microinteractions
3381
- enabled: false
3382
- - key: animations.hover_microinteractions.17
3383
- type: text
3384
- label: "[spring] Avatar images respond to hover with a subtle tilt — rotating 3 degrees clockwise — and a slight Z pop — combined with a ring that expands outward from the avatar edge — three simultaneous microinteractions reinforcing each other."
3385
- value: "Avatar images respond to hover with a subtle tilt — rotating 3 degrees clockwise — and a slight Z pop — combined with a ring that expands outward from the avatar edge — three simultaneous microinteractions reinforcing each other."
3386
- section: hover_microinteractions
3387
- enabled: false
3388
- - key: animations.hover_microinteractions.18
3389
- type: text
3390
- label: "[underline] A multi-word button or label has its underline animate word by word — on hover the underline draws through each word sequentially from left to right, so a three-word label has three beats of underline drawing in rapid succession."
3391
- value: "A multi-word button or label has its underline animate word by word — on hover the underline draws through each word sequentially from left to right, so a three-word label has three beats of underline drawing in rapid succession."
3392
- section: hover_microinteractions
3393
- enabled: false
3394
- - key: animations.hover_microinteractions.19
3395
- type: text
3396
- label: "[fill] A search input reveals a subtle fill animation when focused — the background lightens from the left edge to the right over 300ms as the cursor enters — then reverses the fill on blur, making the focus and blur states feel animated."
3397
- value: "A search input reveals a subtle fill animation when focused — the background lightens from the left edge to the right over 300ms as the cursor enters — then reverses the fill on blur, making the focus and blur states feel animated."
3398
- section: hover_microinteractions
3399
- enabled: false
3400
- - key: animations.hover_microinteractions.20
3401
- type: text
3402
- label: "[spring] Navigation items have a letter-spacing expansion on hover — the spacing between characters widens from default to 0."
3403
- value: "Navigation items have a letter-spacing expansion on hover — the spacing between characters widens from default to 0.05em with a spring ease — a typographic microinteraction that gives the link a breathing, opening quality on hover."
3404
- section: hover_microinteractions
3405
- enabled: false
3406
- - key: animations.scroll_snapping_sections.enabled
3407
- type: text
3408
- label: "Scroll Snapping Sections — enable category"
3409
- value: ""
3410
- section: scroll_snapping_sections
3411
- enabled: false
3412
- - key: animations.scroll_snapping_sections.1
3413
- type: text
3414
- label: "[snap] Full-page scroll sections snap to the nearest section on scroll — each snap transition uses GSAP to animate both the outgoing and incoming sections simultaneously, with the outgoing section fading and scaling down while the incoming one fades and scales up."
3415
- value: "Full-page scroll sections snap to the nearest section on scroll — each snap transition uses GSAP to animate both the outgoing and incoming sections simultaneously, with the outgoing section fading and scaling down while the incoming one fades and scales up."
3416
- section: scroll_snapping_sections
3417
- enabled: false
3418
- - key: animations.scroll_snapping_sections.2
3419
- type: text
3420
- label: "[transition] Between snap points, a swipe-style transition plays — the current section slides off to the left while the next slides in from the right — the direction matching the scroll direction so swiping up reverses the animation."
3421
- value: "Between snap points, a swipe-style transition plays — the current section slides off to the left while the next slides in from the right — the direction matching the scroll direction so swiping up reverses the animation."
3422
- section: scroll_snapping_sections
3423
- enabled: false
3424
- - key: animations.scroll_snapping_sections.3
3425
- type: text
3426
- label: "[snap] Vertical snap sections have a parallax relationship — as one section snaps out, its background image moves at 0."
3427
- value: "Vertical snap sections have a parallax relationship — as one section snaps out, its background image moves at 0.8x the section travel speed, creating a lag that gives each section's background image a sense of depth during the transition."
3428
- section: scroll_snapping_sections
3429
- enabled: false
3430
- - key: animations.scroll_snapping_sections.4
3431
- type: text
3432
- label: "[indicator] Dot navigation on the right edge of the screen tracks the active snap section — each dot scaling up when its section is active and down when not — with an animated connector line between dots that shifts to highlight the active segment."
3433
- value: "Dot navigation on the right edge of the screen tracks the active snap section — each dot scaling up when its section is active and down when not — with an animated connector line between dots that shifts to highlight the active segment."
3434
- section: scroll_snapping_sections
3435
- enabled: false
3436
- - key: animations.scroll_snapping_sections.5
3437
- type: text
3438
- label: "[transition] Snap section transitions use a crossfade with a brief moment of overlap — both sections at 50% opacity simultaneously — before the outgoing section completes its fade out, creating a dissolve transition between full-page sections."
3439
- value: "Snap section transitions use a crossfade with a brief moment of overlap — both sections at 50% opacity simultaneously — before the outgoing section completes its fade out, creating a dissolve transition between full-page sections."
3440
- section: scroll_snapping_sections
3441
- enabled: false
3442
- - key: animations.scroll_snapping_sections.6
3443
- type: text
3444
- label: "[snap] A horizontal snap carousel has five full-width panels — scrolling horizontally snaps to each panel with a momentum-aware animation — panels that are scrolled past quickly animate faster, slow scrolls allow the spring ease to play fully."
3445
- value: "A horizontal snap carousel has five full-width panels — scrolling horizontally snaps to each panel with a momentum-aware animation — panels that are scrolled past quickly animate faster, slow scrolls allow the spring ease to play fully."
3446
- section: scroll_snapping_sections
3447
- enabled: false
3448
- - key: animations.scroll_snapping_sections.7
3449
- type: text
3450
- label: "[transition] Each snap section's entrance is unique — section two clips in from the top, section three wipes from the right, section four scales up from center — giving each section its own arrival character while the snap mechanism stays consistent."
3451
- value: "Each snap section's entrance is unique — section two clips in from the top, section three wipes from the right, section four scales up from center — giving each section its own arrival character while the snap mechanism stays consistent."
3452
- section: scroll_snapping_sections
3453
- enabled: false
3454
- - key: animations.scroll_snapping_sections.8
3455
- type: text
3456
- label: "[indicator] A section counter in the corner — '02 / 05' — updates with each snap using a digit flip animation, the outgoing number rolling upward and the incoming number rolling in from below, tracking position through the full-page snap sequence."
3457
- value: "A section counter in the corner — '02 / 05' — updates with each snap using a digit flip animation, the outgoing number rolling upward and the incoming number rolling in from below, tracking position through the full-page snap sequence."
3458
- section: scroll_snapping_sections
3459
- enabled: false
3460
- - key: animations.scroll_snapping_sections.9
3461
- type: text
3462
- label: "[snap] Snap sections have staggered content entrances after snapping — once a section snaps into view, its headline, subtext, image, and CTA each animate in with a sequential stagger — a two-phase animation: snap then populate."
3463
- value: "Snap sections have staggered content entrances after snapping — once a section snaps into view, its headline, subtext, image, and CTA each animate in with a sequential stagger — a two-phase animation: snap then populate."
3464
- section: scroll_snapping_sections
3465
- enabled: false
3466
- - key: animations.scroll_snapping_sections.10
3467
- type: text
3468
- label: "[transition] A page with six snap sections uses a shared element transition — a large geometric shape that's present in all sections repositions smoothly between snaps, its position, size, and color tweening to match the incoming section's design."
3469
- value: "A page with six snap sections uses a shared element transition — a large geometric shape that's present in all sections repositions smoothly between snaps, its position, size, and color tweening to match the incoming section's design."
3470
- section: scroll_snapping_sections
3471
- enabled: false
3472
- - key: animations.scroll_snapping_sections.11
3473
- type: text
3474
- label: "[snap] Scroll velocity determines the snap transition style — a slow scroll triggers a gentle fade transition, a fast scroll triggers a more dynamic wipe — the transition energy matching the input energy."
3475
- value: "Scroll velocity determines the snap transition style — a slow scroll triggers a gentle fade transition, a fast scroll triggers a more dynamic wipe — the transition energy matching the input energy."
3476
- section: scroll_snapping_sections
3477
- enabled: false
3478
- - key: animations.scroll_snapping_sections.12
3479
- type: text
3480
- label: "[indicator] A horizontal progress bar spans the full width of the viewport and fills in segment by segment — each segment representing one snap section — the fill advancing to the next segment with a spring ease when the snap occurs."
3481
- value: "A horizontal progress bar spans the full width of the viewport and fills in segment by segment — each segment representing one snap section — the fill advancing to the next segment with a spring ease when the snap occurs."
3482
- section: scroll_snapping_sections
3483
- enabled: false
3484
- - key: animations.scroll_snapping_sections.13
3485
- type: text
3486
- label: "[transition] Snap sections with a split composition — content on the left, media on the right — transition with each half animating independently: the left content slides out and a new left content slides in, while the right media crossfades simultaneously."
3487
- value: "Snap sections with a split composition — content on the left, media on the right — transition with each half animating independently: the left content slides out and a new left content slides in, while the right media crossfades simultaneously."
3488
- section: scroll_snapping_sections
3489
- enabled: false
3490
- - key: animations.scroll_snapping_sections.14
3491
- type: text
3492
- label: "[snap] A testimonial snap carousel allows arrow key navigation as well as scroll — keyboard navigation triggers the same GSAP transition as scroll, and the snap movement eases with a power3."
3493
- value: "A testimonial snap carousel allows arrow key navigation as well as scroll — keyboard navigation triggers the same GSAP transition as scroll, and the snap movement eases with a power3.inOut for a premium feel."
3494
- section: scroll_snapping_sections
3495
- enabled: false
3496
- - key: animations.scroll_snapping_sections.15
3497
- type: text
3498
- label: "[transition] Each snap section has a theme color — the background, the dot nav active color, and the section counter all shift to the section theme color with each snap, animating the color transition simultaneously with the content transition."
3499
- value: "Each snap section has a theme color — the background, the dot nav active color, and the section counter all shift to the section theme color with each snap, animating the color transition simultaneously with the content transition."
3500
- section: scroll_snapping_sections
3501
- enabled: false
3502
- - key: animations.scroll_snapping_sections.16
3503
- type: text
3504
- label: "[indicator] The snap progress indicator is a vertical line on the left edge — a circle marker that travels along the line to mark the current section position — animating smoothly along the line with a spring ease between section snaps."
3505
- value: "The snap progress indicator is a vertical line on the left edge — a circle marker that travels along the line to mark the current section position — animating smoothly along the line with a spring ease between section snaps."
3506
- section: scroll_snapping_sections
3507
- enabled: false
3508
- - key: animations.scroll_snapping_sections.17
3509
- type: text
3510
- label: "[snap] A product showcase with five snap sections — each section showing the product from a different angle — transitions between sections with the product image appearing to rotate into the next angle, connecting the snap transition to the content change."
3511
- value: "A product showcase with five snap sections — each section showing the product from a different angle — transitions between sections with the product image appearing to rotate into the next angle, connecting the snap transition to the content change."
3512
- section: scroll_snapping_sections
3513
- enabled: false
3514
- - key: animations.scroll_snapping_sections.18
3515
- type: text
3516
- label: "[transition] Snap transitions use a curtain wipe — a solid panel wipes in from the bottom, covers the section, and the new section is revealed as the panel wipes back up — the panel color matching the incoming section's accent color."
3517
- value: "Snap transitions use a curtain wipe — a solid panel wipes in from the bottom, covers the section, and the new section is revealed as the panel wipes back up — the panel color matching the incoming section's accent color."
3518
- section: scroll_snapping_sections
3519
- enabled: false
3520
- - key: animations.scroll_snapping_sections.19
3521
- type: text
3522
- label: "[snap] The first section in the snap sequence plays a cinematic intro that only triggers once on page load — after which the snap sequence begins."
3523
- value: "The first section in the snap sequence plays a cinematic intro that only triggers once on page load — after which the snap sequence begins. On scroll back to section one, it shows the static final state of the intro rather than replaying it."
3524
- section: scroll_snapping_sections
3525
- enabled: false
3526
- - key: animations.scroll_snapping_sections.20
3527
- type: text
3528
- label: "[transition] Snap section transitions have an overscroll safety — if the user scroll-inertia carries past the snap point, a catch animation gently pulls the view back to the correct snap position with a spring ease, preventing half-snapped states."
3529
- value: "Snap section transitions have an overscroll safety — if the user scroll-inertia carries past the snap point, a catch animation gently pulls the view back to the correct snap position with a spring ease, preventing half-snapped states."
3530
- section: scroll_snapping_sections
3531
- enabled: false
3532
- - key: animations.particle_canvas_fx.enabled
3533
- type: text
3534
- label: "Particle Canvas Fx — enable category"
3535
- value: ""
3536
- section: particle_canvas_fx
3537
- enabled: false
3538
- - key: animations.particle_canvas_fx.1
3539
- type: text
3540
- label: "[burst] Clicking the hero CTA button triggers a confetti burst — dozens of small colored rectangles and circles explode outward from the button position, arcing upward with gravity pulling them down as they fade out over 1."
3541
- value: "Clicking the hero CTA button triggers a confetti burst — dozens of small colored rectangles and circles explode outward from the button position, arcing upward with gravity pulling them down as they fade out over 1.5 seconds."
3542
- section: particle_canvas_fx
3543
- enabled: false
3544
- - key: animations.particle_canvas_fx.2
3545
- type: text
3546
- label: "[scroll] A canvas particle field sits behind the hero section — thousands of small dots connected by lines when close enough — and as the user scrolls, the particles drift upward and accelerate off the top of the canvas, thinning the field."
3547
- value: "A canvas particle field sits behind the hero section — thousands of small dots connected by lines when close enough — and as the user scrolls, the particles drift upward and accelerate off the top of the canvas, thinning the field."
3548
- section: particle_canvas_fx
3549
- enabled: false
3550
- - key: animations.particle_canvas_fx.3
3551
- type: text
3552
- label: "[burst] A success state triggers a ring of particles expanding outward from the confirmation element — particles that start dense and close, spread outward in a radial burst, and fade out as they reach the edge of the ring."
3553
- value: "A success state triggers a ring of particles expanding outward from the confirmation element — particles that start dense and close, spread outward in a radial burst, and fade out as they reach the edge of the ring."
3554
- section: particle_canvas_fx
3555
- enabled: false
3556
- - key: animations.particle_canvas_fx.4
3557
- type: text
3558
- label: "[cursor] The cursor leaves a trail of small particles as it moves across the page — each particle starts at the cursor position, drifts slightly in a random direction, and fades out over 500ms — a glowing trail that evaporates behind the cursor."
3559
- value: "The cursor leaves a trail of small particles as it moves across the page — each particle starts at the cursor position, drifts slightly in a random direction, and fades out over 500ms — a glowing trail that evaporates behind the cursor."
3560
- section: particle_canvas_fx
3561
- enabled: false
3562
- - key: animations.particle_canvas_fx.5
3563
- type: text
3564
- label: "[scroll] A particle starfield accelerates as the user scrolls — particles move slowly when the page is idle, but as the user scrolls they streak forward like stars in warp speed, decelerating back to slow drift when scrolling stops."
3565
- value: "A particle starfield accelerates as the user scrolls — particles move slowly when the page is idle, but as the user scrolls they streak forward like stars in warp speed, decelerating back to slow drift when scrolling stops."
3566
- section: particle_canvas_fx
3567
- enabled: false
3568
- - key: animations.particle_canvas_fx.6
3569
- type: text
3570
- label: "[burst] A product 'add to cart' button triggers a particle burst where the particles are miniature versions of the product icon — each tiny icon flies outward from the button, arcs toward the cart icon position, and disappears into it."
3571
- value: "A product 'add to cart' button triggers a particle burst where the particles are miniature versions of the product icon — each tiny icon flies outward from the button, arcs toward the cart icon position, and disappears into it."
3572
- section: particle_canvas_fx
3573
- enabled: false
3574
- - key: animations.particle_canvas_fx.7
3575
- type: text
3576
- label: "[cursor] Hovering over an image section spawns particles that emerge from the edges of the image and drift into the surrounding space — the number and velocity of particles proportional to how quickly the cursor is moving over the image."
3577
- value: "Hovering over an image section spawns particles that emerge from the edges of the image and drift into the surrounding space — the number and velocity of particles proportional to how quickly the cursor is moving over the image."
3578
- section: particle_canvas_fx
3579
- enabled: false
3580
- - key: animations.particle_canvas_fx.8
3581
- type: text
3582
- label: "[scroll] A canvas section has particles that organize into data visualizations — forming bar chart shapes, pie segments, or scatter plots — driven by scroll position, so the particle cloud coalesces from random noise into structured data as the section enters view."
3583
- value: "A canvas section has particles that organize into data visualizations — forming bar chart shapes, pie segments, or scatter plots — driven by scroll position, so the particle cloud coalesces from random noise into structured data as the section enters view."
3584
- section: particle_canvas_fx
3585
- enabled: false
3586
- - key: animations.particle_canvas_fx.9
3587
- type: text
3588
- label: "[burst] A countdown reaching zero triggers an explosion of particles that spells out the word 'GO' or the event name — particles flying outward from letter-shaped formations, each particle following its own physics arc."
3589
- value: "A countdown reaching zero triggers an explosion of particles that spells out the word 'GO' or the event name — particles flying outward from letter-shaped formations, each particle following its own physics arc."
3590
- section: particle_canvas_fx
3591
- enabled: false
3592
- - key: animations.particle_canvas_fx.10
3593
- type: text
3594
- label: "[cursor] The page background canvas reacts to cursor position — particles within a 100px radius of the cursor repel away from it, creating a cursor-shaped void in the particle field that heals itself as the cursor moves away."
3595
- value: "The page background canvas reacts to cursor position — particles within a 100px radius of the cursor repel away from it, creating a cursor-shaped void in the particle field that heals itself as the cursor moves away."
3596
- section: particle_canvas_fx
3597
- enabled: false
3598
- - key: animations.particle_canvas_fx.11
3599
- type: text
3600
- label: "[scroll] A scroll-driven particle morph — the particle field on the canvas rearranges itself to form different shapes as the user scrolls through sections — morphing from a circle to a triangle to a brand logomark shape over the scroll distance."
3601
- value: "A scroll-driven particle morph — the particle field on the canvas rearranges itself to form different shapes as the user scrolls through sections — morphing from a circle to a triangle to a brand logomark shape over the scroll distance."
3602
- section: particle_canvas_fx
3603
- enabled: false
3604
- - key: animations.particle_canvas_fx.12
3605
- type: text
3606
- label: "[burst] Section transitions trigger a particle wipe — particles stream in from one edge to the other to cover the screen, then stream off the opposite edge to reveal the new section — a particle curtain that sweeps across the viewport."
3607
- value: "Section transitions trigger a particle wipe — particles stream in from one edge to the other to cover the screen, then stream off the opposite edge to reveal the new section — a particle curtain that sweeps across the viewport."
3608
- section: particle_canvas_fx
3609
- enabled: false
3610
- - key: animations.particle_canvas_fx.13
3611
- type: text
3612
- label: "[cursor] Drawing interaction — the cursor leaves a permanent particle trail on the canvas that persists until cleared — particles that solidify and stay where they were placed, allowing the user to draw with particles on the page background."
3613
- value: "Drawing interaction — the cursor leaves a permanent particle trail on the canvas that persists until cleared — particles that solidify and stay where they were placed, allowing the user to draw with particles on the page background."
3614
- section: particle_canvas_fx
3615
- enabled: false
3616
- - key: animations.particle_canvas_fx.14
3617
- type: text
3618
- label: "[scroll] A DNA or molecular animation on canvas has particles connected in helical patterns that rotate and advance as the user scrolls — the camera traveling along the helix — particles staying in their molecular bonds as the structure scrolls through view."
3619
- value: "A DNA or molecular animation on canvas has particles connected in helical patterns that rotate and advance as the user scrolls — the camera traveling along the helix — particles staying in their molecular bonds as the structure scrolls through view."
3620
- section: particle_canvas_fx
3621
- enabled: false
3622
- - key: animations.particle_canvas_fx.15
3623
- type: text
3624
- label: "[burst] A form submit button sends a burst of checkmark-shaped particles outward on success — tiny check icons that fly in random directions, spin once, and fade out — a satisfying micro-celebration for completing the form."
3625
- value: "A form submit button sends a burst of checkmark-shaped particles outward on success — tiny check icons that fly in random directions, spin once, and fade out — a satisfying micro-celebration for completing the form."
3626
- section: particle_canvas_fx
3627
- enabled: false
3628
- - key: animations.particle_canvas_fx.16
3629
- type: text
3630
- label: "[cursor] Hovering interactive elements spawns a magnetic particle cluster around the element — particles orbiting the element while the cursor is near, dissolving back into the background when the cursor moves away."
3631
- value: "Hovering interactive elements spawns a magnetic particle cluster around the element — particles orbiting the element while the cursor is near, dissolving back into the background when the cursor moves away."
3632
- section: particle_canvas_fx
3633
- enabled: false
3634
- - key: animations.particle_canvas_fx.17
3635
- type: text
3636
- label: "[scroll] A nebula-style particle section uses depth — particles at different sizes and opacities representing different distances — and the entire field drifts slowly in a circular path as the section is in view, creating a living space scene."
3637
- value: "A nebula-style particle section uses depth — particles at different sizes and opacities representing different distances — and the entire field drifts slowly in a circular path as the section is in view, creating a living space scene."
3638
- section: particle_canvas_fx
3639
- enabled: false
3640
- - key: animations.particle_canvas_fx.18
3641
- type: text
3642
- label: "[burst] A notification badge animates new alerts with a radial particle burst — each new notification triggers a quick burst of 10-15 small particles that expand from the badge and fade out — a subtle physical excitement around the count changing."
3643
- value: "A notification badge animates new alerts with a radial particle burst — each new notification triggers a quick burst of 10-15 small particles that expand from the badge and fade out — a subtle physical excitement around the count changing."
3644
- section: particle_canvas_fx
3645
- enabled: false
3646
- - key: animations.particle_canvas_fx.19
3647
- type: text
3648
- label: "[cursor] A hero canvas uses fluid simulation — the cursor disturbs the canvas like a finger dragging through water — color ink diffuses outward from the cursor path in real time, mixing with other colors already on the canvas."
3649
- value: "A hero canvas uses fluid simulation — the cursor disturbs the canvas like a finger dragging through water — color ink diffuses outward from the cursor path in real time, mixing with other colors already on the canvas."
3650
- section: particle_canvas_fx
3651
- enabled: false
3652
- - key: animations.particle_canvas_fx.20
3653
- type: text
3654
- label: "[scroll] A section that maps particle density to data — the number of particles in the canvas directly represents a statistic — and as the scroll advances through sub-sections with different values, particles appear or disappear to match the changing data."
3655
- value: "A section that maps particle density to data — the number of particles in the canvas directly represents a statistic — and as the scroll advances through sub-sections with different values, particles appear or disappear to match the changing data."
3656
- section: particle_canvas_fx
3657
- enabled: false
3658
- - key: animations.mobile_gesture_animations.enabled
3659
- type: text
3660
- label: "Mobile Gesture Animations — enable category"
3661
- value: ""
3662
- section: mobile_gesture_animations
3663
- enabled: false
3664
- - key: animations.mobile_gesture_animations.1
3665
- type: text
3666
- label: "[swipe] When the user swipes a card to the right, animate it flying off screen with a slight rotation and a spring bounce on the next card underneath as it scales up into position."
3667
- value: "When the user swipes a card to the right, animate it flying off screen with a slight rotation and a spring bounce on the next card underneath as it scales up into position."
3668
- section: mobile_gesture_animations
3669
- enabled: false
3670
- - key: animations.mobile_gesture_animations.2
3671
- type: text
3672
- label: "[drag] Let the user drag a bottom sheet panel upward — as it travels, the content behind it fades out and scales down slightly, and releasing mid-drag snaps it to the nearest anchor point with a springy overshoot."
3673
- value: "Let the user drag a bottom sheet panel upward — as it travels, the content behind it fades out and scales down slightly, and releasing mid-drag snaps it to the nearest anchor point with a springy overshoot."
3674
- section: mobile_gesture_animations
3675
- enabled: false
3676
- - key: animations.mobile_gesture_animations.3
3677
- type: text
3678
- label: "[pinch] As the user pinches to zoom into a product image, smoothly scale it up with GSAP while keeping it centered on the pinch origin, and release it back with a gentle elastic snap if they go past the max zoom."
3679
- value: "As the user pinches to zoom into a product image, smoothly scale it up with GSAP while keeping it centered on the pinch origin, and release it back with a gentle elastic snap if they go past the max zoom."
3680
- section: mobile_gesture_animations
3681
- enabled: false
3682
- - key: animations.mobile_gesture_animations.4
3683
- type: text
3684
- label: "[swipe] On swipe down to dismiss a modal, the sheet follows the finger with slight resistance, and if the velocity is high enough it flies off and fades out — otherwise it springs back to full open."
3685
- value: "On swipe down to dismiss a modal, the sheet follows the finger with slight resistance, and if the velocity is high enough it flies off and fades out — otherwise it springs back to full open."
3686
- section: mobile_gesture_animations
3687
- enabled: false
3688
- - key: animations.mobile_gesture_animations.5
3689
- type: text
3690
- label: "[velocity] Track the velocity of a horizontal swipe on a carousel — if the finger lifts fast, continue the slide momentum and decelerate naturally to the next item; slow lifts snap back to the current one."
3691
- value: "Track the velocity of a horizontal swipe on a carousel — if the finger lifts fast, continue the slide momentum and decelerate naturally to the next item; slow lifts snap back to the current one."
3692
- section: mobile_gesture_animations
3693
- enabled: false
3694
- - key: animations.mobile_gesture_animations.6
3695
- type: text
3696
- label: "[spring] When the user pulls down past the top of a scroll list to trigger a refresh, the whole list compresses with a rubber-band spring feel, the refresh spinner rotates in with a stagger, and everything bounces back once loaded."
3697
- value: "When the user pulls down past the top of a scroll list to trigger a refresh, the whole list compresses with a rubber-band spring feel, the refresh spinner rotates in with a stagger, and everything bounces back once loaded."
3698
- section: mobile_gesture_animations
3699
- enabled: false
3700
- - key: animations.mobile_gesture_animations.7
3701
- type: text
3702
- label: "[drag] Make a draggable floating action button that snaps to the nearest screen edge when released, with a springy bounce as it lands and a subtle squish animation on impact."
3703
- value: "Make a draggable floating action button that snaps to the nearest screen edge when released, with a springy bounce as it lands and a subtle squish animation on impact."
3704
- section: mobile_gesture_animations
3705
- enabled: false
3706
- - key: animations.mobile_gesture_animations.8
3707
- type: text
3708
- label: "[haptic] As the user drags a slider thumb, animate the track fill in real time and play a tiny scale pulse on the thumb at each major tick mark — synced to where haptic feedback would fire on a real device."
3709
- value: "As the user drags a slider thumb, animate the track fill in real time and play a tiny scale pulse on the thumb at each major tick mark — synced to where haptic feedback would fire on a real device."
3710
- section: mobile_gesture_animations
3711
- enabled: false
3712
- - key: animations.mobile_gesture_animations.9
3713
- type: text
3714
- label: "[swipe] Cards in a Tinder-style stack rotate and fade based on horizontal drag distance — the further they go, the more they tilt and the more an accept or reject icon fades in, all snapping back if released near center."
3715
- value: "Cards in a Tinder-style stack rotate and fade based on horizontal drag distance — the further they go, the more they tilt and the more an accept or reject icon fades in, all snapping back if released near center."
3716
- section: mobile_gesture_animations
3717
- enabled: false
3718
- - key: animations.mobile_gesture_animations.10
3719
- type: text
3720
- label: "[pinch] Let the user pinch two fingers on a map tile to zoom in — animate the surrounding tiles scaling and repositioning fluidly so the map feels continuous, not jumpy."
3721
- value: "Let the user pinch two fingers on a map tile to zoom in — animate the surrounding tiles scaling and repositioning fluidly so the map feels continuous, not jumpy."
3722
- section: mobile_gesture_animations
3723
- enabled: false
3724
- - key: animations.mobile_gesture_animations.11
3725
- type: text
3726
- label: "[velocity] When the user flicks a list row sideways fast enough, it slides out and the rows below animate upward to close the gap with a staggered wave — too slow and it snaps back."
3727
- value: "When the user flicks a list row sideways fast enough, it slides out and the rows below animate upward to close the gap with a staggered wave — too slow and it snaps back."
3728
- section: mobile_gesture_animations
3729
- enabled: false
3730
- - key: animations.mobile_gesture_animations.12
3731
- type: text
3732
- label: "[spring] A long-press on a grid item triggers a spring-pop scale up with a soft shadow ring expanding outward, entering a drag-to-reorder mode where surrounding items shuffle aside with springy offsets as the held item moves."
3733
- value: "A long-press on a grid item triggers a spring-pop scale up with a soft shadow ring expanding outward, entering a drag-to-reorder mode where surrounding items shuffle aside with springy offsets as the held item moves."
3734
- section: mobile_gesture_animations
3735
- enabled: false
3736
- - key: animations.mobile_gesture_animations.13
3737
- type: text
3738
- label: "[drag] A color swatch picker lets the user drag their thumb in two dimensions — horizontal changes hue and vertical changes brightness, with the background of the whole screen crossfading to the selected color in real time."
3739
- value: "A color swatch picker lets the user drag their thumb in two dimensions — horizontal changes hue and vertical changes brightness, with the background of the whole screen crossfading to the selected color in real time."
3740
- section: mobile_gesture_animations
3741
- enabled: false
3742
- - key: animations.mobile_gesture_animations.14
3743
- type: text
3744
- label: "[haptic] Animate a lock screen PIN pad where each digit button compresses slightly on press with a spring rebound, and entering the wrong code makes the whole row shake horizontally in a rapid stagger — like the device is shaking its head."
3745
- value: "Animate a lock screen PIN pad where each digit button compresses slightly on press with a spring rebound, and entering the wrong code makes the whole row shake horizontally in a rapid stagger — like the device is shaking its head."
3746
- section: mobile_gesture_animations
3747
- enabled: false
3748
- - key: animations.mobile_gesture_animations.15
3749
- type: text
3750
- label: "[swipe] On a news feed, swiping an article left reveals a bookmark action icon behind it — the icon scales in with a spring as the card travels and the card color tints to confirm the action before snapping back."
3751
- value: "On a news feed, swiping an article left reveals a bookmark action icon behind it — the icon scales in with a spring as the card travels and the card color tints to confirm the action before snapping back."
3752
- section: mobile_gesture_animations
3753
- enabled: false
3754
- - key: animations.mobile_gesture_animations.16
3755
- type: text
3756
- label: "[velocity] When the user throws a draggable element hard across the screen, it follows a curved arc based on throw direction, bounces off the screen edge with energy loss, and comes to rest with a subtle wobble."
3757
- value: "When the user throws a draggable element hard across the screen, it follows a curved arc based on throw direction, bounces off the screen edge with energy loss, and comes to rest with a subtle wobble."
3758
- section: mobile_gesture_animations
3759
- enabled: false
3760
- - key: animations.mobile_gesture_animations.17
3761
- type: text
3762
- label: "[pinch] In a photo gallery, a pinch-to-close gesture morphs the image from full screen back into its thumbnail in the grid, matching the position and size of its origin tile with a smooth FLIP animation."
3763
- value: "In a photo gallery, a pinch-to-close gesture morphs the image from full screen back into its thumbnail in the grid, matching the position and size of its origin tile with a smooth FLIP animation."
3764
- section: mobile_gesture_animations
3765
- enabled: false
3766
- - key: animations.mobile_gesture_animations.18
3767
- type: text
3768
- label: "[spring] A notification banner slides down from the top with a spring overshoot on entry, floats for a moment, then slides back up — but if the user swipes it upward mid-float, it snaps up instantly following their velocity."
3769
- value: "A notification banner slides down from the top with a spring overshoot on entry, floats for a moment, then slides back up — but if the user swipes it upward mid-float, it snaps up instantly following their velocity."
3770
- section: mobile_gesture_animations
3771
- enabled: false
3772
- - key: animations.mobile_gesture_animations.19
3773
- type: text
3774
- label: "[drag] Animate a volume knob that the user rotates by dragging in a circle — the knob graphic rotates to match the gesture angle, and the waveform visualizer behind it grows and pulses in sync with the current volume value."
3775
- value: "Animate a volume knob that the user rotates by dragging in a circle — the knob graphic rotates to match the gesture angle, and the waveform visualizer behind it grows and pulses in sync with the current volume value."
3776
- section: mobile_gesture_animations
3777
- enabled: false
3778
- - key: animations.mobile_gesture_animations.20
3779
- type: text
3780
- label: "[haptic] A step counter ring animates the progress arc drawing forward each time a new milestone is hit — the ring completes with a spring burst that briefly overscales and snaps back, paired with a ripple ring expanding outward from the center."
3781
- value: "A step counter ring animates the progress arc drawing forward each time a new milestone is hit — the ring completes with a spring burst that briefly overscales and snaps back, paired with a ripple ring expanding outward from the center."
3782
- section: mobile_gesture_animations
3783
- enabled: false
3784
- ---
3785
-
3786
- # Animations
3787
-
3788
- This file is the brand's animation menu. It ships pre-populated with 600 animation prompts (30 categories × 20 prompts each) drawn from the bundled animations library. **Every prompt is OFF by default.**
3789
-
3790
- ## How it works
3791
-
3792
- Each entry is a human-language description of an animation idea. Toggle entries ON to add them to this brand's pool. The `gsap-v1.1` animator role reads only the enabled entries and decides which to apply, where, and how — subject to the motion tokens in `motion.md`.
3793
-
3794
- Category-level master toggles (`*.enabled` keys) are intended as quick-enable helpers for an entire category, but the animator still considers each prompt individually.
3795
-
3796
- ## Categories
3797
-
3798
- - **Sticky Card Stacks** — 20 prompts
3799
- - **Horizontal Scroll Panels** — 20 prompts
3800
- - **Parallax Depth Layers** — 20 prompts
3801
- - **Scroll Driven Video Scrub** — 20 prompts
3802
- - **Text Reveal On Scroll** — 20 prompts
3803
- - **Split Text Entrance** — 20 prompts
3804
- - **Sticky Text Background Swap** — 20 prompts
3805
- - **Staggered Image Grid** — 20 prompts
3806
- - **Card Flip 3d Rotate** — 20 prompts
3807
- - **Morphing Svg Paths** — 20 prompts
3808
- - **Hero Cinematic Intro** — 20 prompts
3809
- - **Scroll Progress Indicator** — 20 prompts
3810
- - **Image Clip Reveal** — 20 prompts
3811
- - **Lottie Svg Scrub** — 20 prompts
3812
- - **Sticky Media Text Fade** — 20 prompts
3813
- - **Counter Data Animation** — 20 prompts
3814
- - **Floating Magnetic Cursor** — 20 prompts
3815
- - **Navbar Scroll Transitions** — 20 prompts
3816
- - **Page Transition Wipes** — 20 prompts
3817
- - **Typewriter Scramble Text** — 20 prompts
3818
- - **Section Background Morph** — 20 prompts
3819
- - **Timeline Storytelling** — 20 prompts
3820
- - **Infinite Marquee** — 20 prompts
3821
- - **3d Scene On Scroll** — 20 prompts
3822
- - **Accordion Drawer Reveal** — 20 prompts
3823
- - **Stagger List Entrance** — 20 prompts
3824
- - **Hover Microinteractions** — 20 prompts
3825
- - **Scroll Snapping Sections** — 20 prompts
3826
- - **Particle Canvas Fx** — 20 prompts
3827
- - **Mobile Gesture Animations** — 20 prompts
3828
-
3829
- ## What the animator does NOT do
3830
-
3831
- - It does not invent animations outside this library.
3832
- - It does not write back to this file.
3833
- - It does not animate sections where no enabled prompt is a good structural match — it skips silently.