---
title: Overview
description: Motion is Motionly's readable source format for canvas, elements, tracks, clips, audio, and animations.
---

# Motion Language Reference

`.motion` is Motionly's source format. The editor should create and update it visually, but agents and contributors need to keep the syntax clean.

## Canvas

```motion
canvas {
  size 1920x1080
  fps 60
  duration 5s
  background #020308
}
```

## Text

```motion
text title {
  value "Motion graphics"
  center
  x 0
  y 0
  size 72
  color #ffffff
  opacity 1
}
```

Use `size`, not `fontSize`.

## Asset

```motion
import "./assets/logo.svg" as logo

logo {
  center
  width 240
  opacity 1
}
```

`import` accepts PNG/JPEG, static or animated SVG, GIF, MP4, WebM, MOV/M4V, and `.lottie`. Animated assets use the same editable layer transforms and timeline `clip` syntax as images.

## Animation

```motion
animate title {
  from {
    opacity 0
    y 80
    blur 10
  }

  to {
    opacity 1
    y 0
    blur 0
  }

  duration 1.2s
  delay 0s
  easing power3.out
}
```

Use `easing`, not `ease`.

## Useful Properties

- `x`
- `y`
- `width`
- `height`
- `scale`
- `rotation`
- `originX` / `originY` (normalized transform origin)
- `skewX` / `skewY`
- `opacity`
- `blur`
- `brightness`
- `shadow`
- `size`
- `color`
- `fill`, `stroke`, `strokeWidth` (simple path SVG overrides)
- `center`
- `layer`

## Audio

```motion
audio "/assets/my-project/background.mp3" {
  start 0s
}
```

Audio files persist in `.motion`, play during preview, remain on the bottom track, and export with MP4. Dragging audio horizontally updates `start`.

## Timeline Tracks and Clips

```motion
track main {
  label "Main Track"
  role main
  content primary
  order 0
}

track titles {
  label "Text Overlay"
  role overlay
  content text
  hidden false
  order 1
}

import "/assets/my-project/video.mp4" as bgVideo

clip bgVideo {
  track main
  start 0s
  duration 5s
  trimIn 0s
  trimOut 0s
}

text title {
  value "Editable title"
  track titles
  start 1s
  duration 3s
}
```

Track roles are `main`, `overlay`, and `audio`. Track content records legacy/purpose metadata (`primary`, `video`, `image`, `text`, `effect`, or `audio`). Visual roles and content do not restrict editing: every visual track behaves as a simple layer, accepts any visual content, and allows gaps or overlaps. `hidden` suppresses a visual track, `muted` disables track audio, and `order` persists layer stacking. Audio remains bottom-only.

Media clips use `start`, `duration`, `trimIn`, and `trimOut`. Regular text/image/overlay/effect elements use `start` and `duration` as a non-destructive visibility window, so trimming and splitting do not rewrite authored animations. Existing numeric clip tracks remain backward compatible.

## Easing

Preferred:

- `power3.out`
- `smooth`
- `soft`
- `ease-out`
- `linear`

## Product Rule

Do not make `.motion` authoring the main user workflow. Keep it readable because it is the source of truth, but build UI controls first.
