Convert Figma logo to code with AI

DevCloudFE logong-devui

Angular UI Component Library based on DevUI Design

1,747
211
1,747
105

Top Related Projects

95,657

Deliver web apps with confidence 🚀

Angular powered Bootstrap

10,152

The Most Complete Angular UI Component Library

8,046

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

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.

An enterprise-class UI design language and React UI library

Quick Overview

ng-devui is an open-source Angular UI component library developed by DevCloud. It provides a comprehensive set of customizable and reusable components for building modern web applications. The library focuses on enterprise-level UI design and functionality, offering a rich set of features and tools for developers.

Pros

  • Extensive collection of UI components tailored for enterprise applications
  • Consistent and customizable design system
  • Regular updates and active community support
  • Comprehensive documentation and examples

Cons

  • Learning curve for developers new to Angular or complex UI libraries
  • Some components may have limited customization options
  • Potential performance impact on smaller applications due to the library's size
  • Limited third-party ecosystem compared to more established UI libraries

Code Examples

  1. Basic Button Usage:
import { ButtonModule } from 'ng-devui';

@NgModule({
  imports: [ButtonModule]
})
export class AppModule { }

// In component template
<d-button>Click me</d-button>
  1. Data Table with Pagination:
import { DataTableModule } from 'ng-devui';

@Component({
  template: `
    <d-data-table [dataSource]="dataSource" [pager]="pager">
      <d-column field="name" header="Name"></d-column>
      <d-column field="age" header="Age"></d-column>
    </d-data-table>
  `
})
export class MyComponent {
  dataSource: any[] = [
    { name: 'John', age: 30 },
    { name: 'Jane', age: 25 }
  ];
  pager = {
    total: 100,
    pageIndex: 1,
    pageSize: 10
  };
}
  1. Modal Dialog:
import { ModalModule } from 'ng-devui';

@Component({
  template: `
    <d-button (click)="openModal()">Open Modal</d-button>
    <d-modal [(visible)]="isModalVisible">
      <d-modal-header>
        <h3>Modal Title</h3>
      </d-modal-header>
      <d-modal-content>
        Modal content goes here
      </d-modal-content>
      <d-modal-footer>
        <d-button (click)="isModalVisible = false">Close</d-button>
      </d-modal-footer>
    </d-modal>
  `
})
export class MyComponent {
  isModalVisible = false;

  openModal() {
    this.isModalVisible = true;
  }
}

Getting Started

  1. Install ng-devui in your Angular project:

    npm install ng-devui
    
  2. Import the required modules in your app.module.ts:

    import { ButtonModule, DataTableModule, ModalModule } from 'ng-devui';
    
    @NgModule({
      imports: [
        ButtonModule,
        DataTableModule,
        ModalModule
      ]
    })
    export class AppModule { }
    
  3. Use ng-devui components in your templates:

    <d-button>Click me</d-button>
    
  4. Add the ng-devui styles to your angular.json:

    "styles": [
      "node_modules/ng-devui/devui.min.css"
    ]
    

Competitor Comparisons

95,657

Deliver web apps with confidence 🚀

Pros of Angular

  • Comprehensive framework with a full ecosystem
  • Backed by Google, ensuring long-term support and updates
  • Extensive documentation and large community

Cons of Angular

  • Steeper learning curve for beginners
  • Larger bundle size, potentially impacting initial load times
  • More opinionated, which can limit flexibility in some cases

Code Comparison

Angular:

@Component({
  selector: 'app-root',
  template: '<h1>{{title}}</h1>'
})
export class AppComponent {
  title = 'My Angular App';
}

ng-devui:

@Component({
  selector: 'd-button',
  template: '<button class="devui-btn">{{label}}</button>'
})
export class ButtonComponent {
  @Input() label: string;
}

Key Differences

  • Angular is a full-fledged framework, while ng-devui is a UI component library built on top of Angular
  • ng-devui focuses on providing pre-built UI components, whereas Angular offers a complete application architecture
  • Angular has a more extensive set of features for building complex applications, while ng-devui specializes in UI elements

Use Cases

  • Choose Angular for building large-scale, feature-rich applications
  • Opt for ng-devui when you need a set of ready-to-use Angular components to enhance your existing Angular project's UI

Community and Support

  • Angular has a massive community and extensive third-party resources
  • ng-devui has a smaller but growing community, focused on UI component development

Angular powered Bootstrap

Pros of ng-bootstrap

  • More mature and widely adopted in the Angular community
  • Extensive documentation and community support
  • Seamless integration with Bootstrap's CSS framework

Cons of ng-bootstrap

  • Limited customization options for component styles
  • Slower release cycle for new features and updates
  • Heavier dependency on Bootstrap's CSS, which may increase bundle size

Code Comparison

ng-bootstrap:

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

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

ng-devui:

import { DevUIModule } from 'ng-devui';

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

Both libraries offer similar module import patterns, making it easy to integrate into Angular applications. The main difference lies in the specific components and features provided by each library.

ng-bootstrap focuses on providing Angular implementations of Bootstrap components, while ng-devui offers a more comprehensive set of UI components with additional features and customization options. ng-devui also includes some enterprise-oriented components that may not be available in ng-bootstrap.

When choosing between the two, consider factors such as project requirements, desired customization level, and familiarity with Bootstrap or DevUI design systems.

10,152

The Most Complete Angular UI Component Library

