Skip to content

docs(compose): rewrite the page for the shape the next release ships - #100

Open
a-essawy wants to merge 7 commits into
mainfrom
docs/compose-release-rewrite
Open

a-essawy wants to merge 7 commits into
mainfrom
docs/compose-release-rewrite

Conversation

@a-essawy

Copy link
Copy Markdown
Contributor

Do not merge until the compose release ships. This documents the timeline shape on feat/compose-revamp in the monorepo, which is not on main and not deployed. Merging early would publish docs for an API that is not live.

Why

The page taught the pre-release shape: per-clip color, blur, chromaKey and filter, animateTo for movement, shapes placing themselves with their own position/size/anchor, and output.frameTime. Ten of its twelve complete examples used at least one field that has moved.

What it teaches now

  • One effects list, on a clip, a track or the whole timeline, ordered, with start/length and keyframed parameters. 34 effects grouped, linking to the rendered effects reference.
  • Keyframes as their own section: time in seconds or percent, easing applying from a keyframe to the next one, 33 easings.
  • One transform that places every clip, text and shapes included, with size boxes, fit modes including cover and blur, and corners.
  • New sections: timers, subtitles (cues or an .srt/.vtt file), Lottie animations, masks and LUTs, the engine entry, output.range, a transparent background, and the free validate endpoint.
  • All six transitions, including push and wipes by shape or by your own greyscale map.
  • Reference tables rebuilt: output, assets, clip fields, transitions, text style.

Verification

Every JSON example was run through the API's own validator (the same validateComposeDocument the endpoint uses): 30 examples, no refusals, no warnings, nothing in the old shape. It caught three I had written wrong, including an engine parameter that takes a number rather than a name, and a transparent background on mp4, which has no alpha.

Still owed separately: the MCP page needs validate_compose and the effect argument on list_job_types.

The page taught the pre-release timeline: per-clip `color`, `blur`,
`chromaKey` and `filter` fields, `animateTo` for movement, shapes that
placed themselves with their own `position`, `size` and `anchor`, and
`output.frameTime` for a still. Ten of the twelve complete examples on
it used at least one field that has moved.

It now teaches one `effects` list on a clip, a track or the timeline,
keyframes with 33 easings on anything that moves, and one `transform`
that places every clip including text and shapes. New sections cover
timers, subtitles from cues or an .srt file, Lottie animations, masks
and LUTs, the `engine` entry, `output.range`, a transparent background,
and the free `validate` endpoint. The transition table carries all six
kinds, with wipes by shape or by your own greyscale map.

Every JSON example was run through the API's own validator: 30 of them,
no refusals, no warnings, nothing left in the old shape. That caught
three examples I had written wrong, including an engine parameter that
takes a number and a transparent background on mp4, which has no alpha.
Both ship with the compose release: a free dry run of a compose submit,
and reading one effect's parameters instead of the whole reference.
…reference

One page of 970 lines becomes eleven learn pages and thirteen generated
reference pages, matching how Creatomate and JSON2Video both organise this:
one reference page per asset kind. jobs/compose stays the overview so every
existing link to it still works.

The reference pages are generated from the schema the API validates with, so a
field table cannot drift from what a render accepts. Effect and transition
demos play the before and after clips already on the CDN.

Both groups are marked expanded, so opening a reference page no longer folds
the rest of the section away.
The before and after pair on that page was the engine escape-hatch demo, which
renders frei0r.cartoon, captioned as a keyframed scale. That is why the result
looked flat and low quality: it was a cartoon filter, not a Ken Burns push.

No keyframe demo exists in the showcase set, so the page teaches from the JSON
until one is rendered. A wrong clip is worse than no clip. Also removes a lead
that repeated the section's own opening line.
These pages are for a quick explanation and a look at the result, not a second
reference. Three of them carried no picture at all.

Motion gets a real Ken Burns demo, rendered through the compiler a job uses:
a still photograph scaled 1 to 1.15 with easeInOutSine, beside the untouched
still. Text gets the timer, subtitles and Lottie clips, which were already
rendered and sitting unused. Timeline gets a diagram of the music-bed example,
because length "end" is the hardest thing on that page to picture from prose.
fonts proves the claim it makes: a display family on the headline, Arabic and
Devanagari shaping through the bundled fallbacks with no font file uploaded.

output gains the fit comparison, a wide photograph in a phone-shaped box, which
is the framing question readers actually get wrong.
A vertical render with the title clipped at the top and the caption jammed at
the bottom, beside the same two lines inside the safe area. The last learn page
without a picture now has one.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant