Skip to content
LogoMotionLab

Reference

The system.

Dark ground, one accent, a serif for display and a sans for everything else. The videos are the only saturated thing on any page.

Colour

Every one is named for its job. Switch the theme in the footer — the names do not change and neither does any component.

  • GroundThe page. Everything else sits on it.
  • SurfaceA card, a field, a dropzone.
  • Surface raisedThe one above that: a hover, a well.
  • LineHairlines between sections.
  • Line strongThe edge of anything you can act on.
  • AccentThe brand. Sparingly.
  • Accent solidWhat a filled button is painted in.
  • InkText.
  • Ink mutedSecond-voice text.
  • Ink faintCaptions and meta.

Type

display · Instrument Serif

Your mark, in motion

title · Instrument Serif

One picture is all it takes

lead · Geist

Upload a logo, or paste your address and upload nothing at all.

body · Geist

A draft takes about two minutes, which is long enough that we email you rather than ask you to watch a spinner.

The mark

Drawn and animated by the page — an SVG and two keyframes, about a kilobyte. Under reduced motion it holds still.

LogoMotionLab

Buttons

Video

Poster first, muted, looping, and it does not start at all for a reader who asked for less motion — they get the poster and a control. The clip below is a test pattern drawn by ffmpeg, not a generation.

The studio

The real form and the real result panel, against sample data. They are here so that both can be looked at — and checked on a phone — without three accounts and a rendered video between you and them.

Your logo

Drop a logo here

PNG, JPEG or WEBP, up to 10 MB. You can paste one too.

Pick a style

Make it

A name is enough.
6 seconds
The logo is padded to fit.

Add a logo above and this lights up.

Liquid Metal

Ready

6 seconds · 768p · took 2.5 minutes. Happy with it? The 2K version is the same take at four times the detail.

DownloadMake another

When we refuse a file

Generated by the same function the browser and the route handler both call, so what is printed here is what a customer really reads.

  • empty

    that file is empty.

  • too_big

    that file is 10.1 MB; the limit is 10 MB.

  • unsupported_format

    that file is a PDF; send a PNG, JPEG or WEBP

When a video does not work

A failed job stores a slug, and the slug is for us. These are what it becomes on the page — emitted from the worker’s own exception hierarchy, where the sentence sits beside the failure that raises it. A particular failure may say something more specific, and that sentence is stored on the job.

  • brief_unusable

    We could not work out what to animate from that page. Tell us the brand name and we will use that.

  • configuration_error

    This feature is not available right now. Please try again later.

  • database_error

    Something went wrong on our side. Your credits have not been used.

  • database_integrity_violated

    Something went wrong on our side. Your credits have not been used.

  • generation_failed

    That video did not come out. Your credits have been returned — try a different image or template.

  • generation_timeout

    Your video is taking longer than usual. We are still working on it.

  • image_invalid

    We could not read that image. Try a PNG or JPEG under 10 MB.

  • insufficient_credits

    You do not have enough credits for that video.

  • internal_error

    Something went wrong on our side. Your credits have not been used.

  • media_processing_failed

    We could not finish preparing that video. Your credits have been returned.

  • moderation_rejected

    Our video provider would not generate that. Try a different image or wording.

  • network_error

    That took longer than expected. We are trying again.

  • not_found

    We could not find that.

  • page_blocked

    That site blocks automated visitors, so we could not read it. Upload your logo and we will animate that instead.

  • page_empty

    There was not enough on that page for us to work from. Try your home page, or upload your logo instead.

  • page_not_found

    We could not find that page. Check the link and try again.

  • page_redirect_loop

    That link keeps redirecting and never arrives anywhere. Try the address it should end at.

  • page_requires_login

    That page is behind a sign-in, so we could not read it. Try a public page, like your home page.

  • page_too_slow

    That page took too long to load. Try a simpler page, or upload your logo.

  • permanent_error

    Something went wrong on our side. Your credits have not been used.

  • prompt_invalid

    Something about that request was not quite right.

  • provider_balance_exhausted

    We could not generate that right now. Your credits have not been used.

  • provider_request_invalid

    Something went wrong on our side. Your credits have not been used.

  • provider_unavailable

    Our video service is having a moment. We are trying again.

  • rate_limited

    We are busy right now. Your video is queued and will start shortly.

  • retryable_error

    That took longer than expected. We are trying again.

  • scrape_failed

    We could not read that page. Try another link, or upload your logo instead.

  • url_invalid

    That link does not look like a public web address.

  • validation_error

    Something about that request was not quite right.