nebular
:boom: Customizable Angular UI Library based on Eva Design System :new_moon_with_face::sparkles:Dark Mode
Top Related Projects
The Most Complete Angular UI Component Library
An enterprise-class UI design language and React UI library
🐉 Vue Component Framework
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Angular powered Bootstrap
Component infrastructure and Material Design components for Angular
Quick Overview
Nebular is a customizable Angular UI Library with a focus on beautiful design and extensive functionality. It provides a set of open-source UI components, auth and security solutions, and tools for creating responsive web applications. Nebular is built on top of Eva Design System, offering a consistent and modern look across all components.
Pros
- Extensive set of customizable UI components
- Built-in authentication and security features
- Responsive design and mobile-friendly
- Active development and community support
Cons
- Learning curve for developers new to Angular
- Some components may require additional customization for specific use cases
- Limited documentation for advanced usage scenarios
- Potential performance impact for large-scale applications
Code Examples
- Basic button usage:
import { NbButtonModule } from '@nebular/theme';
@NgModule({
imports: [
// ...
NbButtonModule,
],
})
export class YourModule { }
<button nbButton>Click me</button>
<button nbButton status="primary">Primary</button>
<button nbButton status="success">Success</button>
- Using a card component:
import { NbCardModule } from '@nebular/theme';
@NgModule({
imports: [
// ...
NbCardModule,
],
})
export class YourModule { }
<nb-card>
<nb-card-header>Card Title</nb-card-header>
<nb-card-body>
Card content
</nb-card-body>
<nb-card-footer>Card Footer</nb-card-footer>
</nb-card>
- Implementing a datepicker:
import { NbDatepickerModule } from '@nebular/theme';
@NgModule({
imports: [
// ...
NbDatepickerModule.forRoot(),
],
})
export class YourModule { }
<input nbInput placeholder="Pick Date" [nbDatepicker]="datepicker">
<nb-datepicker #datepicker></nb-datepicker>
Getting Started
- Install Nebular and its dependencies:
ng add @nebular/theme
- Import Nebular modules in your
app.module.ts
:
import { NbThemeModule, NbLayoutModule } from '@nebular/theme';
@NgModule({
imports: [
// ...
NbThemeModule.forRoot({ name: 'default' }),
NbLayoutModule,
],
})
export class AppModule { }
- Wrap your app component template with
nb-layout
:
<nb-layout>
<nb-layout-header fixed>Company Name</nb-layout-header>
<nb-layout-column>
<!-- Your app content here -->
</nb-layout-column>
</nb-layout>
Competitor Comparisons
The Most Complete Angular UI Component Library
Pros of PrimeNG
- Larger component library with over 80 UI components
- More extensive documentation and examples
- Stronger community support and more frequent updates
Cons of PrimeNG
- Steeper learning curve due to its extensive feature set
- Potentially larger bundle size when using many components
- Some components may require additional configuration
Code Comparison
Nebular button example:
<button nbButton status="primary">Primary</button>
PrimeNG button example:
<p-button label="Primary" styleClass="p-button-primary"></p-button>
Both libraries offer similar functionality for basic components, but their syntax and attribute names differ. PrimeNG often uses dedicated components (like p-button
), while Nebular tends to use directives on standard HTML elements.
Nebular focuses on providing a cohesive design system with fewer, but highly customizable components. It's particularly well-suited for projects that prioritize a consistent look and feel.
PrimeNG offers a wider range of components and is often chosen for complex enterprise applications that require diverse UI elements. Its extensive documentation and examples make it easier to implement advanced features, but this can also lead to a steeper learning curve for developers new to the library.
An enterprise-class UI design language and React UI library
Pros of Ant Design
- Larger community and ecosystem, with more components and third-party extensions
- Comprehensive documentation and extensive examples
- Better internationalization support with built-in localization for multiple languages
Cons of Ant Design
- Steeper learning curve due to its extensive feature set
- Heavier bundle size, which may impact initial load times
- Less flexibility in customizing the overall design system
Code Comparison
Ant Design (React):
import { Button } from 'antd';
const MyComponent = () => (
<Button type="primary">Click me</Button>
);
Nebular (Angular):
import { NbButtonModule } from '@nebular/theme';
@NgModule({
imports: [NbButtonModule],
})
export class MyModule { }
// In component template
<button nbButton status="primary">Click me</button>
Both libraries offer similar component-based approaches, but Ant Design is React-focused while Nebular is designed for Angular applications. Ant Design's API tends to be more prop-based, while Nebular often uses directives for styling and behavior.
Ant Design provides a more extensive set of components out-of-the-box, which can be beneficial for rapid development. However, Nebular offers a more modular approach, allowing developers to include only the components they need, potentially resulting in smaller bundle sizes for simpler applications.
🐉 Vue Component Framework
Pros of Vuetify
- Larger community and ecosystem, with more third-party components and resources
- More comprehensive documentation and examples
- Better support for mobile and responsive design out of the box
Cons of Vuetify
- Steeper learning curve due to more complex API and configuration options
- Larger bundle size, which may impact initial load times
- Less flexibility in customizing the overall look and feel without extensive overrides
Code Comparison
Vuetify component usage:
<template>
<v-app>
<v-btn color="primary">Click me</v-btn>
</v-app>
</template>
Nebular component usage:
<nb-layout>
<nb-layout-column>
<button nbButton status="primary">Click me</button>
</nb-layout-column>
</nb-layout>
Both frameworks offer a wide range of UI components and follow a similar structure for implementation. Vuetify uses the v-
prefix for its components, while Nebular uses nb-
or the nb
attribute. Vuetify's approach to theming and customization is more centralized, often using the $vuetify
object, whereas Nebular relies more on CSS variables and theme configuration files.
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Pros of Material-UI
- Larger community and ecosystem, with more extensive documentation and third-party resources
- More comprehensive component library, covering a wider range of UI elements
- Better TypeScript support and integration
Cons of Material-UI
- Steeper learning curve, especially for developers new to React
- Larger bundle size, which may impact initial load times for applications
- More opinionated design system, which can be limiting for custom designs
Code Comparison
Material-UI:
import { Button, TextField } from '@mui/material';
function MyComponent() {
return (
<>
<TextField label="Name" variant="outlined" />
<Button variant="contained" color="primary">Submit</Button>
</>
);
}
Nebular:
<nb-card>
<nb-card-body>
<input nbInput placeholder="Name">
<button nbButton status="primary">Submit</button>
</nb-card-body>
</nb-card>
Material-UI uses React components and JSX syntax, while Nebular employs Angular directives and HTML templates. Material-UI offers more customization options through props, whereas Nebular relies on predefined status attributes for styling.
Angular powered Bootstrap
Pros of ng-bootstrap
- Native Angular implementation, ensuring better integration and performance
- Smaller bundle size, leading to faster load times
- More frequent updates and active community support
Cons of ng-bootstrap
- Limited set of components compared to Nebular
- Less customizable themes and styling options
- Lacks some advanced features like auth modules or security
Code Comparison
ng-bootstrap:
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
@NgModule({
imports: [NgbModule],
// ...
})
export class AppModule { }
Nebular:
import { NbThemeModule, NbLayoutModule } from '@nebular/theme';
@NgModule({
imports: [
NbThemeModule.forRoot({ name: 'default' }),
NbLayoutModule,
// ...
],
})
export class AppModule { }
Summary
ng-bootstrap offers a lightweight, native Angular implementation of Bootstrap components with better performance and smaller bundle size. However, it has fewer components and customization options compared to Nebular. Nebular provides a more comprehensive UI kit with additional features like auth modules and security, but may have a steeper learning curve and larger bundle size. The choice between the two depends on project requirements, desired customization level, and performance considerations.
Component infrastructure and Material Design components for Angular
Pros of Components
- Official Angular Material library with extensive documentation and community support
- Wider range of components and features, including complex UI elements like data tables and tree views
- Seamless integration with Angular's ecosystem and tooling
Cons of Components
- Steeper learning curve due to its comprehensive nature
- Less flexibility in customization compared to Nebular's theme system
- Heavier bundle size, which may impact application performance
Code Comparison
Components:
import { MatButtonModule } from '@angular/material/button';
@NgModule({
imports: [MatButtonModule],
})
export class AppModule { }
Nebular:
import { NbButtonModule } from '@nebular/theme';
@NgModule({
imports: [NbButtonModule],
})
export class AppModule { }
Both libraries offer similar module-based imports, but Components uses a more granular approach with separate imports for each component category.
Summary
Components is the official Angular UI library, offering a wide range of well-documented components and tight integration with the Angular ecosystem. It's ideal for large-scale projects requiring extensive UI elements. Nebular, while less comprehensive, provides a more flexible theming system and may be easier to customize for specific design needs. The choice between the two depends on project requirements, team expertise, and desired customization level.
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
Nebular
Documentation | Stackblitz Template | Angular templates
Nebular is a customizable Angular UI Library with a focus on beautiful design and ability to adapt it to your brand easily. It comes with 4 stunning visual themes, a powerful theming engine with runtime theme switching and support of custom css properties mode. Nebular is based on Eva Design System specifications.
What's included
- 4 Visual Themes, including new Dark easily customizable to your brand
- 35+ Angular UI components with a bunch of handy settings and configurations
- Configurable options - colors, sizes, appearances, shapes, and other useful settings
- 3 Auth strategies and Security - authentication and security layer easily configurable for your API
- Powerful theming engine with custom CSS properties mode
- SVG Eva Icons support - 480+ general purpose icons
Repository state and engagement with the community
Repository is currently in a state of minimal maintenance. Our primary focus is on ensuring that the Angular version used in this project is kept up to date. Our capacity to engage in other aspects of repository management is currently limited.
We are not actively reviewing or merging pull requests, responding to or resolving issues at this time. We appreciate the effort and contributions from the community and we understand that issues are crucial for the community. But now our current focus is solely on maintaining Angular.
Quick Start
You can install Nebular with Angular CLI:
ng add @nebular/theme
Configuration will be done automatically.
If you want to have more control over setup process you can use manual setup guide.
Browser Support
Nebular supports most recent browsers. Browser support list can be found here.
Starters
- ngx-admin - 20k+ stars application based on Nebular modules with beautiful E-Commerce & IOT components, for boosting your developing process. Live Demo.
- ngx-admin-starter - clean application based on Nebular modules with a limited number of additional dependencies.
UI Bakery
Need a visual admin dashboard builder? Check out UI Bakery.
License
MIT license.
More from Akveo
- Eva Icons - 480+ beautiful Open Source icons
- Akveo templates - 10+ Ready-to-use apps templates to speed up your apps developments
How can I support the developers?
- Star our GitHub repo :star:
- Create pull requests, submit bugs, suggest new features or documentation updates :wrench:
- Read us on Medium
- Follow us on Twitter :feet:
- Like our page on Facebook :thumbsup:
From Developers
Made with :heart: by Akveo team. Follow us on Twitter to get the latest news first! We're always happy to receive your feedback!
Top Related Projects
The Most Complete Angular UI Component Library
An enterprise-class UI design language and React UI library
🐉 Vue Component Framework
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Angular powered Bootstrap
Component infrastructure and Material Design components for Angular
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