@editframe/create 0.43.0 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/dist/index.js +16 -28
- package/dist/index.js.map +1 -1
- package/dist/skills/editframe-brand-video-generator/README.md +155 -0
- package/dist/skills/editframe-brand-video-generator/SKILL.md +207 -0
- package/dist/skills/editframe-brand-video-generator/references/brand-examples.md +178 -0
- package/dist/skills/editframe-brand-video-generator/references/color-psychology.md +227 -0
- package/dist/skills/editframe-brand-video-generator/references/composition-patterns.md +383 -0
- package/dist/skills/editframe-brand-video-generator/references/editing.md +66 -0
- package/dist/skills/editframe-brand-video-generator/references/emotional-arcs.md +496 -0
- package/dist/skills/editframe-brand-video-generator/references/genre-selection.md +135 -0
- package/dist/skills/editframe-brand-video-generator/references/transition-styles.md +611 -0
- package/dist/skills/editframe-brand-video-generator/references/typography-personalities.md +326 -0
- package/dist/skills/editframe-brand-video-generator/references/video-archetypes.md +86 -0
- package/dist/skills/editframe-brand-video-generator/references/video-fundamentals.md +169 -0
- package/dist/skills/editframe-brand-video-generator/references/visual-metaphors.md +50 -0
- package/dist/skills/editframe-composition/SKILL.md +169 -0
- package/dist/skills/editframe-composition/references/audio.md +483 -0
- package/dist/skills/editframe-composition/references/captions.md +844 -0
- package/dist/skills/editframe-composition/references/composition-model.md +73 -0
- package/dist/skills/editframe-composition/references/configuration.md +403 -0
- package/dist/skills/editframe-composition/references/css-parts.md +105 -0
- package/dist/skills/editframe-composition/references/css-variables.md +640 -0
- package/dist/skills/editframe-composition/references/entry-points.md +810 -0
- package/dist/skills/editframe-composition/references/events.md +499 -0
- package/dist/skills/editframe-composition/references/getting-started.md +259 -0
- package/dist/skills/editframe-composition/references/hooks.md +234 -0
- package/dist/skills/editframe-composition/references/image.md +241 -0
- package/dist/skills/editframe-composition/references/r3f.md +580 -0
- package/dist/skills/editframe-composition/references/render-api.md +484 -0
- package/dist/skills/editframe-composition/references/render-strategies.md +119 -0
- package/dist/skills/editframe-composition/references/render-to-video.md +1101 -0
- package/dist/skills/editframe-composition/references/scripting.md +606 -0
- package/dist/skills/editframe-composition/references/sequencing.md +116 -0
- package/dist/skills/editframe-composition/references/server-rendering.md +753 -0
- package/dist/skills/editframe-composition/references/surface.md +329 -0
- package/dist/skills/editframe-composition/references/text.md +627 -0
- package/dist/skills/editframe-composition/references/time-model.md +99 -0
- package/dist/skills/editframe-composition/references/timegroup-modes.md +102 -0
- package/dist/skills/editframe-composition/references/timegroup.md +457 -0
- package/dist/skills/editframe-composition/references/timeline-root.md +398 -0
- package/dist/skills/editframe-composition/references/transcription.md +47 -0
- package/dist/skills/editframe-composition/references/transitions.md +608 -0
- package/dist/skills/editframe-composition/references/use-media-info.md +357 -0
- package/dist/skills/editframe-composition/references/video.md +506 -0
- package/dist/skills/editframe-composition/references/waveform.md +327 -0
- package/dist/skills/editframe-editor-gui/SKILL.md +152 -0
- package/dist/skills/editframe-editor-gui/references/active-root-temporal.md +657 -0
- package/dist/skills/editframe-editor-gui/references/canvas.md +947 -0
- package/dist/skills/editframe-editor-gui/references/controls.md +366 -0
- package/dist/skills/editframe-editor-gui/references/dial.md +756 -0
- package/dist/skills/editframe-editor-gui/references/editor-toolkit.md +587 -0
- package/dist/skills/editframe-editor-gui/references/filmstrip.md +460 -0
- package/dist/skills/editframe-editor-gui/references/fit-scale.md +772 -0
- package/dist/skills/editframe-editor-gui/references/focus-overlay.md +561 -0
- package/dist/skills/editframe-editor-gui/references/hierarchy.md +544 -0
- package/dist/skills/editframe-editor-gui/references/overlay-item.md +634 -0
- package/dist/skills/editframe-editor-gui/references/overlay-layer.md +429 -0
- package/dist/skills/editframe-editor-gui/references/pan-zoom.md +568 -0
- package/dist/skills/editframe-editor-gui/references/pause.md +397 -0
- package/dist/skills/editframe-editor-gui/references/play.md +370 -0
- package/dist/skills/editframe-editor-gui/references/preview.md +391 -0
- package/dist/skills/editframe-editor-gui/references/resizable-box.md +749 -0
- package/dist/skills/editframe-editor-gui/references/scrubber.md +588 -0
- package/dist/skills/editframe-editor-gui/references/thumbnail-strip.md +566 -0
- package/dist/skills/editframe-editor-gui/references/time-display.md +492 -0
- package/dist/skills/editframe-editor-gui/references/timeline-ruler.md +489 -0
- package/dist/skills/editframe-editor-gui/references/timeline.md +604 -0
- package/dist/skills/editframe-editor-gui/references/toggle-loop.md +618 -0
- package/dist/skills/editframe-editor-gui/references/toggle-play.md +526 -0
- package/dist/skills/editframe-editor-gui/references/transform-handles.md +924 -0
- package/dist/skills/editframe-editor-gui/references/trim-handles.md +725 -0
- package/dist/skills/editframe-editor-gui/references/workbench.md +453 -0
- package/dist/skills/editframe-motion-design/SKILL.md +101 -0
- package/dist/skills/editframe-motion-design/references/0-editframe.md +299 -0
- package/dist/skills/editframe-motion-design/references/1-intent.md +201 -0
- package/dist/skills/editframe-motion-design/references/2-physics-model.md +405 -0
- package/dist/skills/editframe-motion-design/references/3-attention.md +350 -0
- package/dist/skills/editframe-motion-design/references/4-process.md +418 -0
- package/dist/skills/editframe-vite-plugin/SKILL.md +75 -0
- package/dist/skills/editframe-vite-plugin/references/file-api.md +111 -0
- package/dist/skills/editframe-vite-plugin/references/getting-started.md +96 -0
- package/dist/skills/editframe-vite-plugin/references/jit-transcoding.md +91 -0
- package/dist/skills/editframe-vite-plugin/references/local-assets.md +75 -0
- package/dist/skills/editframe-vite-plugin/references/visual-testing.md +136 -0
- package/dist/skills/editframe-webhooks/SKILL.md +126 -0
- package/dist/skills/editframe-webhooks/references/events.md +382 -0
- package/dist/skills/editframe-webhooks/references/getting-started.md +232 -0
- package/dist/skills/editframe-webhooks/references/security.md +418 -0
- package/dist/skills/editframe-webhooks/references/testing.md +409 -0
- package/dist/skills/editframe-webhooks/references/troubleshooting.md +457 -0
- package/dist/templates/html/AGENTS.md +13 -0
- package/dist/templates/react/AGENTS.md +13 -0
- package/dist/utils.js +15 -16
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
- package/tsdown.config.ts +4 -0
- package/dist/detectAgent.js +0 -89
- package/dist/detectAgent.js.map +0 -1
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Attention
|
|
3
|
+
description: Directing viewer attention with stagger, sequential choreography, and visual hierarchy in multi-element animations.
|
|
4
|
+
type: explanation
|
|
5
|
+
order: 3
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Attention Flow
|
|
9
|
+
|
|
10
|
+
## Core Concept
|
|
11
|
+
|
|
12
|
+
**One Focus at a Time**
|
|
13
|
+
|
|
14
|
+
Human attention is sequential, not parallel. Motion competes for focus. Never animate unrelated elements simultaneously.
|
|
15
|
+
|
|
16
|
+
## Quick Reference: Stagger Delays
|
|
17
|
+
|
|
18
|
+
| Unit | Delay | Use Case |
|
|
19
|
+
|------|-------|----------|
|
|
20
|
+
| Character | 30-50ms | Text reveals, typing effects |
|
|
21
|
+
| Word | 80-120ms | Headline emphasis |
|
|
22
|
+
| Line | 200-300ms | Paragraph reveals |
|
|
23
|
+
| List item | 50-80ms | Navigation, bullet lists |
|
|
24
|
+
| Card | 100-150ms | Grid layouts, galleries |
|
|
25
|
+
| Section | 400ms+ | Page sections, major blocks |
|
|
26
|
+
|
|
27
|
+
## The Attention Rule
|
|
28
|
+
|
|
29
|
+
**At any given moment, only ONE thing should be moving (or a group moving as a single conceptual unit).**
|
|
30
|
+
|
|
31
|
+
### Bad (Simultaneous)
|
|
32
|
+
```
|
|
33
|
+
0ms: Title slides in (500ms)
|
|
34
|
+
0ms: Subtitle fades in (500ms)
|
|
35
|
+
0ms: Logo animates (500ms)
|
|
36
|
+
```
|
|
37
|
+
Result: Viewer doesn't know where to look, misses all three.
|
|
38
|
+
|
|
39
|
+
### Good (Sequential)
|
|
40
|
+
```
|
|
41
|
+
0ms: Logo animates (400ms)
|
|
42
|
+
200ms: Title slides in (400ms) ← starts before logo finishes
|
|
43
|
+
400ms: Subtitle fades in (300ms) ← starts before title finishes
|
|
44
|
+
```
|
|
45
|
+
Result: Clear attention path, overlapping reduces total time but maintains sequence.
|
|
46
|
+
|
|
47
|
+
## Stagger: Rhythm Across Elements
|
|
48
|
+
|
|
49
|
+
**Stagger = delay between identical animations**
|
|
50
|
+
|
|
51
|
+
Creates rhythm and guides reading order without overwhelming attention.
|
|
52
|
+
|
|
53
|
+
### Stagger Timing by Granularity
|
|
54
|
+
|
|
55
|
+
| Unit | Delay | Use Case |
|
|
56
|
+
|------|-------|----------|
|
|
57
|
+
| Character | 30-50ms | Text reveals, typing effects |
|
|
58
|
+
| Word | 80-120ms | Headline emphasis |
|
|
59
|
+
| Line | 200-300ms | Paragraph reveals |
|
|
60
|
+
| List item | 50-80ms | Navigation, bullet lists |
|
|
61
|
+
| Card | 100-150ms | Grid layouts, galleries |
|
|
62
|
+
| Section | 400ms+ | Page sections, major blocks |
|
|
63
|
+
|
|
64
|
+
### Calculating Total Duration
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
Total = (NumItems - 1) × StaggerDelay + ItemDuration
|
|
68
|
+
|
|
69
|
+
Example: 5 cards, 120ms stagger, 300ms animation
|
|
70
|
+
Total = (5-1) × 120 + 300 = 780ms
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Keep total under 2 seconds** for UI. Beyond that feels slow.
|
|
74
|
+
|
|
75
|
+
## Stagger Patterns
|
|
76
|
+
|
|
77
|
+
### Sequential (Linear)
|
|
78
|
+
```
|
|
79
|
+
Item 1: 0ms
|
|
80
|
+
Item 2: 100ms
|
|
81
|
+
Item 3: 200ms
|
|
82
|
+
Item 4: 300ms
|
|
83
|
+
```
|
|
84
|
+
Most common. Reads naturally (top→bottom, left→right).
|
|
85
|
+
|
|
86
|
+
### Cascading (Accelerating)
|
|
87
|
+
```
|
|
88
|
+
Item 1: 0ms
|
|
89
|
+
Item 2: 80ms (80ms after previous)
|
|
90
|
+
Item 3: 140ms (60ms after previous)
|
|
91
|
+
Item 4: 180ms (40ms after previous)
|
|
92
|
+
```
|
|
93
|
+
Builds momentum, energetic feel. Use for dramatic reveals.
|
|
94
|
+
|
|
95
|
+
### Wave (Center-out)
|
|
96
|
+
```
|
|
97
|
+
Item 1: 100ms (center)
|
|
98
|
+
Item 2: 50ms (one step out)
|
|
99
|
+
Item 3: 150ms (one step out)
|
|
100
|
+
Item 4: 0ms (edge)
|
|
101
|
+
Item 5: 200ms (edge)
|
|
102
|
+
```
|
|
103
|
+
Focuses attention on center first, reveals context. Use when center is most important.
|
|
104
|
+
|
|
105
|
+
### Decelerating (Slowing)
|
|
106
|
+
```
|
|
107
|
+
Item 1: 0ms
|
|
108
|
+
Item 2: 50ms (50ms after previous)
|
|
109
|
+
Item 3: 120ms (70ms after previous)
|
|
110
|
+
Item 4: 220ms (100ms after previous)
|
|
111
|
+
```
|
|
112
|
+
Gentle arrival, emphasizes final items. Use for settling into place.
|
|
113
|
+
|
|
114
|
+
## Reading Order
|
|
115
|
+
|
|
116
|
+
**Respect natural reading patterns unless intentionally disrupting:**
|
|
117
|
+
|
|
118
|
+
### Western Reading (Left → Right, Top → Bottom)
|
|
119
|
+
```
|
|
120
|
+
Grid animation order:
|
|
121
|
+
[1] [2] [3]
|
|
122
|
+
[4] [5] [6]
|
|
123
|
+
[7] [8] [9]
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Alternative Orders
|
|
127
|
+
|
|
128
|
+
**Diagonal (energetic):**
|
|
129
|
+
```
|
|
130
|
+
[1] [2] [4]
|
|
131
|
+
[3] [5] [7]
|
|
132
|
+
[6] [8] [9]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Column-by-column (technical/data):**
|
|
136
|
+
```
|
|
137
|
+
[1] [4] [7]
|
|
138
|
+
[2] [5] [8]
|
|
139
|
+
[3] [6] [9]
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Center-out (focal emphasis):**
|
|
143
|
+
```
|
|
144
|
+
[5] [2] [4]
|
|
145
|
+
[7] [1] [3]
|
|
146
|
+
[9] [6] [8]
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Overlapping vs Sequential
|
|
150
|
+
|
|
151
|
+
### Full Sequential (Clear but Slow)
|
|
152
|
+
```
|
|
153
|
+
Item 1: 0-300ms
|
|
154
|
+
Item 2: 300-600ms ← starts when Item 1 ends
|
|
155
|
+
Item 3: 600-900ms
|
|
156
|
+
Total: 900ms
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Overlapping (Faster, Still Clear)
|
|
160
|
+
```
|
|
161
|
+
Item 1: 0-300ms
|
|
162
|
+
Item 2: 120-420ms ← starts at 40% of Item 1
|
|
163
|
+
Item 3: 240-540ms
|
|
164
|
+
Total: 540ms (40% faster)
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Optimal overlap: 30-50%** of item duration.
|
|
168
|
+
|
|
169
|
+
Too much overlap → feels simultaneous, loses sequence.
|
|
170
|
+
No overlap → feels sluggish, artificially delayed.
|
|
171
|
+
|
|
172
|
+
## Grouping: Treating Multiple as One
|
|
173
|
+
|
|
174
|
+
**Exception to "one focus" rule:** Elements that form a single conceptual unit can move together.
|
|
175
|
+
|
|
176
|
+
### Valid Grouping
|
|
177
|
+
```
|
|
178
|
+
Title card contains:
|
|
179
|
+
- Main headline
|
|
180
|
+
- Subheadline
|
|
181
|
+
- Decorative line
|
|
182
|
+
|
|
183
|
+
All animate together as one unit.
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Invalid Grouping (Should be Separate)
|
|
187
|
+
```
|
|
188
|
+
Bad: Animating title AND background graphic together
|
|
189
|
+
→ These aren't a conceptual unit
|
|
190
|
+
→ Should be sequenced (background first, then title)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Test:** Would a viewer naturally perceive these as one element or separate elements?
|
|
194
|
+
|
|
195
|
+
## Attention Choreography Process
|
|
196
|
+
|
|
197
|
+
### 1. List All Elements
|
|
198
|
+
Identify everything that will move.
|
|
199
|
+
|
|
200
|
+
### 2. Prioritize by Importance
|
|
201
|
+
What must viewer see first, second, third?
|
|
202
|
+
|
|
203
|
+
### 3. Determine Groups
|
|
204
|
+
Which elements are conceptual units?
|
|
205
|
+
|
|
206
|
+
### 4. Assign Sequence
|
|
207
|
+
Create timeline respecting priority.
|
|
208
|
+
|
|
209
|
+
### 5. Add Stagger Within Groups
|
|
210
|
+
Apply appropriate delays for rhythm.
|
|
211
|
+
|
|
212
|
+
### Example: Explainer Video Opening
|
|
213
|
+
|
|
214
|
+
**Elements:**
|
|
215
|
+
- Brand logo
|
|
216
|
+
- Video title
|
|
217
|
+
- Subtitle text
|
|
218
|
+
- 4 key statistics
|
|
219
|
+
- Background graphic
|
|
220
|
+
|
|
221
|
+
**Priority:**
|
|
222
|
+
1. Logo (establishes brand)
|
|
223
|
+
2. Title (main message)
|
|
224
|
+
3. Subtitle (supports title)
|
|
225
|
+
4. Statistics (supporting data)
|
|
226
|
+
5. Background (context)
|
|
227
|
+
|
|
228
|
+
**Timeline at 30fps:**
|
|
229
|
+
```
|
|
230
|
+
0ms: Logo animates (600ms / 18 frames)
|
|
231
|
+
300ms: Title slides in (400ms / 12 frames) ← 50% overlap
|
|
232
|
+
500ms: Subtitle fades in (300ms / 9 frames)
|
|
233
|
+
700ms: Stat 1 (300ms / 9 frames)
|
|
234
|
+
800ms: Stat 2 (300ms / 9 frames) ← 100ms stagger
|
|
235
|
+
900ms: Stat 3 (300ms / 9 frames)
|
|
236
|
+
1000ms: Stat 4 (300ms / 9 frames)
|
|
237
|
+
1300ms: Background subtle fade (600ms / 18 frames) ← ambient
|
|
238
|
+
|
|
239
|
+
Total: 1900ms (~57 frames)
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Background Motion Exception
|
|
243
|
+
|
|
244
|
+
**Ambient/background motion can run during foreground focus:**
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
Foreground: Title animates (400ms) ← PRIMARY FOCUS
|
|
248
|
+
Background: Particle drift (continuous) ← ambient, not competing
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Requirements for background motion:**
|
|
252
|
+
- Much slower than foreground (or continuous loop)
|
|
253
|
+
- Very subtle (barely noticeable, 20-30% opacity)
|
|
254
|
+
- Clearly secondary (out of focus, low contrast, or peripheral)
|
|
255
|
+
- Enhances without distracting
|
|
256
|
+
- Never competes with primary narrative elements
|
|
257
|
+
|
|
258
|
+
## Anti-Patterns
|
|
259
|
+
|
|
260
|
+
### Simultaneous Unrelated Motion
|
|
261
|
+
```
|
|
262
|
+
Bad:
|
|
263
|
+
- Main title appears
|
|
264
|
+
- Background changes
|
|
265
|
+
- Lower third animates
|
|
266
|
+
All at same time
|
|
267
|
+
|
|
268
|
+
Fix: Sequence them. Background → wait 200ms → Title → wait 400ms → Lower third
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Too Many Staggers
|
|
272
|
+
```
|
|
273
|
+
Bad: 20 text lines with 200ms stagger = 4000ms (4 seconds!)
|
|
274
|
+
Result: Feels sluggish, viewer loses interest
|
|
275
|
+
|
|
276
|
+
Fix:
|
|
277
|
+
- Reduce stagger to 80ms (1600ms total)
|
|
278
|
+
- Or: Group into 3 sets of lines, stagger sets not lines
|
|
279
|
+
- Or: Only stagger first 5 lines, remaining fade in together
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Ignoring Reading Order
|
|
283
|
+
```
|
|
284
|
+
Bad: Grid animates right-to-left (against Western reading)
|
|
285
|
+
Result: Feels backwards, unnatural
|
|
286
|
+
|
|
287
|
+
Fix: Animate in reading order unless intentionally surprising
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### False Grouping
|
|
291
|
+
```
|
|
292
|
+
Bad: Entire page (50+ elements) animates as one unit
|
|
293
|
+
Result: Overwhelming, no guided attention
|
|
294
|
+
|
|
295
|
+
Fix: Break into logical groups, sequence the groups
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## Implementation Example
|
|
299
|
+
|
|
300
|
+
**Text line reveal with stagger (30fps):**
|
|
301
|
+
|
|
302
|
+
```javascript
|
|
303
|
+
// In video composition at 30fps (33ms per frame)
|
|
304
|
+
const lines = ['Line 1', 'Line 2', 'Line 3', 'Line 4'];
|
|
305
|
+
const staggerFrames = 6; // 6 frames = ~200ms at 30fps
|
|
306
|
+
const durationFrames = 9; // 9 frames = ~300ms at 30fps
|
|
307
|
+
|
|
308
|
+
lines.forEach((line, i) => {
|
|
309
|
+
const startFrame = i * staggerFrames;
|
|
310
|
+
const endFrame = startFrame + durationFrames;
|
|
311
|
+
|
|
312
|
+
// Create keyframes for this line
|
|
313
|
+
animateLine(line, {
|
|
314
|
+
startFrame: startFrame,
|
|
315
|
+
endFrame: endFrame,
|
|
316
|
+
easing: 'ease-out'
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
// Total duration: (4-1) × 6 + 9 = 27 frames (~900ms at 30fps)
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
## Attention Budget
|
|
324
|
+
|
|
325
|
+
**Users have limited attention. Spend it wisely.**
|
|
326
|
+
|
|
327
|
+
**High attention cost:**
|
|
328
|
+
- Large motion (200px+ movement)
|
|
329
|
+
- Color changes
|
|
330
|
+
- Multiple properties animating
|
|
331
|
+
- Long duration (800ms+)
|
|
332
|
+
|
|
333
|
+
**Low attention cost:**
|
|
334
|
+
- Small motion (20px movement)
|
|
335
|
+
- Opacity only
|
|
336
|
+
- Brief duration (200ms)
|
|
337
|
+
|
|
338
|
+
**Budget rule:** Reserve high-cost motion for primary actions. Use low-cost for secondary.
|
|
339
|
+
|
|
340
|
+
## Testing Attention Flow
|
|
341
|
+
|
|
342
|
+
**Watch the animation with these questions:**
|
|
343
|
+
|
|
344
|
+
1. Where does my eye go at each moment?
|
|
345
|
+
2. Is that where I *should* be looking?
|
|
346
|
+
3. Do I understand the sequence of importance?
|
|
347
|
+
4. Does anything compete for attention?
|
|
348
|
+
5. Is the total duration comfortable?
|
|
349
|
+
|
|
350
|
+
If any answer is no, revise the sequence.
|