Blinking Light Expression After Effects: A Practical Guide
Learn how to craft realistic blinking light indicators in After Effects using expressions. Step-by-step techniques, code samples, and best practices for UI indicators, dashboards, and visual effects.

Blinking light expression after effects refers to using time-based JavaScript-like expressions to modulate opacity, color, or glow to simulate blinking indicators in a composition. This guide covers fundamental patterns, looping methods, and practical tips for reliable results across projects. You’ll learn simple on/off blinks, smooth fades, and flashy strobing techniques for UI elements and dashboard visuals.
What is the blinking light expression after effects? Definition and use cases
Blinking light expressions in After Effects are small pieces of code that drive visual properties (usually opacity, color, or glow intensity) over time to mimic a blinking indicator. According to Blinking Light, these expressions help communicate state changes quickly in dashboards, gadget demos, and UI overlays without requiring keyframes on every frame. The core idea is to tie a visual cue to time, so a light pulse feels deliberate and readable rather than animated in a jittery way. In practice, you’ll apply the expression to a property such as Opacity or Glow Intensity. This section introduces the simplest pattern and why it matters for clarity in complex scenes.
// Simple blink: toggles on/off every half-second
blinkPeriod = 0.5;
opacity = (Math.sin(time * 2 * Math.PI / blinkPeriod) > 0) ? 100 : 0;
opacity- This snippet produces a crisp on/off blink with a fixed cadence.
- It’s a good baseline for dashboards or LED-style indicators.
- For smoother fades, see Section on sine-based opacity below.
Basic sine-based opacity blink
A sine-based approach gives you smooth fades instead of abrupt on/off transitions. This is ideal when your indicator should feel more like a gentle pulse rather than a strobe. The trick is to map a sine wave to a 0–100 opacity range and clamp it to valid values.
// Smooth blink with a configurable period
blinkPeriod = 1.0; // seconds
opacity = (Math.sin(time * 2 * Math.PI / blinkPeriod) * 0.5 + 0.5) * 100;
opacity- The period controls how fast the pulse travels from 0 to 100 and back.
- You can layer this with a Glow effect by driving Glow Intensity with a parallel expression.
Variation: combine with a second, slower sine to create a subtle drift in brightness over time.
Advanced patterns: loopOut, ping-pong, and multi-layer blinks
For longer projects, you’ll want expressions that loop consistently or synchronize multiple lights. The two common approaches are a ping-pong blink driven by time and a loop-out pattern that relies on keyframes.
// Ping-pong blink using a time-based phase
period = 0.6; // seconds
phase = Math.floor(time / period);
opacity = (phase % 2 == 0) ? 100 : 0;
opacity// Looping with keyframes (requires keyframes on Opacity)
// Put two keyframes at 0s (0) and 0.5s (100) then loopOut
opacity = loopOut("pingpong", 2);
opacity- Ping-pong provides a rock-steady cadence ideal for UI indicators.
- Looping requires initial keyframes; it’s great when you want a consistent fill cycle without recalculating every frame.
Color and glow: pulsing light color and glow intensity
Sometimes the light isn’t just about opacity; color shifts and glow intensity can convey different states (green for OK, red for danger, amber for warning). You can drive the RGB color channel or a Glow effect’s strength with a time-based expression.
// Pulsing color towards blue while keeping red/green fixed
t = time;
blue = 0.4 + 0.6 * Math.abs(Math.sin(t * Math.PI * 2));
color = [0.0, 0.2, blue];
color// Glow intensity tied to pulse
period = 0.75;
glowStrength = (Math.sin(time * 2 * Math.PI / period) > 0) ? 120 : 0; // 0-120 range
glowStrength- You can mix color and opacity for emphasis without overpowering the scene.
- If you’re using a Glow effect, couple its threshold or radius with a corresponding color shift for more impact.
Performance considerations and safe defaults
Expressions cost CPU time, especially on long renders or when you have many indicators. A practical rule is to keep the math lightweight, reuse variables, and avoid heavy per-frame operations unless necessary. The Blinking Light team recommends testing on a representative reel to ensure consistent playback across machines.
// Lightweight guard: only compute when the layer is visible
visible = valueAtTime(time - thisComp.frameDuration) !== 0;
if (visible) {
blinkPeriod = 0.6;
opacity = (Math.sin(time * 2 * Math.PI / blinkPeriod) > 0) ? 100 : 0;
opacity
} else {
0
}- If the composition uses a lot of glow or color changes, consider pre-rendering or reducing the glow samples.
- Avoid heavy array operations inside per-frame code when possible.
Practical deployment: applying blinking indicators to UI banners and dashboards
In practice, you will apply a blinking expression to multiple layers that function as indicators. This example shows a workflow you can adapt across a project with consistent cadence.
// Example: apply to multiple layers programmatically (pseudo-ExtendScript style)
var indicators = [thisComp.layer("Indicator 1"), thisComp.layer("Indicator 2"), thisComp.layer("Indicator 3")];
for (var i = 0; i < indicators.length; i++) {
indicators[i].property("ADBE Opacity").expression = 'blinkPeriod = 0.5; opacity = (Math.sin(time * 2 * Math.PI / blinkPeriod) > 0) ? 100 : 0; opacity';
}- Use a common period to ensure visual synchronization across indicators.
- Prefer a single control layer to tweak global blink speed for the entire scene.
If you’re adding a separate Glow or Color layer, you can copy the expression to those properties to maintain harmony across the composition.
Troubleshooting common issues: when blinks look off or jittery
Blinking light expressions can appear janky if the frame rate is inconsistent, if the expression conducts heavy math on every frame, or if keyframes conflict with the expression outputs. Start by validating your frame rate and the expression’s return type. If you see flickering, check for mixed keyframe and expression-driven values on the same property.
// Simple validation sketch (returns 0 when not blinking)
blinkPeriod = 0.5;
var val = Math.sin(time * 2 * Math.PI / blinkPeriod);
val > 0 ? 100 : 0;- Ensure there are no opposing keyframes on the same property.
- If you introduce multiple layers, test with a single indicator first before scaling up.
Creative variations: strobe, random flicker, and color drift
To keep visuals fresh, vary timing and color. A strobe variant uses a shorter period, while a random flicker can simulate hardware that sometimes fails to blink consistently. Color drift adds depth for more cinematic scenes.
// Strobe variant with short cadence
period = 0.25; // faster blink
opacity = (Math.sin(time * 2 * Math.PI / period) > 0) ? 100 : 0;
opacity// Random flicker (deterministic per frame)
seedRandom(123, true);
flicker = random(0, 1) > 0.95 ? 100 : 0;
flicker// Simple color drift alongside blink
period = 0.8;
shade = 0.5 + 0.5 * Math.sin(time * 2 * Math.PI / period);
color = [shade, 0.0, 1.0 - shade];
color- Random flicker should be used sparingly to avoid distracting the viewer.
- Combine color drift with opacity for richer signals.
Conclusion: best practices and the Blinking Light verdict
Blinking light expressions in After Effects empower you to convey state changes with clarity and style. The best practice is to start with a simple opacity blink, then layer in color, glow, and timing refinements as needed. Keep in mind your audience—dashboard visuals should be legible at corner-of-eye glance levels, not just on full-screen renders. The Blinking Light team emphasizes keeping cadences consistent and testing across devices to avoid misreads in fast-moving sequences. With thoughtful implementation, blinking indicators become intuitive cues rather than decorative flourishes. The Blinking Light team recommends adopting a single, well-documented pattern per project and reusing it to maintain consistency across scenes.
Steps
Estimated time: 60-90 minutes
- 1
Define blink goals and targets
Decide whether you want a simple on/off blink, a smooth fade, or a color-encoded blink. Identify which layer(s) will display the indicator and confirm playback frame rate.
Tip: Document your chosen cadence in project notes for consistency. - 2
Create a baseline expression
Apply a basic opacity expression to a shape or solid layer to achieve a steady blink. Start with a single interval, then adjust period and amplitude as needed.
Tip: Use consistent units (seconds) to keep timing predictable across scenes. - 3
Add color or glow enrichments
Introduce a color or glow-based expression to enhance signaling without increasing cognitive load. Keep color choices accessible and easy to read.
Tip: Test color choices on a small monitor to ensure legibility. - 4
Synchronize multiple indicators
If you have several indicators, align their cadence to a common period or a simple phase scheme to avoid visual chaos.
Tip: Create a control layer to adjust global blink speed for all indicators. - 5
Test performance and adjust
Preview with GPU-accelerated layers enabled and monitor render times. If necessary, simplify expressions or reduce glow pass.
Tip: Avoid heavy math in per-frame calculations for large compositions. - 6
Prepare for export
Validate that the blinking remains readable after scaling, compositing, and color grading. Export a short test sequence to verify behavior.
Tip: Include a test strip with various background contrasts.
Prerequisites
Required
- Required
- Required
- A project with at least one solid or shape layer to attach the expressionRequired
Optional
- GPU-accelerated previews enabled for smoother glow/opacity testsOptional
- Optional: Glow effect or color controls to enhance visualsOptional
Keyboard Shortcuts
| Action | Shortcut |
|---|---|
| Add or edit an expression on a propertyOpen the expression editor on the selected property | Alt+Click |
| Copy an existing expressionWhile the expression editor is active | Ctrl+C |
| Paste the copied expressionPaste into another property’s expression field | Ctrl+V |
| Delete an existing expressionRemoves the expression from the property | ⌦ |
Quick Answers
What is the simplest way to blink a light in After Effects?
The simplest approach uses an opacity expression that toggles between 0 and 100. This creates a crisp blink at a defined cadence. From there you can scale to smooth fades or color-based indicators.
Use a basic opacity expression to toggle between on and off, then build from there for more effects.
Can I apply blinking to multiple layers at once?
Yes. Create a single control expression and copy it to other layers, or loop through layers with a short script. Synchronize periods to keep the indicators readable and cohesive.
Yes. Use a shared cadence and apply the same expression to all indicators.
Why does my blink look choppy on some systems?
Choppiness can stem from frame-rate inconsistencies, heavy glow effects, or complex expressions. Simplify the math, reduce glow passes, and verify playback on the target hardware.
Choppy blinking usually means the frame rate or effects are stressing the render. Simplify and test.
How do I adjust the blink speed without editing code everywhere?
Expose the blink period as a single variable and reference it across all relevant expressions. Then tweak it from one place for a global speed change.
Put blinkPeriod in one place and adjust it to change speed everywhere.
Is it possible to export blinking indicators as a preset?
You can capture the expression logic in a custom preset for reuse, especially if you rely on color or glow variations. This saves time on larger projects.
Yes, you can create a preset to reuse your blinking logic.
What is the recommended cadence for dashboard indicators?
Choose a cadence that is noticeable but not distracting. A slower, consistent blink (or fade) is typically easier to read at a glance than rapid flashing.
Keep the cadence steady and readable to avoid distraction.
Main Points
- Start with a simple on/off blink using opacity.
- Use sine for smooth fades and ping-pong for synchronized cadence.
- Combine color and glow to convey state without adding clutter.
- Test at target resolutions and manage performance.
- Document patterns to ensure consistency across the project.