Dropdowns
Angular Bootstrap 5 Dropdown component
Toggle contextual overlays for displaying lists of links and more with the MDB dropdown plugin.
Note: Read the API tab to find all available options and advanced customization
Basic examples
Wrap the dropdown’s toggle (your button or link) and the dropdown menu within
.dropdown
and mdbDropdown
, or another element that declares
position: relative;
. Dropdowns can be triggered from <a>
or
<button>
within mdbDropdownTrigger
elements to better fit
your potential needs. The examples shown here use semantic <ul>
elements
where appropriate, but custom markup is supported.
Colors
You can do this with any button variant:
<!-- Primary -->
<div mdbDropdown class="btn-group">
<button
type="button"
class="btn btn-primary dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Action
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li>
<hr class="dropdown-divider" />
</li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Secondary -->
<div mdbDropdown class="btn-group">
<button
type="button"
class="btn btn-primary dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Action
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li>
<hr class="dropdown-divider" />
</li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Success -->
<div mdbDropdown class="btn-group">
<button
type="button"
class="btn btn-success dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Action
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li>
<hr class="dropdown-divider" />
</li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Info -->
<div mdbDropdown class="btn-group">
<button
type="button"
class="btn btn-info dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Action
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li>
<hr class="dropdown-divider" />
</li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Warning -->
<div mdbDropdown class="btn-group">
<button
type="button"
class="btn btn-warning dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Action
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li>
<hr class="dropdown-divider" />
</li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Danger -->
<div mdbDropdown class="btn-group">
<button
type="button"
class="btn btn-danger dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Action
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li>
<hr class="dropdown-divider" />
</li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Danger -->
<div mdbDropdown class="btn-group">
<button
type="button"
class="btn btn-danger dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Action
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li>
<hr class="dropdown-divider" />
</li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Dark -->
<div mdbDropdown class="btn-group">
<button
type="button"
class="btn btn-dark dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Action
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li>
<hr class="dropdown-divider" />
</li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Light -->
<div mdbDropdown class="btn-group shadow-0">
<button
type="button"
class="btn btn-light dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Action
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li>
<hr class="dropdown-divider" />
</li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Link -->
<div mdbDropdown class="btn-group shadow-0">
<button
type="button"
class="btn btn-link dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Action
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li>
<hr class="dropdown-divider" />
</li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
Sizing
Button dropdowns work with buttons of all sizes, including default and split dropdown buttons.
<!-- Large button groups (default and split) -->
<div mdbDropdown class="btn-group">
<button
class="btn btn-primary btn-lg dropdown-toggle"
type="button"
mdbDropdownToggle
aria-expanded="false"
>
Large button
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<div mdbDropdown class="btn-group">
<button class="btn btn-primary btn-lg" type="button">Large split button</button>
<button
type="button"
class="btn btn-lg btn-primary dropdown-toggle dropdown-toggle-split"
mdbDropdownToggle
aria-expanded="false"
>
<span class="visually-hidden">Toggle Dropdown</span>
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Small button groups (default and split) -->
<div mdbDropdown class="btn-group">
<button
class="btn btn-primary btn-sm dropdown-toggle"
type="button"
mdbDropdownToggle
aria-expanded="false"
>
Small button
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<div mdbDropdown class="btn-group">
<button class="btn btn-primary btn-sm" type="button">Small split button</button>
<button
type="button"
class="btn btn-sm btn-primary dropdown-toggle dropdown-toggle-split"
mdbDropdownToggle
aria-expanded="false"
>
<span class="visually-hidden">Toggle Dropdown</span>
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
Directions
Dropup
Trigger dropdown menus above elements by adding .dropup
to the parent
element.
<!-- Default dropup button -->
<div mdbDropdown class="btn-group dropup">
<button
type="button"
class="btn btn-primary dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Dropup
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Split dropup button -->
<div mdbDropdown class="btn-group dropup">
<button type="button" class="btn btn-primary">Split dropup</button>
<button
type="button"
class="btn btn-primary dropdown-toggle dropdown-toggle-split"
mdbDropdownToggle
aria-expanded="false"
>
<span class="visually-hidden">Toggle Dropdown</span>
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
Dropright
Trigger dropdown menus at the right of the elements by adding
.dropend
to the parent element.
<!-- Default dropright button -->
<div mdbDropdown class="btn-group dropend">
<button
type="button"
class="btn btn-primary dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Dropright
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Split dropright button -->
<div mdbDropdown class="btn-group dropend">
<button type="button" class="btn btn-primary">Split dropright</button>
<button
type="button"
class="btn btn-primary dropdown-toggle dropdown-toggle-split"
mdbDropdownToggle
aria-expanded="false"
>
<span class="visually-hidden">Toggle Dropright</span>
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
Dropleft
Trigger dropdown menus at the left of the elements by adding
.dropstart
to the parent element.
<!-- Default dropleft button -->
<div mdbDropdown class="btn-group dropstart">
<button
type="button"
class="btn btn-primary dropdown-toggle"
mdbDropdownToggle
aria-expanded="false"
>
Dropleft
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<!-- Split dropleft button -->
<div class="btn-group">
<div mdbDropdown class="btn-group dropstart" role="group">
<button
type="button"
class="btn btn-primary dropdown-toggle dropdown-toggle-split"
mdbDropdownToggle
aria-expanded="false"
>
<span class="visually-hidden">Toggle Dropleft</span>
</button>
<ul mdbDropdownMenu class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
<button type="button" class="btn btn-primary">Split dropleft</button>
</div>
Remove animation
To remove the fade animation on click, add
[animation]="false"
attribute to the dropdown.
<div mdbDropdown [animation]="false" class="dropdown">
<button
class="btn btn-primary dropdown-toggle"
type="button"
id="dropdownExampleAnimation"
mdbDropdownToggle
aria-expanded="false"
>
Dropdown button
</button>
<ul mdbDropdownMenu class="dropdown-menu" aria-labelledby="dropdownExampleAnimation">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
Dropdown options
Use offset
to change the location of the dropdown.
<div mdbDropdown class="dropdown me-1">
<button
type="button"
class="btn btn-primary dropdown-toggle"
id="dropdownMenuOffset"
mdbDropdownToggle
aria-expanded="false"
[offset]="10"
>
Offset
</button>
<ul mdbDropdownMenu class="dropdown-menu" aria-labelledby="dropdownMenuOffset">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
Dark variant
Add .dropdown-menu-dark
onto an existing .dropdown-menu
to match a
dark navbar.
<div mdbDropdown class="dropdown">
<button
class="btn btn-secondary dropdown-toggle"
type="button"
id="dropdownMenuButton2"
mdbDropdownToggle
aria-expanded="false"
>
Dropdown button
</button>
<ul mdbDropdownMenu class="dropdown-menu dropdown-menu-dark" aria-labelledby="dropdownMenuButton2">
<li><a class="dropdown-item active" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>
</div>
Dropdowns - API
Usage
import { MdbDropdownModule } from 'mdb-angular-ui-kit/dropdown';
…
@NgModule ({
...
imports: [MdbDropdownModule],
...
})
Options
Name | Type | Default | Description |
---|---|---|---|
offset |
number | 0 |
Offset of the dropdown relative to its target. |
animation |
boolean | true |
Turn on / off dropdown animation. |
Methods
Method | Description |
---|---|
toggle |
Toggles the dropdown menu of a given navbar or tabbed navigation. |
show |
Shows the dropdown menu of a given navbar or tabbed navigation. |
hide |
Hides the dropdown menu of a given navbar or tabbed navigation. |
<div mdbDropdown class="dropdown">
<button
class="btn btn-primary dropdown-toggle"
type="button"
id="dropdownMenuButton"
aria-expanded="false"
mdbDropdownToggle
#dropdown
>
Dropdown button
</button>
<ul mdbDropdownMenu class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
import { AfterViewInit, Component, ViewChild } from '@angular/core';
import { MdbDropdownDirective } from 'mdb-angular-ui-kit/dropdown';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
})
export class AppComponent implements AfterViewInit {
@ViewChild('dropdown') dropdown!: MdbDropdownDirective;
constructor() {}
ngAfterViewInit(): void {
setTimeout(() => {
this.dropdown.show();
}, 0);
}
}
Outputs
Name | Description |
---|---|
dropdownShow
|
Fires immediately when the show instance method is called. |
dropdownShown
|
Fired when the dropdown has been made visible to the user and CSS transitions have completed. |
dropdownHide
|
Fires immediately when the hide instance method has been called. |
dropdownHidden
|
Fired when the dropdown has finished being hidden from the user and CSS transitions have completed. |