Pros of PrimeNG

  • Larger community and more extensive documentation
  • Wider range of UI components and themes
  • Better integration with Angular ecosystem

Cons of PrimeNG

  • Steeper learning curve for beginners
  • Heavier bundle size due to comprehensive feature set
  • Some components may require additional configuration

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>

ng-devui:

<d-data-table [dataSource]="products">
    <d-column field="name" header="Name"></d-column>
    <d-column field="price" header="Price"></d-column>
</d-data-table>

Both libraries offer robust UI component sets for Angular applications. PrimeNG provides a more extensive collection of components and themes, making it suitable for larger, complex projects. It benefits from a larger community and more comprehensive documentation. However, this comes at the cost of a steeper learning curve and potentially larger bundle sizes.

ng-devui, while having fewer components, offers a simpler API and may be easier for beginners to adopt. Its lightweight nature could be advantageous for smaller projects or those with strict performance requirements.

The code comparison demonstrates that both libraries provide similar functionality for common components like data tables, with PrimeNG offering more customization options through templates, while ng-devui opts for a more concise syntax.

8,046

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

Pros of Nebular

  • More comprehensive UI kit with a wider range of components
  • Stronger focus on theming and customization options
  • Better documentation and examples for developers

Cons of Nebular

  • Steeper learning curve due to its complexity
  • Larger bundle size, which may impact performance
  • Less frequent updates compared to ng-devui

Code Comparison

ng-devui:

import { DevUIModule } from 'ng-devui';

@NgModule({
  imports: [DevUIModule]
})
export class AppModule { }

Nebular:

import { NbThemeModule, NbLayoutModule } from '@nebular/theme';

@NgModule({
  imports: [
    NbThemeModule.forRoot({ name: 'default' }),
    NbLayoutModule
  ]
})
export class AppModule { }

Both libraries offer Angular-based UI components, but Nebular provides a more extensive set of features and customization options. ng-devui has a simpler setup process and smaller footprint, making it easier to integrate into existing projects. Nebular's theming system is more robust, allowing for greater flexibility in design. However, this comes at the cost of increased complexity and potential performance impact. Developers should consider their project requirements and team expertise when choosing between these libraries.

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 comprehensive design system with extensive documentation
  • Larger community and wider adoption in enterprise applications
  • Better accessibility features and compliance with WCAG guidelines

Cons of Clarity

  • Steeper learning curve due to its extensive component library
  • Heavier bundle size, which may impact performance in smaller applications
  • Less frequent updates and slower release cycle

Code Comparison

ng-devui example:

import { DevUIModule } from 'ng-devui';

@NgModule({
  imports: [DevUIModule]
})
export class AppModule { }

Clarity example:

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

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

Both libraries offer similar module import patterns, making integration straightforward in Angular applications. However, Clarity's module is more comprehensive, potentially leading to larger bundle sizes if not properly tree-shaken.

ng-devui focuses on providing lightweight, customizable components, while Clarity offers a more opinionated and complete design system. The choice between the two depends on project requirements, team familiarity, and performance considerations.

An enterprise-class UI design language and React UI library

Pros of Ant Design

  • Larger community and ecosystem, with more third-party components and resources
  • More comprehensive documentation and examples
  • Wider adoption in the React ecosystem, potentially leading to better long-term support

Cons of Ant Design

  • Steeper learning curve due to its extensive feature set
  • Larger bundle size, which may impact performance in smaller applications
  • Less flexibility in customization compared to ng-devui's approach

Code Comparison

ng-devui (Angular):

import { DevUIModule } from 'ng-devui';

@NgModule({
  imports: [DevUIModule]
})
export class AppModule { }

Ant Design (React):

import { Button } from 'antd';

const App = () => (
  <Button type="primary">Click me</Button>
);

Both libraries offer a component-based approach, but ng-devui is specifically designed for Angular applications, while Ant Design is primarily used with React. The code snippets demonstrate the basic usage of each library, highlighting the different frameworks they target.

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

DevUI Logo

Github Star License
Document Document Npm Chat

DevUI for Angular

The DevUI Design Design system contains a combination of DevUI rules, Design languages, and best practices. DevUI Design allows developers to focus more on application logic, while designers focus on user experience, interactions, and processes.

Features

  • Enterprise components, supporting design specifications, font icon library
  • Out of the box

To see more in devui.design.

Angular Support

Now supports Angular ^17.0.0

Getting Started

  1. Create a new project
ng new New-Project
  1. Installation:
$ cd New-Project
$ npm i ng-devui
# font icon library
# $ npm i @devui-design/icons
  1. Usage:
import { BrowserModule } from '@angular/platform-browser';
// need for animations
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule } from '@angular/core';
import { DevUIModule } from 'ng-devui';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    DevUIModule
  ],
  bootstrap: [ AppComponent ],
})
export class AppModule { }
  1. Import devui style into angular.json file:
{
  "styles": [
    ...
    "node_modules/ng-devui/devui.min.css"
  ]
}
  1. Debugging
ng serve --open

Contribution

Please feel free to contribute code or discuss your idea!

Please make sure you read the contributing guide before making a pull request.

We appreciate all contributors who helped us build DevUI.

Support

Modern browsers and Internet Explorer 11+.

IE / Edge
IE / Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
Opera
Opera
Edgelast 2 versionslast 2 versionslast 2 versionslast 2 versions

Partner project

Who use it

CodeArts Logo

LICENSE

MIT

NPM DownloadsLast 30 Days