Convert Figma logo to code with AI

taiga-family logotaiga-ui

Angular UI Kit and components library for awesome people

3,181
434
3,181
182

Top Related Projects

Component infrastructure and Material Design components for Angular

10,152

The Most Complete Angular UI Component Library

Angular powered Bootstrap

6,431

Clarity is a scalable, accessible, customizable, open source design system built with web components. Works with any JavaScript framework, built for enterprises, and designed to be inclusive.

8,046

:boom: Customizable Angular UI Library based on Eva Design System :new_moon_with_face::sparkles:Dark Mode

Fast and reliable Bootstrap widgets in Angular (supports Ivy engine)

Quick Overview

Taiga UI is a powerful and customizable Angular UI kit developed by Tinkoff. It offers a comprehensive set of components and tools for building modern web applications with a focus on accessibility, performance, and flexibility. The library is designed to work seamlessly with Angular and provides a rich set of features for creating responsive and visually appealing user interfaces.

Pros

  • Extensive component library with a wide range of UI elements
  • Strong focus on accessibility and adherence to WCAG guidelines
  • Highly customizable with theming support and flexible styling options
  • Well-documented with detailed API references and examples

Cons

  • Steep learning curve for developers new to Angular or complex UI libraries
  • Limited community support compared to more established UI frameworks
  • Some components may require additional configuration for advanced use cases
  • Primarily focused on Angular, limiting its use in other frameworks or vanilla JavaScript projects

Code Examples

  1. Basic Button Component:
import {Component} from '@angular/core';
import {TuiButtonModule} from '@taiga-ui/core';

@Component({
  selector: 'app-button-example',
  template: '<button tuiButton>Click me!</button>',
  standalone: true,
  imports: [TuiButtonModule],
})
export class ButtonExampleComponent {}
  1. Input with Mask:
import {Component} from '@angular/core';
import {FormControl, ReactiveFormsModule} from '@angular/forms';
import {TuiInputModule, TuiInputPhoneModule} from '@taiga-ui/kit';

@Component({
  selector: 'app-input-example',
  template: `
    <tui-input-phone
      [formControl]="phoneControl"
      placeholder="Phone number"
    ></tui-input-phone>
  `,
  standalone: true,
  imports: [TuiInputModule, TuiInputPhoneModule, ReactiveFormsModule],
})
export class InputExampleComponent {
  phoneControl = new FormControl('');
}
  1. Dialog Service:
import {Component, inject} from '@angular/core';
import {TuiDialogService} from '@taiga-ui/core';

@Component({
  selector: 'app-dialog-example',
  template: '<button (click)="showDialog()">Open Dialog</button>',
})
export class DialogExampleComponent {
  private readonly dialogService = inject(TuiDialogService);

  showDialog(): void {
    this.dialogService.open('Hello, World!').subscribe();
  }
}

Getting Started

To get started with Taiga UI, follow these steps:

  1. Install the package:
ng add @taiga-ui/cdk @taiga-ui/core @taiga-ui/kit
  1. Import the necessary modules in your app.module.ts:
import {TuiRootModule, TuiDialogModule, TuiAlertModule} from '@taiga-ui/core';

@NgModule({
  imports: [
    // ...
    TuiRootModule,
    TuiDialogModule,
    TuiAlertModule,
  ],
  // ...
})
export class AppModule {}
  1. Wrap your app component with tui-root:
<tui-root>
  <router-outlet></router-outlet>
</tui-root>

Now you can start using Taiga UI components in your Angular application!

Competitor Comparisons

Component infrastructure and Material Design components for Angular

Pros of Angular Components

  • Extensive ecosystem and community support
  • Comprehensive documentation and examples
  • Tight integration with Angular framework

Cons of Angular Components

  • Steeper learning curve for beginners
  • Larger bundle size compared to Taiga UI
  • Less flexibility in customization

Code Comparison

Angular Components:

import { MatButtonModule } from '@angular/material/button';

@NgModule({
  imports: [MatButtonModule],
  // ...
})
export class AppModule { }

Taiga UI:

import { TuiButtonModule } from '@taiga-ui/core';

@NgModule({
  imports: [TuiButtonModule],
  // ...
})
export class AppModule { }

Both libraries offer similar module-based imports, but Taiga UI generally provides a more streamlined API. Angular Components often require additional configuration steps, while Taiga UI aims for a more straightforward setup process.

Angular Components is a mature and widely-adopted library, benefiting from extensive community support and integration with the Angular ecosystem. However, it can be more complex for newcomers and may result in larger bundle sizes.

