NashTech Insights

Creating Custom Route Animations in Angular

Alka Vats
Alka Vats
Table of Contents


Animations play a vital role in enhancing the user experience of an Angular application. While Angular provides built-in animation features, creating custom route animations allows you to add unique and tailored transition effects between routes. This blog post will explore how to create custom route animations in Angular, step-by-step, with practical examples.

If you want to learn about a new feature of angular, you can refer here.

1. Setting Up Angular Animations:

Before diving into custom route animations, let’s ensure that Angular animations are properly set up in your project. Follow these steps:

Step 1:

Import BrowserAnimationsModule: In your app.module.ts file, import the BrowserAnimationsModule module from @angular/platform-browser/animations:

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

  imports: [
    // Other module imports...
  // Other module configurations...
export class AppModule { }
Step 2:

Import and Define Animations:

Create a separate file, such as animations.ts, to define your custom animations. Import the necessary modules and define your animations using the trigger, state, style, and transition functions. For example:

import { trigger, state, style, transition, animate } from '@angular/animations';

export const customRouteAnimations = trigger('customRouteAnimations', [
  state('*', style({ position: 'relative' })),
  transition('home => about, about => home', [
    style({ position: 'relative' }),
    animate('0.5s ease-in-out', style({ opacity: 0 }))
  // Define more transitions for other routes...

2. Applying Custom Route Animations:

Now that the animation setup is complete, let’s apply the custom route animations to your routes.

Step 1:

Import and Apply Animations:

In your component file (e.g., app.component.ts), import the customRouteAnimations animation and apply it to the desired route container element using the [@...] syntax. For example:

import { customRouteAnimations } from './animations';

  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
  animations: [customRouteAnimations]
export class AppComponent {}
Step 2:

Add Animation Trigger to Route Container:

In your component’s template (e.g., app.component.html), add the animation trigger to the route container element (e.g., router-outlet) using the [@...] syntax. For example:

<router-outlet [@customRouteAnimations]="getRouteAnimationState()"></router-outlet>
Step 3:

Implement getRouteAnimationState():

In your component’s TypeScript file, define the getRouteAnimationState() method to return the appropriate animation state based on the current route. For example:

import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';
import { filter, map } from 'rxjs/operators';

export class AppComponent {
  constructor(private router: Router, private activatedRoute: ActivatedRoute) {}

  getRouteAnimationState(): string {
    const childOutlet = this.activatedRoute.firstChild?.outlet;
      filter(event => event instanceof NavigationEnd),
      map(() => childOutlet || 'root')

3. Customizing and Extending Animations:

You can customize and extend your custom route animations based on your application’s requirements.

  • Define additional animation states, styles, and transitions in the customRouteAnimations trigger to achieve more complex effects.
  • Utilize various easing functions (ease-in, ease-out, ease-in-out, etc.) and animation timings (e.g., '0.5s', '300ms') to control the animation duration and behavior.
  • Combine multiple animations, such as fading, sliding, or scaling, to create rich and engaging route transitions.


Custom route animations provide a powerful way to enhance the visual appeal and user experience of your Angular application. By following the steps outlined in this blog post, you can create custom animations, apply them to route transitions and take full control over the appearance and behavior of your application’s navigation. Experiment with different animations, styles, and transitions to create stunning and dynamic route transitions that leave a lasting impression on your users. Happy animating!

Finally, for more such posts, please follow our LinkedIn page- FrontEnd Competency.

Alka Vats

Alka Vats

Alka Vats is a Software Consultant at Nashtech. She is passionate about web development. She is recognized as a good team player, a dedicated and responsible professional, and a technology enthusiast. She is a quick learner & curious to learn new technologies. Her hobbies include reading books, watching movies, and traveling.

Leave a Comment

Your email address will not be published. Required fields are marked *

Suggested Article

%d bloggers like this: