What is the difference between "ng-bootstrap" and "ngx-bootstrap"?

What is the difference between ng-bootstrap and ngx-bootstrap? Are they related to each other? Or are they simply concurrent implementations?

Has someone worked with them both and can give/explain pros and cons of both?

With ng-bootstrap I mean ng-bootstrap.github and

with ngx-bootstrap I mean valor-software-ngx-bootstrap.

Both related to Angular 4 (not to AngularJS!) and Bootstrap 4.

Please note that this is not a duplicated question of difference between ngx-bootstrap and ng2 bootstrap?.


Solution 1:

ng-bootstrap and ngx-bootstrap are two different projects by two different project teams that are trying to accomplish more or less the same thing - allowing you to use Bootstrap in Angular (2+) without the use of jQuery.

They are both rebuilding the Bootstrap components using only Angular (no jQuery).The main differences are around which version of Bootstrap they support.

  • ngx-bootstrap supports Bootstrap 3 and 4.
  • ng-bootstrap supports Bootstrap 4 and requires Angular 5+.

This means that if you need to use Bootstrap version 3, then ngx-bootstrap is your only real option of the two. If you can use Bootstrap 4, then you can pick between the two projects.

The other (potentially significant) difference is the teams behind the projects. The key point to note in this regard is that the team behind ng-bootstrap was also responsible for angular-ui-bootstrap - the AngularJS (i.e. 1.x) version of the Bootstrap library.

Solution 2:

I was thinking about what to use for my project and then after comparing both the projects I think ngx-bootstrap by valor-software is a better option since it has animation built into it's modal component. Ng-bootstrap the animation is still not present, A modal popping up without a animation is a major bummer. Other reason is that Ng-bootstrap is still in beta and I was unable to use it for my production application when comparing with ngx-bootstrap which already has a release candidate version out (12.22.2017). However I wish both the projects good luck and will hopefully come up with solid solutions.

Solution 3:

2021 Update: From v8.0.0 in ng-boostrap animations are turned on by default and available on all standard bootstrap components.


I've used both ngx-bootstrap(by Valor) and ng-bootstrap(by ng-boostrap). Here are my two cents of the unique features you get from them:

ngx-bootstrap:

  1. Builtin animation support on almost everything (modals, accordion, collpase, dropdown, datepicker...)
  2. Better Modal support (nested modals, modal as a service, modal as a template)
  3. Sortable Component (with Drag&Drop Feature)

ng-bootstrap:

  1. Nav Feature (Tabset has been made deprecated)
  2. Builtin Toast component
  3. Package size is almost half times as ngx-bootstrap (Minified + Gzipped)

You can also compare between their npm download counts with npmtrends.

[Note: My answer is based current latest version i.e ngx-bootstrap v5.5.0 and ng-boostrap v6.0.0]

Solution 4:

Agree with @Dilshan. I also made the decision to choose ngx-bootstrap for our new product. After some research, I found ngx is more mature and stable for production. ng-bootstrap is under development.

A good resource for reference, CoreUI.io has a full functional CoreUI + Angular 5.x + ngx-bootstrap sample project. I actually learned ngx from this project. You can browse its live preview or download the project package.

Solution 5:

One difference is in the format used by their date picker. ng-bootstrap uses an object, but ngx-bootstrap will take a string which is way easier to use.