Looks and sound

Titles and captions

A title is a clip. It is measured, painted once and then treated as an ordinary source — so the effect rack blurs it, the transform moves it, and nothing downstream has a text case.

Making one

Add a text clip and its rack opens with everything about a title in one column, in the order you reach for it: the words at the top, the type under them, then the transform, then any effects.

The words
A text field. Multi-line, and the block wraps and aligns against whatever is actually on screen.
Font
Family and weight, from the picker. Every row is set in the face it names, because choosing a typeface is a visual decision and a list of names in one face doesn't let you make it.
Size, leading, tracking
All three keyframe. The block is measured and drawn at its authored point size, so scale 1 means the size you set it at.
Colour and outline
Fill colour, stroke colour and stroke width. The colour keyframes as three channels under one swatch.
Alignment
Within the block. Where the block itself sits on the canvas is the transform's job.

Where the fonts come from

Four sources, and the difference between them is entirely about who has the bytes.

Bundled
The project's own three faces, served from our origin. Always present, never fetched.
System
Families the platform ships. Nothing to load — either the machine has it or the fallback in the stack answers.
Installed
The real fonts on this machine, read with your permission. Also nothing to load, but the list can only be discovered by asking for it.
Google Fonts
Fetched once on first use, then kept locally so it never leaves the machine again — which is what makes a title set in one still render on a plane, and render identically on export.

Text effects

Eight of them, and they are unlike the rest of the catalogue in that they act on the type rather than on the pixels. They run in two stages: one set rewrites the string before it is laid out, so wrapping and measurement happen against the text that is actually on screen; the other moves characters after the layout, and may put one anywhere — the raster grows to hold it.

Character Offset
Moves characters — the workhorse of per-character animation.
Character Colour
Recolours characters, per character.
Character Blur
Blurs characters, per character.
Character Outline
Strokes characters, per character.
Scramble
Replaces characters with others before settling on the real ones.
Counter
Rewrites the string as a number, so a figure can count up.
Timecode
Rewrites the string as the current time, in the project's own rate.
Follow Path
Sets the type along a drawn path, spaced by distance along the curve rather than by parameter — so the letters don't bunch on the tight parts.

Selectors: which characters, and how much

Every per-character effect needs an answer to "which letters, and how strongly", and none of them is that answer. It is a separate control — the selector — so a new per-character effect doesn't have to reinvent ramps and ordering.

A range selector is a span with a shape. Animating its offset is what sweeps an effect through a word, which is most of what per-character animation is for.
  • Range — a start, an end, an offset, and how the amount falls off across the span. Keyframe the offset and the effect travels through the word.
  • Wiggly — noise instead of a span. Every character gets its own amount, changing a few times a second, with no keyframes at all. What wiggles is whichever property the effect it sits on is driving.
  • Both are deterministic. The wiggle is a hash of the character, the seed and the tick rather than a running clock, so a frame drawn twice is the same frame and the export matches the preview.

Captions and subtitles

SRT and WebVTT, which between them are what everything else exports to. One parser reads both — they are the same format twice, differing in the decimal separator, an optional header, and the cue settings VTT allows after the timings.

  1. 01

    Open the Captions tab

    In the Inspector, beside the effect rack. It is there whether or not a title is selected, which is the point — the first import into an empty project shouldn't require making a title you don't want in order to find the button.

  2. 02

    Choose an SRT or a WebVTT file

    It is read with the File API, in the page. Nothing is uploaded, and the parser is forgiving about the things people are actually handed: a BOM, CRLF endings, a missing index, hours left off short timecodes.

  3. 03

    Every cue becomes a title clip

    On a text track, at the cue's own timing. From that moment they are ordinary clips: trim them, move them, restyle them, animate them.

  4. 04

    Set the type once and carry it across

    A subtitle file carries words and timings and says nothing about how they should look, so the look is yours to decide. Style one and copy it onto the rest.

Animating type

Everything above keyframes, including the size, the leading, the tracking and the colour of the type itself — not just the transform around it. Those live on the same keyframe map as every other property, addressed under a reserved prefix, so the curve editor, the diamonds and the timeline lanes all treat a title's point size as an ordinary animatable number.

Scaling a title up is a resample of the painted block rather than a re-set of the type, which is the same deal a scaled-up video gets — and the reason a keyframed size doesn't re-rasterise the letterforms sixty times a second. See Keyframes.