Table responsive
Bootstrap table responsive
Responsive tables allow tables to be scrolled horizontally with ease. Make any table responsive across all
viewports by
wrapping a
.table
with
.table-responsive
. Or, pick a maximum breakpoint with which to have a responsive table up to by using
.table-responsive{-sm|-md|-lg|-xl}
.
Vertical clipping/truncation
Responsive tables make use of
overflow-y: hidden
, which clips off any content that goes beyond the bottom or top edges of the table. In particular, this can clip off dropdown menus and other third-party widgets.
Always responsive
Across every breakpoint, use
.table-responsive
for horizontally scrolling tables.
# | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading |
---|---|---|---|---|---|---|---|---|---|
1 | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell |
2 | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell |
3 | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell |
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
<th scope="col">Heading</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
<td>Cell</td>
</tr>
</tbody>
</table>
</div>
Breakpoint specific
Use
.table-responsive{-sm|-md|-lg|-xl}
as needed to create responsive tables up to a particular
breakpoint. From that breakpoint and up, the table will behave
normally and not scroll horizontally.
# | Heading | Heading | Heading | Heading | Heading |
---|---|---|---|---|---|
1 | Cell | Cell | Cell | Cell | Cell |
2 | Cell | Cell | Cell | Cell | Cell |
3 | Cell | Cell | Cell | Cell | Cell |
# | Heading | Heading | Heading | Heading | Heading |
---|---|---|---|---|---|
1 | Cell | Cell | Cell | Cell | Cell |
2 | Cell | Cell | Cell | Cell | Cell |
3 | Cell | Cell | Cell | Cell | Cell |
# | Heading | Heading | Heading | Heading | Heading |
---|---|---|---|---|---|
1 | Cell | Cell | Cell | Cell | Cell |
2 | Cell | Cell | Cell | Cell | Cell |
3 | Cell | Cell | Cell | Cell | Cell |
# | Heading | Heading | Heading | Heading | Heading |
---|---|---|---|---|---|
1 | Cell | Cell | Cell | Cell | Cell |
2 | Cell | Cell | Cell | Cell | Cell |
3 | Cell | Cell | Cell | Cell | Cell |
<div class="table-responsive-sm">
<table class="table">
...
</table>
</div>
<div class="table-responsive-md">
<table class="table">
...
</table>
</div>
<div class="table-responsive-lg">
<table class="table">
...
</table>
</div>
<div class="table-responsive-xl">
<table class="table">
...
</table>
</div>
Bootstrap table column width
Use one of the following classes to manipulate the width of the columns.
Table columns with auto width
Add
.w-auto
class to the
table
element to set an auto width to the table column.
The width of the columns will automatically adjust to the content of the column. That means it will always take a minimum width required to present its content.
# | Name | Surname | Country | City | Position | Age |
---|---|---|---|---|---|---|
1 | Kate | Moss | USA | New York City | Web Designer | 23 |
2 | Anna | Wintour | United Kingdom | London | Frontend Developer | 36 |
3 | Tom | Bond | Spain | Madrid | Photographer | 25 |
4 | Jerry | Horwitz | Italy | Bari | Editor-in-chief | 41 |
5 | Janis | Joplin | Poland | Warsaw | Video Maker | 39 |
6 | Gary | Winogrand | Germany | Berlin | Photographer | 37 |
7 | Angie | Smith | USA | San Francisco | Teacher | 52 |
8 | John | Mattis | France | Paris | Actor | 28 |
9 | Otto | Morris | Germany | Munich | Singer | 35 |
<!--Table-->
<table class="table table-striped w-auto">
<!--Table head-->
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Surname</th>
<th>Country</th>
<th>City</th>
<th>Position</th>
<th>Age</th>
</tr>
</thead>
<!--Table head-->
<!--Table body-->
<tbody>
<tr class="table-info">
<th scope="row">1</th>
<td>Kate</td>
<td>Moss</td>
<td>USA</td>
<td>New York City</td>
<td>Web Designer</td>
<td>23</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Anna</td>
<td>Wintour</td>
<td>United Kingdom</td>
<td>London</td>
<td>Frontend Developer</td>
<td>36</td>
</tr>
<tr class="table-info">
<th scope="row">3</th>
<td>Tom</td>
<td>Bond</td>
<td>Spain</td>
<td>Madrid</td>
<td>Photographer</td>
<td>25</td>
</tr>
<tr>
<th scope="row">4</th>
<td>Jerry</td>
<td>Horwitz</td>
<td>Italy</td>
<td>Bari</td>
<td>Editor-in-chief</td>
<td>41</td>
</tr>
<tr class="table-info">
<th scope="row">5</th>
<td>Janis</td>
<td>Joplin</td>
<td>Poland</td>
<td>Warsaw</td>
<td>Video Maker</td>
<td>39</td>
</tr>
<tr>
<th scope="row">6</th>
<td>Gary</td>
<td>Winogrand</td>
<td>Germany</td>
<td>Berlin</td>
<td>Photographer</td>
<td>37</td>
</tr>
<tr class="table-info">
<th scope="row">7</th>
<td>Angie</td>
<td>Smith</td>
<td>USA</td>
<td>San Francisco</td>
<td>Teacher</td>
<td>52</td>
</tr>
<tr>
<th scope="row">8</th>
<td>John</td>
<td>Mattis</td>
<td>France</td>
<td>Paris</td>
<td>Actor</td>
<td>28</td>
</tr>
<tr class="table-info">
<th scope="row">9</th>
<td>Otto</td>
<td>Morris</td>
<td>Germany</td>
<td>Munich</td>
<td>Singer</td>
<td>35</td>
</tr>
</tbody>
<!--Table body-->
</table>
<!--Table-->
Table columns with minimal width
Use
.th-lg
or
.th-sm
class to set a minimal width of a table column.
.th-lg
class gives
9 rem
of the minimal width of the column and
.th-sm
class gives
6 rem
.
You have to add
.th-lg
or
th.sm
class to the
<th>
element within the
<thead>
.
Resize the browser window to see the effect.
.th-lg
- 9 rem minimal width of the column
# | Lorem ipsum dolor | Lorem ipsum dolor | Lorem ipsum dolor |
---|---|---|---|
1 | Lorem ipsum dolor | Lorem ipsum dolor | Lorem ipsum dolor |
2 | Lorem ipsum dolor | Lorem ipsum dolor | Lorem ipsum dolor |
3 | Lorem ipsum dolor | Lorem ipsum dolor | Lorem ipsum dolor |
<div class="table-responsive">
<!--Table-->
<table class="table">
<!--Table head-->
<thead>
<tr>
<th>#</th>
<th class="th-lg">Lorem ipsum dolor</th>
<th class="th-lg">Lorem ipsum dolor</th>
<th class="th-lg">Lorem ipsum dolor</th>
</tr>
</thead>
<!--Table head-->
<!--Table body-->
<tbody>
<tr>
<th scope="row">1</th>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
</tr>
</tbody>
<!--Table body-->
</table>
<!--Table-->
</div>
.th-sm
- 6 rem minimal width of the column
# | Lorem ipsum dolor | Lorem ipsum dolor | Lorem ipsum dolor |
---|---|---|---|
1 | Lorem ipsum dolor | Lorem ipsum dolor | Lorem ipsum dolor |
2 | Lorem ipsum dolor | Lorem ipsum dolor | Lorem ipsum dolor |
3 | Lorem ipsum dolor | Lorem ipsum dolor | Lorem ipsum dolor |
<div class="table-responsive">
<!--Table-->
<table class="table">
<!--Table head-->
<thead>
<tr>
<th>#</th>
<th class="th-sm">Lorem ipsum dolor</th>
<th class="th-sm">Lorem ipsum dolor</th>
<th class="th-sm">Lorem ipsum dolor</th>
</tr>
</thead>
<!--Table head-->
<!--Table body-->
<tbody>
<tr>
<th scope="row">1</th>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
</tr>
</tbody>
<!--Table body-->
</table>
<!--Table-->
</div>
Table columns with fixed width
Add
.table-fixed
class to the
table
element to set a fixed width to the all columns of the table.
A .table-fixed
get a table a lot sturdier and more predictable with property/value in place.
When you are use .table-fixed
layout of your table is based on the first row.
# | Name | Surname | Country | City | Position | Age |
---|---|---|---|---|---|---|
4 | Jerry | Horwitz | Italy | Bari | Editor-in-chief | 41 |
5 | Janis | Joplin | Poland | Warsaw | Video Maker | 39 |
6 | Gary | Winogrand | Germany | Berlin | Photographer | 37 |
7 | Angie | Smith | USA | San Francisco | Teacher | 52 |
8 | John | Mattis | France | Paris | Actor | 28 |
9 | Otto | Morris | Germany | Munich | Singer | 35 |
<!--Table-->
<table class="table table-hover table-fixed">
<!--Table head-->
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Surname</th>
<th>Country</th>
<th>City</th>
<th>Position</th>
<th>Age</th>
</tr>
</thead>
<!--Table head-->
<!--Table body-->
<tbody>
<tr>
<th scope="row">4</th>
<td>Jerry</td>
<td>Horwitz</td>
<td>Italy</td>
<td>Bari</td>
<td>Editor-in-chief</td>
<td>41</td>
</tr>
<tr>
<th scope="row">5</th>
<td>Janis</td>
<td>Joplin</td>
<td>Poland</td>
<td>Warsaw</td>
<td>Video Maker</td>
<td>39</td>
</tr>
<tr>
<th scope="row">6</th>
<td>Gary</td>
<td>Winogrand</td>
<td>Germany</td>
<td>Berlin</td>
<td>Photographer</td>
<td>37</td>
</tr>
<tr>
<th scope="row">7</th>
<td>Angie</td>
<td>Smith</td>
<td>USA</td>
<td>San Francisco</td>
<td>Teacher</td>
<td>52</td>
</tr>
<tr>
<th scope="row">8</th>
<td>John</td>
<td>Mattis</td>
<td>France</td>
<td>Paris</td>
<td>Actor</td>
<td>28</td>
</tr>
<tr>
<th scope="row">9</th>
<td>Otto</td>
<td>Morris</td>
<td>Germany</td>
<td>Munich</td>
<td>Singer</td>
<td>35</td>
</tr>
</tbody>
<!--Table body-->
</table>
<!--Table-->
Table columns with text-nowrap
With class .text-nowrap
you can specific how white-space inside an table is handled.
Sequences of white space are preserved. Lines are broken at newline characters, at br
, and as
necessary to fill
line boxes.
If you want use a .text-nowrap
you have to use div wrapper with .table-responsive
class
because your table will be broken on small on small screens.
For example here is table with text-nowrap
class:
# | Name | Surname | Country | City | Position | Age |
---|---|---|---|---|---|---|
1 | Kate | Moss | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 23 |
2 | Anna | Wintour | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 36 |
3 | Tom | Bond | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 25 |
4 | Jerry | Horwitz | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 41 |
5 | Janis | Joplin | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 39 |
6 | Gary | Winogrand | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 37 |
7 | Angie | Smith | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 52 |
8 | John | Mattis | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 28 |
9 | Otto | Morris | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 35 |
<div class="table-responsive text-nowrap">
<!--Table-->
<table class="table table-striped">
<!--Table head-->
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Surname</th>
<th>Country</th>
<th>City</th>
<th>Position</th>
<th>Age</th>
</tr>
</thead>
<!--Table head-->
<!--Table body-->
<tbody>
<tr>
<th scope="row">1</th>
<td>Kate</td>
<td>Moss</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>23</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Anna</td>
<td>Wintour</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>36</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Tom</td>
<td>Bond</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>25</td>
</tr>
<tr>
<th scope="row">4</th>
<td>Jerry</td>
<td>Horwitz</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>41</td>
</tr>
<tr>
<th scope="row">5</th>
<td>Janis</td>
<td>Joplin</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>39</td>
</tr>
<tr>
<th scope="row">6</th>
<td>Gary</td>
<td>Winogrand</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>37</td>
</tr>
<tr>
<th scope="row">7</th>
<td>Angie</td>
<td>Smith</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>52</td>
</tr>
<tr>
<th scope="row">8</th>
<td>John</td>
<td>Mattis</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>28</td>
</tr>
<tr>
<th scope="row">9</th>
<td>Otto</td>
<td>Morris</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>35</td>
</tr>
</tbody>
<!--Table body-->
</table>
<!--Table-->
</div>
</section>
<!--Section: Live preview-->
Here is a example how the same table looks without class .text-nowrap
(only 4 first rows).
# | Name | Surname | Country | City | Position | Age |
---|---|---|---|---|---|---|
1 | Kate | Moss | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 23 |
2 | Anna | Wintour | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 36 |
4 | Jerry | Horwitz | USA / The United Kingdom / China / Russia | New York City / Warsaw / Lodz / Amsterdam / London / Chicago | Web Designer /UX designer / Ul designer / JavaScript Developer | 41 |
<div class="table-responsive">
<!--Table-->
<table class="table table-striped">
<!--Table head-->
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Surname</th>
<th>Country</th>
<th>City</th>
<th>Position</th>
<th>Age</th>
</tr>
</thead>
<!--Table head-->
<!--Table body-->
<tbody>
<tr>
<th scope="row">1</th>
<td>Kate</td>
<td>Moss</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>23</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Anna</td>
<td>Wintour</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>36</td>
</tr>
<tr>
<th scope="row">4</th>
<td>Jerry</td>
<td>Horwitz</td>
<td>USA / The United Kingdom / China / Russia </td>
<td>New York City / Warsaw / Lodz / Amsterdam / London / Chicago</td>
<td>Web Designer /UX designer / Ul designer / JavaScript Developer</td>
<td>41</td>
</tr>
</tbody>
<!--Table body-->
</table>
<!--Table-->
</div>
Getting started : download & setup
Download
All the components and features are part of MDBootstrap package.
MDBootstrap (Material Design for Bootstrap) is a free (MIT Licensed) framework combining Material Design and the newest Bootstrap 4.
Click the button below to go to Download Page, where you can download MDBootstrap package.
MDBootstrap Download MDBootstrap AboutMDB Pro
Using components and features labeled as MDB Pro component requires MDB Pro package.
Click the button below to learn more about MDBbootstrap Pro package
MDBootstrap ProTutorials
If you need additional help to start, use our "5 min Quick Start" or "Full tutorial" resources.
5 min Quick Start Full TutorialCompilation
To reduce a weight of MDBootstrap package, you can compile your own, custom package containing only components and features you need.
Map of dependencies of SCSS files in MDBootstrap:
Legend:
'-->' means 'required'
All free and pro files require files from 'core' catalog
'none' means 'this component doesn't require anything except core files'
A file wrapped by `< >` means that this file make the base component prettier but it isn't necessary for the proper working
All PRO components require 'pro/_variables.scss' file
scss/
|
|-- core/
| |
| |-- bootstrap/
| | |-- _functions.scss
| | |-- _variables.scss
| |
| |-- _colors.scss
| |-- _global.scss
| |-- _helpers.scss
| |-- _masks.scss
| |-- _mixins.scss
| |-- _typography.scss
| |-- _variables.scss
| |-- _waves.scss
|
|-- free/
| |-- _animations-basic.scss --> none
| |-- _animations-extended.scss --> _animations-basic.scss
| |-- _buttons.scss --> none
| |-- _cards.scss --> none <_buttons.scss>
| |-- _dropdowns.scss --> none <_buttons.scss>
| |-- _input-group.scss --> _forms.scss, _buttons.scss, _dropdowns.scss
| |-- _navbars.scss --> none <_buttons.scss, _forms.scss, _input-group.scss>
| |-- _pagination.scss --> none
| |-- _badges.scss --> none
| |-- _modals.scss --> _buttons.scss, _forms.scss (PRO --> _tabs.scss)
| |-- _carousels.scss --> <_buttons.scss>
| |-- _forms.scss --> none
| |-- _msc.scss --> none <_buttons.scss, _forms.scss, _cards.scss>
| |-- _footers.scss none <_buttons.scss> (PRO: )
| |-- _list-group.scss --> none
| |-- _tables.scss --> none (PRO: _material-select.scss, pro/_forms.scss, _checkbox.scss, pro/_buttons.scss, pro/_cards.scss, _pagination.scss, pro/_msc.scss)
| |-- _depreciated.scss
|
|-- pro/
| |
| |-- picker/
| | |-- _default.scss --> none
| | |-- _default-time.scss --> _default.scss, free/_forms.scss, free/_buttons.scss, pro/_buttons.scss, free/_cards.scss
| | |-- _default-date.scss --> _default.scss, free/_forms.scss
| |
| |-- sections/
| | |-- _templates.scss --> _sidenav.scss
| | |-- _social.scss --> free/_cards.scss, free/ _forms.scss, free/_buttons.scss, pro/_buttons.scss,
| | |-- _team.scss --> free/_buttons.scss, pro/_buttons.scss, free/_cards.scss, pro/_cards.scss
| | |-- _testimonials.scss --> free/_carousels.scss, pro/_carousels.scss, free/_buttons.scss, pro/_buttons.scss
| | |-- _magazine.scss --> _badges.scss
| | |-- _pricing.scss --> free/_buttons.scss, pro/_buttons.scss
| | |-- _contacts.scss --> free/_forms.scss, pro/_forms.scss, free/_buttons.scss, pro/_buttons.scss
| |
| |-- _variables.scss
| |-- _buttons.scss --> free/_buttons.scss, pro/_msc.scss, _checkbox.scss, _radio.scss
| |-- _social-buttons.scss --> free/_buttons.scss, pro/_buttons.scss
| |-- _tabs.scss --> _cards.scss
| |-- _cards.scss --> free/_cards.scss <_buttons.scss, _social-buttons.scss>
| |-- _dropdowns.scss --> free/_dropdowns.scss, free/_buttons.scss
| |-- _navbars.scss --> free/_navbars.scss (PRO: )
| |-- _scrollspy.scss --> none
| |-- _lightbox.scss --> none
| |-- _chips.scss --> none
| |-- _msc.scss --> none
| |-- _forms.scss --> none
| |-- _radio.scss --> none
| |-- _checkbox.scss --> none
| |-- _material-select.scss --> none
| |-- _switch.scss --> none
| |-- _file-input.scss --> free/_forms.scss, free/_buttons.scss
| |-- _range.scss --> none
| |-- _input-group.scss --> free/_input-group.scss and the same what free input group, _checkbox.scss, _radio.scss
| |-- _autocomplete.scss --> free/_forms.scss
| |-- _accordion.scss --> pro/_animations.scss, free/_cards.scss
| |-- _parallax.scss --> none
| |-- _sidenav.scss --> free/_forms.scss, pro/_animations.scss, sections/_templates.scss
| |-- _ecommerce.scss --> free/_cards.scss, pro/_cards.scss, free/_buttons.scss, pro/_buttons.scss, pro/_msc.scss
| |-- _carousels.scss --> free/_carousels.scss, free/_cards.scss, free/_buttons.scss
| |-- _steppers.scss --> free/_buttons.scss
| |-- _blog.scss --> none
| |-- _toasts.scss --> free/_buttons.scss
| |-- _animations.scss --> none
| |-- _charts.scss --> none
| |-- _progress.scss --> none
| |-- _scrollbar.scss --> none
| |-- _skins.scss --> none
| |-- _depreciated.scss
|
`-- _custom-skin.scss
`-- _custom-styles.scss
`-- _custom-variables.scss
`-- mdb.scss
Map of dependencies of JavaScript modules in MDBootstrap:
Legend:
'-->' means 'required'
All files require jQuery and bootstrap.js
js/
├── dist/
│ ├── buttons.js
│ ├── cards.js
│ ├── character-counter.js
│ ├── chips.js
│ ├── collapsible.js --> vendor/velocity.js
│ ├── dropdown.js --> Popper.js, jquery.easing.js
│ ├── file-input.js
│ ├── forms-free.js
│ ├── material-select.js --> dropdown.js
│ ├── mdb-autocomplete.js
│ ├── preloading.js
│ ├── range-input.js --> vendor/velocity.js
│ ├── scrolling-navbar.js
│ ├── sidenav.js --> vendor/velocity.js, vendor/hammer.js, vendor/jquery.hammer.js
│ └── smooth-scroll.js
├── _intro-mdb-pro.js
├── modules.js
├── src/
│ ├── buttons.js
│ ├── cards.js
│ ├── character-counter.js
│ ├── chips.js
│ ├── collapsible.js --> vendor/velocity.js
│ ├── dropdown.js --> Popper.js, jquery.easing.js
│ ├── file-input.js
│ ├── forms-free.js
│ ├── material-select.js --> dropdown.js
│ ├── mdb-autocomplete.js
│ ├── preloading.js
│ ├── range-input.js --> vendor/velocity.js
│ ├── scrolling-navbar.js
│ ├── sidenav.js --> vendor/velocity.js, vendor/hammer.js, vendor/jquery.hammer.js
│ └── smooth-scroll.js
└── vendor/
├── addons/
│ ├── datatables.js
│ └── datatables.min.js
├── chart.js
├── enhanced-modals.js
├── hammer.js
├── jarallax.js
├── jarallax-video.js --> vendor/jarallax.js
├── jquery.easing.js
├── jquery.easypiechart.js
├── jquery.hammer.js --> vendor/hammer.js
├── jquery.sticky.js
├── lightbox.js
├── picker-date.js --> vendor/picker.js
├── picker.js
├── picker-time.js --> vendor/picker.js
├── scrollbar.js
├── scrolling-navbar.js
├── toastr.js
├── velocity.js
├── waves.js
└── wow.js
Compilation & Customization tutorial
If you need additional help to compile your custom package, use our Compilation & Customization tutorial
Compilation & Customization tutorialIntegrations with Angular, React or Vue
Apart from standard Bootstrap integration with jQuery, MDBootstrap provides integrations with Angular, React and Vue.
About MDB Angular About MDB React About MDB Vue