Copy link to clipboard
Copied
Get hyped for variable type! We're excited to announce support for Variable Font Animation in After Effects! Stretch, squash, jitter and transform your text with the combined power of After Effects text animators and variable font axes. You can now animate variable font properties like Weight, Width, Slant, and more directly in the Timeline using Text Animators, edit them interactively in the Properties Panel, and drive them through the Essential Graphics Panel + Mogrts, unlocking powerful new typographic animation possibilities.
Imagine animating your text from whisper-thin to ultra-bold with buttery smooth transitions, all the characters at once or with a gradual fade from one weight to another. Or making each character dance with its own unique style. Or driving font dynamics with expressions that respond to your scene. Now stop imagining—because it’s all real.
Any axis your variable font supports can be animated with the full power of After Effects’ Text Animators.
That means full keyframe control, expression support, and up to 8 axes animated simultaneously per layer. Whether you're designing slick title sequences, expressive motion graphics, or experimental typographic art, this feature unlocks a whole new playground.
When you select a text layer with a variable font, a Variable Font Axes button appears in the Properties Panel next to the font family selector. Click this button to reveal a showing all available axes for your font with interactive controls.
Variable fonts contain multiple stylistic variations within a single font file, and now you can animate between these variations smoothly in After Effects. Access any axis available in your variable font—from standard axes like Weight and Width to custom designer-defined axes—and animate them just like any other property. You can have your type interpolate from Light and Roman to Bold and Italic, with the transition traveling across your entire text block.
Fine-tune your typography without animation:
Animate text from thin to bold for emphasis or title reveals:
Create organic, playful text animations:
Link font properties to other animation parameters:
Animate text reveals with changing font characteristics:
Apply axis animations across multiple variable fonts in one layer:
7. Essential Graphics and Motion Graphic Template Support
Drag and drop the Font Axes from the timeline into the Essential Graphics Panel:
The Variable Font Spacing property gives you control over how After Effects handles character spacing when animating Variable Font axes.
When you animate Variable Font axes (like Weight, Width, etc.), the individual characters can change width. After Effects can apply per-character tracking adjustments to compensate for these design changes. This property lets you control when and how these adjustments are applied.
The Variable Font Spacing property offers three modes:
To access the Variable Font Spacing property:
Variable font axes are added to Text Animator Properties using the addVariableFontAxis() method:
// Create a comp
var comp = app.project.items.addComp("Create Axis Comp", 1920, 1080, 1, 30, 30);
comp.openInViewer();
// Create a text layer
var textLayer = comp.layers.addText("Hello World!");
// Set the font to primary font
var textDocument = textLayer.property("Source Text").value;
textDocument.font = 'ShantellSans';
textLayer.property("Source Text").setValue(textDocument);
// Get the font object back from the text document
textDocument = textLayer.property("Source Text").value;
// Get the text property and animators group
var textProp = textLayer.property("Text");
var animators = textProp.property("Animators");
// Add a new animator
var animator = animators.addProperty("ADBE Text Animator");
var animatorProps = animator.property("ADBE Text Animator Properties");
// Add the Weight axis
var axisProp = animatorProps.addVariableFontAxis("wght");
Standard registered axes include:
Fonts may also include custom axes with 4-character uppercase tags (e.g., "INFM" for Informality).
Note: Axes must exist on the font to have any impact. These are just examples of some axis tags.
Once added, variable font axes behave like standard After Effects text animator properties:
// Set a static value
axisProp.setValue(700);
// Set keyframes
axisProp.setValueAtTime(0, 300); // Light at 0 seconds
axisProp.setValueAtTime(2, 900); // Heavy at 2 seconds
// Read values
var currentWeight = axisProp.value;
var weightAtTime = axisProp.valueAtTime(1, false);
// Check properties
var axisName = axisProp.name; // "Font Axis Weight"
var numKeyframes = axisProp.numKeys;
// Display the results
alert("Axis Name: " + axisName + "\n" +
"Current Weight: " + currentWeight + "\n" +
"Weight at time 1: " + weightAtTime + "\n" +
"Number of keyframes: " + numKeyframes);
To discover what axes a font supports:
var comp = app.project.items.addComp("Test Comp", 1920, 1080, 1, 30, 30);
comp.openInViewer();
var textLayer = comp.layers.addText("hello world");
var textDocument = textLayer.property("Source Text").value;
var fontObject = textDocument.fontObject;
if (fontObject && fontObject.designAxesData) {
var axes = fontObject.designAxesData;
var message = "Variable Font Axes (" + axes.length + " total):\n\n";
for (var i = 0; i < axes.length; i++) {
var axis = axes[i];
message += "Axis " + (i + 1) + ":\n";
message += " Tag: " + axis.tag + "\n";
message += " Name: " + axis.name + "\n";
message += " Min: " + axis.min + "\n";
message += " Max: " + axis.max + "\n";
message += " Default: " + axis.default + "\n";
if (i < axes.length - 1) {
message += "\n";
}
}
alert(message);
} else {
alert("No variable font axes found");
}
// Working with Variable Font Spacing
var moreOptions = textProp.property("More Options");
var variableFontSpacing = moreOptions.property("ADBE Text Variable Font Spacing");
// Variable Font Spacing has 3 modes:
// 1 = Adaptive - Applies per-character tracking when appropriate
// 2 = Per Character - Always applies per-character tracking
// 3 = Default – Tracking is per the default Text Animator settings
// Set to Per-Character
variableFontSpacing.setValue(2);
// Get the current mode
var currentSpacingMode = variableFontSpacing.value;
Variable font axes can be referenced in expressions using their property accessor. It will be fontAxis[4 char tag], e.g. fontAxisWght, fontAxisWdth, etc.
// Reference axis from another property
text.animator("Animator 1").property.fontAxisWght
// Link layer opacity to font weight
var weight = text.animator("Animator 1").property.fontAxisWght;
weight / 10;
// Create responsive typography – apply to Font Axis Weight
var scale = thisComp.layer("My Layer Name").transform.scale[0];
linear(scale, 50, 150, 300, 900); // Map scale to weight
The team has been testing Variable Font Animation out over the past few weeks and here's just a sample of what we've come up with. We are sure you'll find many more creative ways to use variable fonts!
We can't wait to see what you create with this powerful new typography animation feature! Share your projects and techniques in the comments below.
Official Help Links
Expression Support
Scripting Support
Copy link to clipboard
Copied
The type hype is finally ripe!
This will enable some really exciting stuff. Thanks, team!
Copy link to clipboard
Copied
Excited to try it out!
Copy link to clipboard
Copied
Ooooh! This is nice 🤩
How does it translate into Lottiefiles/HTML?
Copy link to clipboard
Copied
I think this will need an update from Lottie to read the values and translate from there. Nothing done by the AE team so far on this.
Copy link to clipboard
Copied
Amazing addition! Appreciate the detailed breakdown
Copy link to clipboard
Copied
This is exciting. Once question though, can we get a better font library in AE? Similar to the way its done in illustrator? That way we can save variable fonts to a library and not have them jumbled up with other fonts making it difficult to locate one?
Copy link to clipboard
Copied
Something we want to look at for sure. Now that the Variable Fonts have more value, getting libraries of fonts together seems more valuable.
Copy link to clipboard
Copied
Huge. I was growing tried of the old hacks and options! Hopefully we can get overlord to support and push variable fonts from figma etc!
Copy link to clipboard
Copied
I tested like 10 variable fonts in Illustrator and pushed them to AE with Overlord 2 and they all came over just fine!
Copy link to clipboard
Copied
Thats great! Will save me HOURS of typing in variable font values into script panels.
Copy link to clipboard
Copied
I'm very excited that this is finally happening!
Copy link to clipboard
Copied
When duplicating a Text Animator - motivation was to 2X the settings to overcome the allowable max values - motion is jittery. More duplicates accentuates the issue.
Copy link to clipboard
Copied
When is this released?
Copy link to clipboard
Copied
Yay thank you AE team! Look forward to trying this out, VF animations have been a big pain point, so glad it has native controls now.
Copy link to clipboard
Copied
A couple of updates in AE Beta 26.0x45:
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more