Taiga UI, on the other hand, focuses on simplicity and customization, making it easier for developers to create unique designs. It may have a smaller community, but offers a more lightweight alternative with a gentler learning curve.

10,152

The Most Complete Angular UI Component Library

Pros of PrimeNG

  • Larger community and ecosystem, with more extensive documentation and examples
  • Wider range of components and features out-of-the-box
  • Longer history and established reputation in the Angular community

Cons of PrimeNG

  • Steeper learning curve due to the extensive API and configuration options
  • Larger bundle size, which may impact initial load times
  • Some components may feel less modern or customizable compared to Taiga UI

Code Comparison

PrimeNG:

<p-table [value]="products">
    <ng-template pTemplate="header">
        <tr>
            <th>Name</th>
            <th>Price</th>
        </tr>
    </ng-template>
    <ng-template pTemplate="body" let-product>
        <tr>
            <td>{{product.name}}</td>
            <td>{{product.price}}</td>
        </tr>
    </ng-template>
</p-table>

Taiga UI:

<tui-table [columns]="columns" [data]="products">
    <ng-template tuiHead let-column>
        {{column}}
    </ng-template>
    <ng-template tuiCell let-product>
        {{product[column]}}
    </ng-template>
</tui-table>

Both libraries offer component-based approaches for creating tables, but PrimeNG's syntax is more verbose and template-driven, while Taiga UI's approach is more concise and data-driven.

Angular powered Bootstrap

Pros of ng-bootstrap

  • Longer history and larger community support
  • Closer integration with Bootstrap's design principles
  • More comprehensive documentation and examples

Cons of ng-bootstrap

  • Limited customization options compared to Taiga UI
  • Slower release cycle and feature updates
  • Heavier dependency on Bootstrap CSS

Code Comparison

ng-bootstrap:

import { NgbModule } from '@ng-bootstrap/ng-bootstrap';

@NgModule({
  imports: [NgbModule],
  // ...
})
export class AppModule { }

Taiga UI:

import { TuiRootModule } from '@taiga-ui/core';

@NgModule({
  imports: [TuiRootModule],
  // ...
})
export class AppModule { }

Both libraries offer modular imports, but Taiga UI provides a more granular approach to importing components and modules. ng-bootstrap typically requires importing the entire NgbModule, while Taiga UI allows for more selective imports, potentially reducing bundle size.

ng-bootstrap follows Bootstrap's design patterns more closely, making it easier for developers familiar with Bootstrap to adopt. However, Taiga UI offers more flexibility in terms of customization and theming, allowing for a unique look and feel.

Overall, ng-bootstrap is a solid choice for projects that want to stick close to Bootstrap's design, while Taiga UI offers more modern and customizable components with a focus on performance and flexibility.

6,431

Clarity is a scalable, accessible, customizable, open source design system built with web components. Works with any JavaScript framework, built for enterprises, and designed to be inclusive.

Pros of Clarity

  • More mature and established project with a larger community and ecosystem
  • Comprehensive documentation and extensive component library
  • Strong enterprise support and integration with VMware products

Cons of Clarity

  • Heavier and potentially slower performance compared to Taiga UI
  • Less flexible customization options for individual components
  • Steeper learning curve for developers new to the framework

Code Comparison

Clarity (Angular):

import { ClarityModule } from '@clr/angular';

@NgModule({
  imports: [ClarityModule],
  // ...
})
export class AppModule { }

Taiga UI (Angular):

import { TuiRootModule } from '@taiga-ui/core';

@NgModule({
  imports: [TuiRootModule],
  // ...
})
export class AppModule { }

Both frameworks offer modular imports, but Taiga UI generally requires fewer imports for basic functionality. Clarity's approach may lead to larger bundle sizes if not carefully managed.

Clarity provides a more opinionated structure, which can be beneficial for large teams but may feel restrictive for smaller projects. Taiga UI offers more flexibility in terms of styling and customization, making it potentially more suitable for projects requiring a unique look and feel.

While Clarity has a larger set of pre-built components, Taiga UI focuses on providing a solid foundation of core components that can be easily extended and customized to fit specific needs.

8,046

:boom: Customizable Angular UI Library based on Eva Design System :new_moon_with_face::sparkles:Dark Mode

Pros of Nebular

  • More comprehensive theming system with built-in themes
  • Larger ecosystem with additional tools like Eva Design System
  • Better documentation and examples for complex use cases

