Set up FlyonUI with Angular using Tailwind CSS

Integrate FlyonUI with Angular and Tailwind CSS to create a modern, responsive UI, streamlining your development process efficiently.

https://cdn.flyonui.com/fy-assets/icons/angular-icon.png
Angular logo

Quick Angular setup

A JavaScript framework for dynamic web applications. If you haven't set up Tailwind CSS yet, check out Angular Tailwind CSS installation guides.

FlyonUI + Angular Explore playground demo on StackBlitz
  • 1
    Install FlyonUI

    Install flyonui via npm.

    npm i flyonui

  • 2
    Configure FlyonUI JavaScript paths

    Add the path to FlyonUI JavaScript files in your tailwind.config.js file.

    // tailwind.config.js
    module.exports = {
      content: [
        './node_modules/flyonui/dist/js/*.js',
      ],
      plugins: [
        require('flyonui'), 
        require('flyonui/plugin')
      ],
    }

  • 3
    Add the FlyonUI JavaScript

    Include FlyonUI JavaScript to the root_directory/angular.json file.

    {
      ...
      "projects": {
        "angular": {
          ...
          "architect": {
            "build": {
              ...
              "options": {
                ...
                "scripts": [
                  "node_modules/flyonui/flyonui.js"
                ],
                ...
              }
              ...
            }
            ...
          }
          ...
        }
        ...
      }
      ...
    }

  • 4
    Add a reinitialization helper

    Add code that reinitializes the components every time the page is refreshed to your app. root_directory/src/app/app.component.ts.

    ...
    import { Router, Event, NavigationEnd } from '@angular/router';
    
    import { IStaticMethods } from 'flyonui/flyonui';
    declare global {
      interface Window {
        HSStaticMethods: IStaticMethods;
      }
    }
    
    @Component({
      ...
    })
    
    export class AppComponent {
      constructor(private router: Router) {
        ...
      }
    
      ngOnInit() {
        this.router.events.subscribe((event: Event) => {
          if (event instanceof NavigationEnd) {
            setTimeout(() => {
              window.HSStaticMethods.autoInit();
            }, 100);
          }
        });
      }
    }