What is ngx-bootstrap?
ngx-bootstrap is a popular Angular library that provides Bootstrap components powered by Angular. It allows developers to use Bootstrap's UI components in their Angular applications with ease, offering a wide range of features and customization options.
What are ngx-bootstrap's main functionalities?
Alerts
The Alerts component allows you to display different types of alert messages such as success, info, warning, and danger. This is useful for providing feedback to users.
<alert type="success">Success Alert</alert>
Modals
The Modals component allows you to create and manage modal dialogs. This is useful for displaying additional information or forms without navigating away from the current page.
<button type="button" class="btn btn-primary" (click)="openModal()">Open Modal</button>
<ng-template #template>
<div class="modal-body">
<p>Modal content goes here.</p>
</div>
</ng-template>
Datepicker
The Datepicker component provides a user-friendly way to select dates. It supports various configurations and customizations to fit different use cases.
<input type="text" class="form-control" bsDatepicker>
Tabs
The Tabs component allows you to create tabbed interfaces. This is useful for organizing content into separate sections that can be easily navigated by users.
<tabset>
<tab heading="Tab 1">Content of Tab 1</tab>
<tab heading="Tab 2">Content of Tab 2</tab>
</tabset>
Tooltips
The Tooltips component provides a way to display additional information when users hover over or focus on an element. This is useful for providing contextual help or explanations.
<button type="button" class="btn btn-secondary" tooltip="Tooltip text">Hover me</button>
Other packages similar to ngx-bootstrap
ng-bootstrap
ng-bootstrap provides Bootstrap components for Angular without the need for jQuery. It offers a similar set of features to ngx-bootstrap but is designed to work seamlessly with Angular's reactive forms and other Angular-specific features.
primeng
PrimeNG is a comprehensive UI component library for Angular that includes a wide range of components such as data tables, charts, and form controls. It offers more components than ngx-bootstrap but may have a steeper learning curve.
angular-material
Angular Material is the official Material Design component library for Angular. It provides a set of high-quality, reusable UI components based on Google's Material Design guidelines. It offers a different design aesthetic compared to Bootstrap.
ngx-bootstrap
The best way to quickly integrate Bootstrap 5 Bootstrap 4 Components with Angular
Note: ngx-bootstrap for Bootstrap 3 is still available but is no longer maintained or updated.
development
Links
Table of contents
- Getting Started
- Usage & Demo
- Supporting
- Installation
- Compatibility
- Troubleshooting
- Contributing
- Credits
- License
- Valor Can Help
Getting Started
ngx-bootstrap provides Bootstrap components powered by Angular, so you don't need to include original JS components.
Check our Getting started guide if it's your
first project with Angular Bootstrap.
Usage & Demo
Bootstrap components for Angular applications, dozens of demos and API documentation could be found here:
https://valor-software.com/ngx-bootstrap/.
Supporting ngx-bootstrap
ngx-bootstrap is an Open Source (MIT Licensed) project, it's an independent project with ongoing development made possible
thanks to the support of our awesome backers.
If you also would like to show support or simply give back to Open Source community, please consider becoming a backing
sponsor of ngx-bootstrap on OpenCollective.
All donated funds are managed transparently on OpenCollective and will be used solely for compensating work and expenses
for contributors. Valor Software employees and contractors are not eligible for use of these funds.
What's in it for you? Proper recognition and exposure of your name/logo/website on our page.
Our main sponsors will be presented under this section! Be the first!
Installation
You can see the below simple example working on StackBlitz
Angular CLI way
Use the Angular CLI ng add command for updating your Angular project.
ng add ngx-bootstrap
Manual way
Install ngx-bootstrap
from npm
:
npm install ngx-bootstrap --save
Add wanted package to NgModule imports:
import { TooltipModule } from 'ngx-bootstrap/tooltip';
@NgModule({
...
imports: [TooltipModule.forRoot(),...]
...
})
Add component to your page:
<button type="button" class="btn btn-primary"
tooltip="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
Simple demo
</button>
You will need to add bootstrap css:
This can be done with the css file directly in the index.html, or alternatively through a styles import in the
angular.json
file or via styles.scss
import. However the latter two options require additionally installing bootstrap via npm.
<!--- index.html -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
<!--- index.html -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2">
Setting up the bootstrap version manually
As you may know ngx-bootstrap
supports several bootstrap.css
versions at the same time and has automatic tool
to guess current used version of library, but if this guess fails you can specify version of bootstrap.css
manually.
Sometimes, your project might contain some library that could interfere with the bootstrap framework, or you might
have a customized version of bootstrap. The consequence is that the process of determining bootstrap version might
be failed, which can break the UI. In that case, we can still set the bootstrap version manually in the bootstrapping
component (i.e. AppComponent
):
import { setTheme } from 'ngx-bootstrap/utils';
@Component({...})
export class AppComponent {
constructor() {
setTheme('bs5'); // or 'bs4'
...
}
}
How to build lib for development
First time:
git clone https://github.com/valor-software/ngx-bootstrap.git
cd ngx-bootstrap
npm ci
npm run build
npm start
Compatibility
The only two dependencies are Angular and Bootstrap CSS.
Here is the version compatibility list:
ngx-bootstrap | Angular | Bootstrap CSS |
---|
18.x.x | 18.x.x | 5.x.x or 4.x.x |
12.x.x | 17.x.x | 5.x.x or 4.x.x |
11.x.x | 16.x.x | 5.x.x or 4.x.x |
10.x.x | 15.x.x | 5.x.x or 4.x.x |
9.0.0 | 14.x.x | 5.x.x or 4.x.x or 3.x.x |
8.0.0 | 12.x.x - 13.x.x | 5.x.x or 4.x.x or 3.x.x |
7.1.0 | 11.x.x - 12.x.x | 5.x.x or 4.x.x or 3.x.x |
7.0.0 | 11.x.x - 12.x.x | 3.x.x or 4.x.x |
6.0.0 | 9.x.x - 10.x.x | 3.x.x or 4.x.x |
5.6.x | 7.x.x - 9.1.0 | 3.x.x or 4.x.x |
5.0.0 - 5.6.0 | 7.x.x - 8.x.x | 3.x.x or 4.x.x |
4.x.x | 6.x.x - 7.x.x | 3.x.x or 4.x.x |
3.x.x | 6.x.x - 7.x.x | 3.x.x or 4.x.x |
2.x.x | 2.x.x - 4.x.x | 3.x.x or 4.x.x |
1.x.x | 2.x.x | 3.x.x or 4.x.x |
Troubleshooting
So if you are in trouble, here's where you can look for help.
The best place to ask questions is on StackOverflow (under the ngx-bootstrap
tag)
where there is a strong community of individuals asking and answering questions.
You can also join our Slack channel and link your stackoverflow question there. But try to avoid asking generic help questions directly on Slack since they can easily get lost in the chat. You can also search among the existing GitHub issues.
If none of the above helped, please feel free to open a new issue.
Contribution
All contributions very welcome! And remember, contribution is not only PRs and code, but any help with docs or helping other developers to solve issues are very appreciated! Thanks in advance!
Please read our contribution guidelines.
Credits
Crossbrowser testing sponsored by Saucelabs
License
MIT
Valor Software Can Help
At Valor Software our people are not resources, our people are human beings, helping to create a better world through our efforts and knowledge.
We are here to assist you with your project. We have a wonderful, ever-growing team that is ready and able. If you're looking for someone to guide you and your team
please feel free to reach out to us on our site or at sales@valor-software.com, we would love to chat.