Cons of Nebular

  • Steeper learning curve due to its extensive feature set
  • Heavier bundle size, which may impact performance
  • Less frequent updates and maintenance compared to Taiga UI

Code Comparison

Nebular component usage:

<nb-card>
  <nb-card-header>Header</nb-card-header>
  <nb-card-body>Body</nb-card-body>
  <nb-card-footer>Footer</nb-card-footer>
</nb-card>

Taiga UI component usage:

<tui-island>
  <h3 class="tui-island__title">Header</h3>
  <p class="tui-island__paragraph">Body</p>
  <p class="tui-island__paragraph">Footer</p>
</tui-island>

Both libraries offer a wide range of UI components for Angular applications. Nebular provides a more extensive theming system and additional tools, making it suitable for larger projects with complex design requirements. However, this comes at the cost of a steeper learning curve and potentially larger bundle sizes.

Taiga UI, on the other hand, focuses on simplicity and performance, with a lighter footprint and more frequent updates. It may be more suitable for projects that prioritize speed and ease of use over extensive customization options.

Fast and reliable Bootstrap widgets in Angular (supports Ivy engine)

Pros of ngx-bootstrap

  • More mature and established project with a larger community
  • Extensive documentation and examples
  • Wider range of components and features

Cons of ngx-bootstrap

  • Heavier bundle size compared to Taiga UI
  • Less frequent updates and slower adoption of new Angular features
  • Some components may feel outdated in terms of design and functionality

Code Comparison

ngx-bootstrap:

<button type="button" class="btn btn-primary" 
        tooltip="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
  Simple demo
</button>

Taiga UI:

<button tuiButton
        [tuiHint]="'Vivamus sagittis lacus vel augue laoreet rutrum faucibus.'">
  Simple demo
</button>

Both libraries offer similar functionality, but Taiga UI tends to use more Angular-specific syntax and custom directives, while ngx-bootstrap follows a more traditional Bootstrap-like approach. Taiga UI's code often appears more concise and integrated with Angular's features.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

taiga ui logo Taiga UI

CodeFactor npm version codecov All packages CI Deploy Downloads per month Discord Renovate GitHub commit activity (branch) Code style: prettier License

Website • Documentation • Core team • Figma

Taiga UI is fully-treeshakable Angular UI Kit consisting of multiple base libraries and several add-ons.

It is based on ng-polymorpheus dynamic content approach and uses Web APIs for Angular for required browser APIs.

Why Taiga UI

🧩 Modular and fully-treeshakable. We harnessed the power of Secondary Entry Points mechanism. You can import even just one entity from our library and be sure that there is no redundant code in your bundle

🧙 Agnostic. Our components are very flexible and are ready for any use case. But we take care of basic UX aspects to let you focus on your project features

🦋 Customizable. We use CSS custom properties for all our styling and provide easy methods to customize all UI components

🛠 Well engineered. We are not afraid to use DI to the max. All our components use OnPush, and the whole project is developed with strict TypeScript mode

📦 It's big! We have 130+ components, 100+ directives, dozens of tokens, utils and tools. And it isn't over yet 🚀

🏗 Maintained! The library started as an internal product in our company. It is used by 50+ projects in production now, and it is here to stay.

Read more about Taiga UI main features in this article on inDepth

Version compatibility

Taiga UIAngularSupportedLatest version (npm)
4.x.y^16.0.0 - latest✅ Currentnpm version
3.x.y^12.0.0 - latest✅ Long-term support (LTS)npm version
2.x.y^9.0.0 - ^15.0.0⚠️ No longer supportedv2

How to start

See our Getting started page to start working with Taiga UI

You can also use our StackBlitz starter to create a quick sample with Taiga UI

🎨 Check out Taiga UI Figma library which you can use to design your app with Taiga UI components.

Community

💡 Your ideas are very welcome in Github issues or discussions

🗨 For English live chat join #taiga-ui channel in official Angular discord

💬 For Russian live chat join taiga_ui Telegram group

Contributing

See our CONTRIBUTING.md guide. Try to make pull request online from Web IDE.

Core team

Alex Inkin
     Alex Inkin     
Roman Sedov
 Roman Sedov 
Vladimir Potekhin
Vladimir Potekhin
Nikita Barsukov
Nikita Barsukov
German Panov
German Panov
Maksim Ivanov
Maksim Ivanov

License

🆓 Feel free to use our library in your commercial and private applications

All Taiga UI packages are covered by Apache 2.0

Read more about this license here

NPM DownloadsLast 30 Days