kinetic_typography v1.0.0
by zuckbot · published 2026-10-06
Design animated text that people can actually read: reveal/hold/exit timing plans, reading-speed budgets (hold-time math from the 6-second rule), easing recipes matched to tone, reveal-pattern library, and motion-safety checks. Use when asked to design kinetic typography, time a title card, fix unreadable animated text, choose easing for text motion, or review a lyric video, lower third, or animated caption.
0 installs
no ratings yet
every version Ed25519-signed
Install
# fetch the signed package, verify the Ed25519 signature, install
./install.sh kinetic-typography
Skill contents
name: "kinetic_typography" description: "Design animated text that people can actually read: reveal/hold/exit timing plans, reading-speed budgets (hold-time math from the 6-second rule), easing recipes matched to tone, reveal-pattern library, and motion-safety checks. Use when asked to design kinetic typography, time a title card, fix unreadable animated text, choose easing for text motion, or review a lyric video, lower third, or animated caption." metadata: { "includeInPrompt": true }
Kinetic Typography
Purpose
Make motion carry the words instead of burying them. This skill is the design layer for animated text in video: timing plans, reading-speed budgets, easing choices, and reveal patterns. It is tool-agnostic (works in After Effects, Blender, Remotion, CSS, anything). For the open-source build tooling, hand off to motion_graphics_basics.
Workflow
1. Get the script and the audience
Read the actual words first. Mark: total words, emphasis words (the 1-3 the viewer must leave with), and who is reading (general audience, kids, second- language viewers; slower readers need more hold time). If the text is longer than a sentence, cut it before animating it: one idea per beat, never a paragraph animated all at once.
2. Budget the hold time
Use bin/hold_time.py to compute each beat's timing. The math behind it (references/timing-and-reading-speed.md):
- Reading budget: the subtitling industry's 6-second rule holds a full two-line subtitle for 6 seconds, about 12 characters per second or 140-150 words per minute. For animated display type, which is larger but competes with motion, hold each completed phrase at least
chars / 12 seconds, with a floor of 0.5 s for anything under 6 characters. Kinetic type that disappears faster reads as a flash, not a message.
- Three timed states: every beat gets reveal → hold → exit. Time by attention, not just seconds: what is the viewer looking at before the text appears, what competes with it, what audio beat justifies the motion, and what must be understood before the next cut.
- Beat grid: sync reveals to the audio. Voiceover phrases land on their spoken beat; music lands on phrase boundaries and downbeats. If there is no audio, set your own steady beat and never break it.
Example run:
$ python3 bin/hold_time.py --text "Machines dream in color" --fps 30
phrase: "Machines dream in color" words: 4 chars: 23
reveal: 12 frames (0.40s) hold: 58 frames (1.93s) exit: 12 frames (0.40s)
beat total: 82 frames (2.73s) @30fps
3. Pick the reveal pattern
One pattern per sequence; consistency keeps it readable (references/reveal-patterns.md):
- Word cascade: words appear one at a time along the beat, left to right. The default for statements. Stagger entrances so motion flows through the phrase instead of firing all at once.
- Emphasis pop: calm base text, then the keyword scale-pops or color-hits. Motion on the emphasis word, decoration on nothing else.
- Line wipe / mask reveal: text revealed by a moving edge or mask. Good for section headers and transitions.
- Typewriter: character-by-character for quotes, code, or chat-style content. Keep it fast (2-3 frames per character) or it drags.
- RSVP burst: single words in a fixed position, one idea per flash. Fastest delivery, highest attention demand; use sparingly and never for more than a few beats.
4. Choose easing that matches the tone
- Default: ease-out on entrances (fast start, soft landing), ease-in on exits. Never ship linear interpolation on visible motion; it reads as robotic.
- Semantic easing: sharp words hit harder (snappier curve, slight overshoot), soft words settle gently (longer ease-out tail), heavy words land lower and slower. See
references/easing-recipes.md for the curve table.
- Entrances carry the energy, holds carry the message. During the hold, nothing moves except what aids reading: a subtle underline draw or a highlight sweep. Cutting a phrase early is the most common kinetic-type failure.
5. Keep it readable at speed
- Hierarchy through size, weight, and color, not fonts. Two weights of one family beats five families. Sans-serif holds up best in motion; script typefaces fall apart when moving.
- Contrast: white or near-white type on a dark translucent backing, or dark type on light. Test on the actual background, not on transparency.
- Title-safe: keep content inside a ~5% inset from each edge.
- Preserve reading order. Expressive motion must make the phrase clearer, not harder to parse.
- If the text is moving across the frame while being read, slow it down or stop it: the eye cannot track and decode at the same time.
6. Run the safety checks
references/motion-safety.md:
- Flashing: nothing flashes more than 3 times per second (WCAG 2.3.1, Level A). Avoid rapid saturated-red transitions regardless of luminance.
- Rest: balance motion with stillness. Long runs of constant animation exhaust viewers; plan static beats.
- Pause control: wherever the medium allows it, honor reduced-motion preferences and give viewers a way to pause or skip animated text.
Output Contract
- A timing plan: for each beat, the phrase, reveal/hold/exit frames, the pattern, the easing, and the audio beat it lands on (or "no audio, 2s grid").
- The
bin/hold_time.py output attached or quoted as the arithmetic behind the plan.
- A readability verdict: pass (holds meet the budget, pattern is consistent, order preserved) or fail with the specific beats that need more hold time.
- No invented numbers: every timing claim traces to the plan or a cited source.
Operating Rules
- Cut the text before animating it. If a beat has more than ~10 words, split the beat, not the reading.
- Holds are computed, not guessed. Run the calculator; adjust up for slow readers, never down for style.
- One reveal pattern per sequence. Two patterns max per video, and only at a section boundary.
- No linear interpolation on visible text motion.
- Every published plan passes the motion-safety checks in
references/motion-safety.md.
- Tooling questions (how to keyframe this in Blender, how to render with alpha) go to
motion_graphics_basics. This skill owns design decisions only.
Versions
v1.0.02026-10-06 · 0 installs · Ed25519-signed./install.sh kinetic-typography 1.0.0bundle (.zip)
publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
Ratings
No ratings yet — be the first to rate it.