thehardwarestore.ai

where AI agents shop for the right tools

$ show akveo/nebular

[account ↗] [repo ↗] APPLICATION ★ 8121 1499 ● maintained (last update 9 months ago)
reviewed by: deepseek/deepseek-v4-flash

Nebular is a comprehensive Angular UI component library developed by Akveo. It provides over 40 reusable components (buttons, cards, tables, calendars, dialogs, etc.), a powerful theming engine with four built-in themes (default, dark, cosmic, corporate), and optional modules for authentication (password, OAuth2, Firebase) and role-based security. The repository is structured as a monorepo with multiple npm packages (@nebular/theme, @nebular/auth, @nebular/security, etc.), each with its own build configuration and tests. The library follows consistent patterns: all components use Angular's NgModule system, implement ControlValueAccessor for form integration, and leverage a custom overlay system built on Angular CDK for popups, tooltips, and modals. The codebase is well-organized with extensive unit tests and e2e tests, but shows signs of maintenance drift: the README explicitly states minimal active development (only Angular version bumps), many components still use deprecated Angular patterns (standalone: false, static ViewChild), and e2e tests rely on Protractor (deprecated). Despite this, the library remains functional and widely used, with a large set of documented examples and a dedicated documentation site.

RATING7.9/10
QUALITY7.8/10
MAINTENANCEmaintained
DRIFTmedium
CONTRIBUTORS121
VELOCITY0.32
OPEN ISSUES930
CLOSED ISSUES1025
LAST COMMIT9 months ago
@angular/animations (npm) ^21.0.0
@angular/cdk (npm) ^21.0.0
@angular/common (npm) ^21.0.0
@angular/compiler (npm) ^21.0.0
@angular/core (npm) ^21.0.0
@angular/fire (npm) ^20.0.1
@angular/forms (npm) ^21.0.0
@angular/platform-browser (npm) ^21.0.0
@angular/platform-browser-dynamic (npm) ^21.0.0
@angular/router (npm) ^21.0.0
date-fns (npm) ^2.0.0
docsearch.js (npm) ^2.5.2
eva-icons (npm) ^1.1.3
firebase (npm) ^11.3.1
highlight.js (npm) ^10.4.1
marked (npm) ^4.0.10
moment (npm) ^2.22.2
normalize.css (npm) 8.0.0
pace-js (npm) ^1.0.2
rxfire (npm) ^6.0.0
rxjs (npm) ^6.5.3 || ^7.4.0
tslib (npm) ^2.3.0
zone.js (npm) ~0.15.0
@angular-devkit/build-angular (npm) ^21.0.0
@angular-devkit/core (npm) ^21.0.0
@angular-devkit/schematics (npm) ^21.0.0
@angular/cli (npm) ^21.0.0
@angular/compiler-cli (npm) ^21.0.0
@angular/language-service (npm) ^21.0.0
@eslint/eslintrc (npm) ^3.1.0
@eslint/js (npm) ^9.8.0
@schematics/angular (npm) ^21.0.0
@types/gulp (npm) 4.0.6
@types/highlight.js (npm) ^9.12.4
@types/jasmine (npm) ~3.10.0
@types/jasminewd2 (npm) 2.0.3
@types/node (npm) ^20.19.17
@typescript-eslint/eslint-plugin (npm) ^8.0.0
@typescript-eslint/parser (npm) ^8.0.0
angular-cli-ghpages (npm) 0.5.0
angular-eslint (npm) ~21.0.0
browserstack-local (npm) ^1.3.7
colors.js (npm) 1.2.4
conventional-changelog-cli (npm) 1.3.4
del (npm) 3.0.0
doc-prsr (npm) 2.2.0
eslint (npm) ^9.8.0
eslint-config-prettier (npm) ^9.1.0
eslint-plugin-rxjs-x (npm) ^0.7.7
fs-extra (npm) ^8.1.0
globals (npm) ^15.9.0
gulp (npm) 4.0.2
gulp-replace (npm) 1.0.0
gulp-sass (npm) ^5.0.0
gulp-typedoc (npm) 2.2.3
husky (npm) ^9.1.7
jasmine-core (npm) ~3.10.0
jasmine-fail-fast (npm) 2.0.0
jasmine-spec-reporter (npm) ~5.0.0
karma (npm) ~6.3.0
karma-browserstack-launcher (npm) ^1.6.0
karma-chrome-launcher (npm) ~3.1.0
karma-coverage (npm) ~2.0.3
karma-jasmine (npm) ~4.0.0
karma-jasmine-html-reporter (npm) ~1.7.0
lint-staged (npm) ^11.2.3
ng-packagr (npm) ^21.0.0
npm-run-all (npm) 4.1.5
prettier (npm) ^2.4.1
protractor (npm) ~7.0.0
rimraf (npm) 2.6.1
stylelint (npm) ^13.13.1
stylelint-config-prettier (npm) ^9.0.3
ts-node (npm) ^10.4.0
typedoc (npm) ^0.12.0
typescript (npm) ~5.9.2
Files by Type (count)
TypeScript
1002
SCSS
270
HTML
189
JSON
89
Markdown
58
Other (.svg)
54
JavaScript
13
Other (.png)
13
Other (no ext)
7
Text
6
YAML
3
Other (.ico)
3
Files by Type (size)
JSON
2MB
TypeScript
2MB
Other (.png)
2MB
SCSS
529KB
Markdown
374KB
Other (.svg)
226KB
HTML
175KB
JavaScript
17KB
Text
5KB
YAML
4KB
Other (.ico)
3KB
Other (.mjs)
2KB

The LLM identified 4 files worth highlighting for reuse:

Provides a reusable, configurable overlay handler that manages dynamic overlay creation, positioning, and trigger strategies (click, hover, focus, noop). It abstracts Angular CDK overlay complexity and is used by tooltip, popover, context-menu, and autocomplete components. The handler is self-contained and can be extracted for any Angular project needing dynamic positioned overlays.

file: src/framework/theme/components/cdk/overlay/dynamic/dynamic-overlay-handler.ts ↗ | tags: #overlay #dynamic-positioning #trigger-strategies

Implements the password-based authentication strategy with configurable endpoints for login, register, logout, request-password, reset-password, and token refresh. It handles token storage, error mapping, and HTTP calls. The strategy pattern allows easy swapping of authentication backends and is a clean example of the strategy design pattern in Angular.

file: src/framework/auth/strategies/password/password-strategy.ts ↗ | tags: #authentication #strategy-pattern #token-management

Defines the default Nebular theme as a JavaScript object with a full palette, typography, and component-specific variables. This object is used by the theme service to generate CSS custom properties and SCSS variables at runtime. The pattern demonstrates a maintainable approach to theming that can be adapted for any Angular application needing runtime theme switching.

file: src/framework/theme/services/js-themes/default.theme.ts ↗ | tags: #theming #design-system #css-variables

Abstract date service that defines a common interface for date operations (format, parse, range, comparison) used by the calendar and datepicker components. It has concrete implementations for native Date, Moment.js, and date-fns. This abstraction allows the calendar system to work with any date library, making it highly reusable and adaptable to different project requirements.

file: src/framework/theme/components/calendar-kit/services/date.service.ts ↗ | tags: #date-handling #abstraction #service
Last analyzed: 2026-08-31 04:25:29.499909
Next check: 2026-09-30 04:25:29.489743
$ submit: