Create Text Animation

Learn how to create animated text effects

Create Text Animation

This tutorial will guide you through creating a text animation video from scratch.

What You'll Build

A 5-second video with animated text that:

  • Fades in smoothly
  • Slides up from below
  • Has a nice shadow effect

Complete Schema

{
  "meta": {
    "version": "2.0.0",
    "title": "Text Animation Example"
  },
  "video": {
    "width": 1920,
    "height": 1080,
    "fps": 30,
    "duration": 5,
    "background": "#1a1a2e"
  },
  "tracks": [
    {
      "id": "main",
      "type": "visual",
      "clips": [
        {
          "id": "title",
          "type": "text",
          "text": "Welcome",
          "start": 0,
          "duration": 5,
          "transform": {
            "x": "50%",
            "y": "50%",
            "anchor": "center"
          },
          "style": {
            "fontSize": 96,
            "fontWeight": 700,
            "fill": "#ffffff",
            "shadowColor": "#000000",
            "shadowBlur": 20
          },
          "animations": [
            { "type": "fadeIn", "duration": 1 },
            { "type": "slideIn", "direction": "up", "duration": 1 }
          ]
        }
      ]
    }
  ]
}

Step-by-Step Breakdown

1. Set Up Video Properties

First, define the video dimensions and duration:

{
  "video": {
    "width": 1920,
    "height": 1080,
    "fps": 30,
    "duration": 5,
    "background": "#1a1a2e"
  }
}
  • 1920x1080: Standard 1080p resolution
  • 30 fps: Standard frame rate
  • 5 seconds: Short animation
  • #1a1a2e: Dark blue background

2. Create a Track

Add a visual track to hold the text:

{
  "tracks": [
    {
      "id": "main",
      "type": "visual",
      "clips": []
    }
  ]
}

3. Add Text Clip

Create a text clip with basic properties:

{
  "id": "title",
  "type": "text",
  "text": "Welcome",
  "start": 0,
  "duration": 5
}

4. Position the Text

Use transform to center the text:

{
  "transform": {
    "x": "50%",
    "y": "50%",
    "anchor": "center"
  }
}

Using percentages makes the position responsive to video size.

5. Style the Text

Add visual styling:

{
  "style": {
    "fontSize": 96,
    "fontWeight": 700,
    "fill": "#ffffff",
    "shadowColor": "#000000",
    "shadowBlur": 20
  }
}
  • fontSize: 96: Large, prominent text
  • fontWeight: 700: Bold weight
  • fill: #ffffff: White color
  • shadowColor/Blur: Adds depth with shadow

6. Add Animations

Make the text come alive with animations:

{
  "animations": [
    { "type": "fadeIn", "duration": 1 },
    { "type": "slideIn", "direction": "up", "duration": 1 }
  ]
}

Multiple animations run simultaneously for a combined effect.

Variations

Bounce Effect

Add a bounce easing for more personality:

{
  "animations": [
    {
      "type": "zoomIn",
      "duration": 0.8,
      "easing": "easeOutBack"
    }
  ]
}

Staggered Text

Create multiple text clips with delayed animations:

{
  "clips": [
    {
      "type": "text",
      "text": "Hello",
      "start": 0,
      "duration": 3,
      "animations": [{ "type": "fadeIn", "duration": 0.5 }]
    },
    {
      "type": "text",
      "text": "World",
      "start": 0.5,
      "duration": 2.5,
      "animations": [{ "type": "fadeIn", "duration": 0.5 }]
    }
  ]
}

Try It Yourself

  1. Copy the complete schema above
  2. Go to the Editor
  3. Switch to JSON mode
  4. Paste and modify the values
  5. Download your schema

Next Steps