A web-based typography animation tool for creating variable font animations with OpenType feature control.
Try the app live at: https://yanone.github.io/fontanimation
Most video editors don't expose variable font settings and OpenType features to users, making it impossible to create sophisticated typography animations directly within video editing software. This tool fills that gap by providing a dedicated environment for creating text animations that leverage the full power of modern typography and render them into a video file to be used in video editing.
Since videos don’t support alpha channels, you would choose a certain background color and make that disappear in video production.
Font Animation Studio allows you to:
- Animate Variable Fonts: Create smooth transitions between different font variations (weight, width, slant, optical size, etc.)
- Control OpenType Features: Toggle and animate advanced typography features like ligatures, alternates, small caps, and more
- Timeline-Based Animation: Use a professional timeline interface with keyframes for precise animation control
- Export for Video: Generate animations that can be imported into video editing software
- Real-Time Preview: See your animations in real-time with an interactive canvas
- Support for variable fonts with all available axes
- Full OpenType feature support (ligatures, alternates, swashes, etc.)
- Real-time font rendering with high-DPI support
- Custom text input and styling
- Keyframe-based animation system
- Bezier curve interpolation for smooth transitions
- Timeline scrubbing and playback controls
- Frame-by-frame navigation
- Modern, dark-themed UI optimized for creative work
- Material Design icons and components
- Responsive layout for different screen sizes
- Keyboard shortcuts for efficient workflow
- High-quality animation export
- Multiple format support
- Customizable canvas dimensions and frame rates
- Open the app in a modern web browser
- Upload your variable font files using the upload button
- Create text objects on the canvas using the Text Tool
- Adjust typography settings and OpenType features
- Set keyframes on the timeline to create animations
- Export your animation for use in video projects
| Shortcut | Action |
|---|---|
Enter |
Play/Pause animation |
←/→ |
Navigate frame by frame |
Shift+←/→ |
Jump 10 frames |
Cmd+←/→ |
Jump to first/last frame |
Alt+←/→ |
Jump to next/previous keyframe of selected object |
| Shortcut | Action |
|---|---|
Space |
Hand tool (temporary) |
H |
Hand tool |
T |
Text tool |
V |
Select tool |
Z |
Zoom tool |
| Shortcut | Action |
|---|---|
Cmd+D |
Duplicate selected object |
Alt+Drag |
Duplicate while moving |
Delete |
Delete selected object |
| Shortcut | Action |
|---|---|
Cmd+Plus |
Zoom in |
Cmd+Minus |
Zoom out |
Cmd+0 |
Reset zoom to 100% |
| Shortcut | Action |
|---|---|
Cmd+E |
Export video |
Cmd+Z |
Undo |
Cmd+Shift+Z |
Redo |
Escape |
Unselect objects, exit text fields, close modals |
For the smoothest possible animations, create your canvas at 2x or 4x your intended final size (limited to 4K resolution), then downsample in your video editor.
Why this works:
- Font outlines are rasterized to the nearest pixel during rendering
- This can cause subtle jumping or stepping artifacts during animation
- Higher resolution rendering provides more precision for smoother curves
- Downsampling in post-production smooths out pixel-level variations
Example workflow:
- For 1080p final output → Use 2160p (2x) or 4320p (4x) canvas size
- For 720p final output → Use 1440p (2x) or 2880p (4x) canvas size
- Export at the higher resolution, then scale down in your video editor
This technique is especially important for:
- Small text sizes
- Thin font weights
- Complex variable font animations
- Animations with rapid changes in font parameters
- Modern web browser with support for:
- Variable fonts
- Canvas API
- ES6+ JavaScript features
- CSS Grid and Flexbox
To run this locally:
git clone https://github.com/yanone/fontanimation.git
cd fontanimation
python3 -m http.server 8000Then open http://localhost:8000 in your browser.
Note: Files must be served over HTTP (not file://) due to browser security requirements for font loading and export features.
Built with vanilla JavaScript, HTML5 Canvas, and modern CSS. No external dependencies required - runs entirely in the browser for maximum compatibility and performance.
Created to bridge the gap between advanced typography and video production workflows.