@leotang92/dsh-claude-motion 0.0.0-stage → 0.1.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/LICENSE +27 -0
- package/NOTICE.md +25 -0
- package/README.md +21 -2
- package/cordis.patch.yml +7 -0
- package/docs/DETAIL.md +32 -0
- package/docs/DETAIL.zh.md +17 -0
- package/icon.svg +8 -0
- package/lib/client.js +1800 -0
- package/lib/index.js +878 -0
- package/locale/en.json +7 -0
- package/locale/zh.json +7 -0
- package/package.json +69 -4
- package/skills/claude-motion/SKILL.md +689 -0
- package/skills/claude-motion/artifact-type/reference/by-hand.md +84 -0
- package/skills/claude-motion/artifact-type/reference/film-api.md +278 -0
- package/skills/claude-motion/artifact-type/reference/finalize.md +213 -0
- package/skills/claude-motion/artifact-type/reference/motion.md +260 -0
- package/skills/claude-motion/artifact-type/reference/plan.md +239 -0
- package/skills/claude-motion/artifact-type/reference/questions.md +240 -0
- package/skills/claude-motion/artifact-type/reference/recreate-ui.md +140 -0
- package/skills/claude-motion/artifact-type/reference/render-offline.md +126 -0
- package/skills/claude-motion/artifact-type/reference/rough-cut.md +251 -0
- package/skills/claude-motion/artifact-type/reference/sound.md +106 -0
- package/skills/claude-motion/artifact-type/reference/styles.md +230 -0
- package/skills/claude-motion/artifact-type/reference/walkthrough.md +83 -0
- package/skills/claude-motion/scripts/artifact.mjs +8390 -0
- package/skills/claude-motion/scripts/editor/artifact-type/anthropicons-fizzy-lake-DtzHkSJH.woff2 +0 -0
- package/skills/claude-motion/scripts/editor/artifact-type/app.css +1 -0
- package/skills/claude-motion/scripts/editor/artifact-type/app.js +17230 -0
- package/skills/claude-motion/scripts/editor/index.html +145 -0
- package/skills/claude-motion/scripts/editor/local-host.js +12 -0
- package/skills/claude-motion/scripts/editor/share-ui.js +208 -0
- package/skills/claude-motion/scripts/editor/third-party-licenses.txt +970 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Walkthrough films — the slower, explanatory flavor
|
|
2
|
+
|
|
3
|
+
For "show me how this flow works" pieces (a single flow 35–50 s; a
|
|
4
|
+
multi-flow story up to 3–4 min) the tone is focused:
|
|
5
|
+
deliberate, one speed, generous holds, an eased camera with a
|
|
6
|
+
spotlight, an honest cursor, caption chips, chapters. Same cut contract,
|
|
7
|
+
same kit, same rules — only the tempo and a few extra devices change.
|
|
8
|
+
|
|
9
|
+
## Story first: chapters → beats
|
|
10
|
+
|
|
11
|
+
Write it before any code. Per flow: who wants what (a fictional persona
|
|
12
|
+
and a one-line need, first person, ≤12 words), the 4–8 UI beats that
|
|
13
|
+
show it — each beat = ONE region of interest + ONE action + at most one
|
|
14
|
+
caption or mark — the line worth saying afterwards, and a closing recap.
|
|
15
|
+
A beat you can't caption in four words is two beats; anything that
|
|
16
|
+
doesn't move the story goes. Chapters become `window.CUT.chapters`
|
|
17
|
+
(their titles are verbs: "Start from an app", "Share it").
|
|
18
|
+
|
|
19
|
+
## House numbers (defaults; every one was tuned in review)
|
|
20
|
+
|
|
21
|
+
- Camera moves 0.55–1.2 s, eased `cubic-bezier(.22,.7,.24,1)` for
|
|
22
|
+
arrivals and `(.45,0,.2,1)` for repositioning. **Hold 1.4–2.2 s** on
|
|
23
|
+
every point of interest before anything else happens; if in doubt add
|
|
24
|
+
0.4 s. The window rests at ~92 % of the stage but rests rarely:
|
|
25
|
+
**every beat zooms 1.6–2.4×** onto its region; never sit on the full
|
|
26
|
+
window longer than ~1.2 s. Drift 1–2 % on holds.
|
|
27
|
+
- Cursor travel 0.5–0.9 s on arced paths, a visible 200–300 ms settle
|
|
28
|
+
on the target, then the click; hover tint from arrival. Cross-fades
|
|
29
|
+
350–600 ms; menus 160–200 ms from their anchor. Nothing snaps, nothing
|
|
30
|
+
teleports.
|
|
31
|
+
- **Spotlight**: a mask on `kit.fx` that dims everything outside a
|
|
32
|
+
rounded region to ~55 % — `kit.spotlight(rect, amount, {pad: 24,
|
|
33
|
+
radius: 28})` inside `render`, with `amount` eased from t (0.5–0.8
|
|
34
|
+
for context beats, 1.0 for "look exactly here"; lerp the rect to glide
|
|
35
|
+
between nearby regions, fade-jump-fade between distant ones). Off
|
|
36
|
+
during typing and streaming beats.
|
|
37
|
+
- **Caption chips**: `kit.chip(text, {x, y, anchor: [ax, ay]})` in
|
|
38
|
+
`init` → a 26 px white pill (pass `style: 'font-family:…'` for your
|
|
39
|
+
font asset) with a 1.5 px leader line and anchor
|
|
40
|
+
dot to the thing it names; `kit.show(chip, t, tIn, tOut)` in
|
|
41
|
+
`render`. Place it in the dimmed area — never over the region — on
|
|
42
|
+
screen ≥1.2–1.6 s. Labels, not sentences ("Pinned for you"), ≤6
|
|
43
|
+
words, never "successfully". A tooltip and a caption never say the
|
|
44
|
+
same thing.
|
|
45
|
+
- **Chapter title slide**: a breathing cut-paper number quad in the
|
|
46
|
+
accent, a 96 px display headline fading from the right (60 ms word
|
|
47
|
+
stagger, 34 px drift), a 40 px subhead; 2.4–3.2 s. Then the quad **morphs into
|
|
48
|
+
the UI window** (1.1–1.2 s) while the screen fades up inside it — no
|
|
49
|
+
hard cuts from slides into UI.
|
|
50
|
+
- **Personas** (multi-flow only): a 220 px flat smiley in ONE secondary
|
|
51
|
+
color (never touching the accent) whose eyes and smile are ink marks
|
|
52
|
+
that draw on and boil; name 40 px semibold, role 30 px, their need as a
|
|
53
|
+
44 px display line from the right; ~3.5 s;
|
|
54
|
+
then it flies down to a 72 px badge bottom-left and rides there
|
|
55
|
+
through that flow's beats.
|
|
56
|
+
- **No speech bubbles over UI.** When the person has something to say
|
|
57
|
+
mid-flow, use an interstitial text card: the UI eases to scale 0.96 /
|
|
58
|
+
opacity 0.25, one 72 px display line (and the small smiley) scales
|
|
59
|
+
0.92 → 1 over 1.4 s, holds 1.6 s, the UI eases back.
|
|
60
|
+
- **Closing card**: a 72 px display line from the right, one accent
|
|
61
|
+
recap chip per flow tumbling in (2.5D is allowed for shapes), a tiny grey
|
|
62
|
+
"Concept mock · Month YYYY". The player ends paused on it.
|
|
63
|
+
- Type: the product's own body face inside mocks; everything the
|
|
64
|
+
viewer must read ≥ ~26 px on screen after zoom.
|
|
65
|
+
|
|
66
|
+
## Don'ts (each was real feedback)
|
|
67
|
+
|
|
68
|
+
Tiny text · resting zoomed out · speech bubbles over UI · a cursor that
|
|
69
|
+
jumps · yellow-highlighter rectangles (use marks) · "Made with X"
|
|
70
|
+
overlays · a speed toggle · player chrome cluttered with tickers · toasts
|
|
71
|
+
firing off-frame while the camera is elsewhere (pan to them or skip
|
|
72
|
+
them) · frozen holds · tooltip + caption duplication · hard cuts from
|
|
73
|
+
slides into UI · real customer names or data.
|
|
74
|
+
|
|
75
|
+
## QA for long films
|
|
76
|
+
|
|
77
|
+
`frames.ts --every 1 --sheet` reads as a storyboard: two or more
|
|
78
|
+
consecutive cells at each point of interest, no cell where nothing
|
|
79
|
+
readable is on screen, the cursor never jumps between consecutive cells
|
|
80
|
+
without a fade, captions never overlap their region, at most one
|
|
81
|
+
secondary color per scene. Check click targets by eye on the stills at
|
|
82
|
+
each click time (`frames.ts --at` those times); `check.ts` does not
|
|
83
|
+
hit-test clicks yet.
|