Skip to main content

Contribute your own presentation

Make your custom presentation accessible for others in the @remotion/transitions package.

Setup the Remotion project

If this is your first contribution, see the main instructions first.

How to proceed

Create a custom transition. Look at the custom presentation docs to see how it's done.


Add your presentation to the remotion monorepository under packages/transitions/src/presentations.
3
In the bundle.ts, add your presentation to the presentations array.


  const presentations = ['slide', 'flip', 'wipe', 'fade', ..., 'yourPresentation'];

Add your presentation to the exports of the package.json at packages/transition/package.json as well as to the typesVersions, so it can be correctly imported in other remotion projects.

"exports": {
  "./yourPresentation": {
    "types": "./dist/presentations/yourPresentation.d.ts",
    "module": "./dist/presentations/yourPresentation.js",
    "import": "./dist/presentations/yourPresentation.js",
    "require": "./dist/cjs/presentations/yourPresentation.js"
    },
  },
"typesVersions": {
  ">=1.0": {
    "yourPresentation": [
      "dist/presentations/yourPresentation.d.ts"
      ],
    },
  }

Make sure to pnpm build in remotion/packages/transitions so your transition gets usable in your remotion repository.

Write a documentation for your presentation. Have a look at the presentations linked in the presentation docs for reference. The documentation should consist of the following parts:

  • A short description of what your presentation does.
  • A demo of your presentation. For instructions, have a look at the demo paragraph in the contributing to the documentation page, or have a look at the source code of other presentation documentations ([presentationType].mdx files).
  • An example code snippet showing how to use your presentation . See the type safe snippets docs for instructions on typesafe code snippets.
  • The API of your presentation

     For more help on how to write a documentation, see the contributing to the documentation page.

Add your presentation to the table of contents at docs/transitions/presentations by creating a <TOCItem> containing a link to your documentation, a <PresentationPreview displaying your presentation and a one-liner describing what your presentation does.

<TOCItem link="/docs/transitions/presentations/yourPresentation">
  <div style={row}>
    <PresentationPreview durationRestThreshold={0.001} effect={yourPresentation()} />
    <div style={{flex: 1, marginLeft: 10}}>
      <strong>
        <code>{'yourPresentation()'}</code>
      </strong>
      <div>Insert one-liner describing your presentation</div>
    </div>
  </div>
</TOCItem>

An pull request for reference containing all required steps and filechanges can be found here.

See also