Top Related Projects
Component infrastructure and Material Design components for Angular
The Most Complete Angular UI Component Library
Angular powered Bootstrap
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.
: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
- 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 {}
- 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('');
}
- 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:
- Install the package:
ng add @taiga-ui/cdk @taiga-ui/core @taiga-ui/kit
- 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 {}
- 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.
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.
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.
: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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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 UI | Angular | Supported | Latest version (npm) |
---|---|---|---|
4.x.y | ^16.0.0 - latest | â Current | |
3.x.y | ^12.0.0 - latest | â Long-term support (LTS) | |
2.x.y | ^9.0.0 - ^15.0.0 | â ï¸ No longer supported |
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 |
Roman Sedov |
Vladimir Potekhin |
Nikita Barsukov |
German Panov |
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
Top Related Projects
Component infrastructure and Material Design components for Angular
The Most Complete Angular UI Component Library
Angular powered Bootstrap
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.
: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)
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot