Angular Bootstrap buttons
Use MDB’s custom button styles for actions in forms, dialogs, and more. Includes support for a handful of contextual variations, sizes, states, and more.
All the visually attractive and highly functional buttons we provided you with are fully customizable and easily adjustable to your needs.
Each of them contains characteristic Material Design elements, such as shadows, living colors, subtle animation on hovering, or charming waves effect triggered by clicking.
Basic buttons
MDB includes 7 predefined button styles, each serving its own semantic purpose.
mdbWavesEffect is responsible for emitting material waves effect on components. Read more about waves .
mdbRippleRadius is deprecated. Instead of it, please use
mdbWavesEffect
.
<button mdbBtn type="button" color="primary" class="waves-light" mdbWavesEffect>Primary</button>
<button mdbBtn type="button" color="default" class="waves-light" mdbWavesEffect>Default</button>
<button mdbBtn type="button" color="secondary" class="waves-light" mdbWavesEffect>Secondary</button>
<button mdbBtn type="button" color="success" class="waves-light" mdbWavesEffect>Success</button>
<button mdbBtn type="button" color="info" class="waves-light" mdbWavesEffect>Info</button>
<button mdbBtn type="button" color="warning" class="waves-light" mdbWavesEffect>Warning</button>
<button mdbBtn type="button" color="danger" class="waves-light" mdbWavesEffect>Danger</button>
Conveying meaning to assistive technologies
Using color to add meaning to a button only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (the visible text of the button), or is included through alternative means, such as additional text hidden with the
.sr-only
class.
Additional buttons
<button mdbBtn type="button" color="elegant" class="waves-light" mdbWavesEffect>Elegant</button>
<button mdbBtn type="button" color="unique" class="waves-light" mdbWavesEffect>Unique</button>
<button mdbBtn type="button" color="pink" class="waves-light" mdbWavesEffect>Pink</button>
<button mdbBtn type="button" color="purple" class="waves-light" mdbWavesEffect>Purple</button>
<button mdbBtn type="button" color="deep-purple" class="waves-light" mdbWavesEffect>Deep-Purple</button>
<button mdbBtn type="button" color="indigo" class="waves-light" mdbWavesEffect>Indigo</button>
<button mdbBtn type="button" color="light-blue" class="waves-light" mdbWavesEffect>Light-blue</button>
<button mdbBtn type="button" color="cyan" class="waves-light" mdbWavesEffect>Cyan</button>
<button mdbBtn type="button" color="dark-green" class="waves-light" mdbWavesEffect>Dark-Green</button>
<button mdbBtn type="button" color="light-green" class="waves-light" mdbWavesEffect>Light-green</button>
<button mdbBtn type="button" color="yellow" class="waves-light" mdbWavesEffect>Yellow</button>
<button mdbBtn type="button" color="amber" class="waves-light" mdbWavesEffect>Amber</button>
<button mdbBtn type="button" color="deep-orange" class="waves-light" mdbWavesEffect>Deep-Orange</button>
<button mdbBtn type="button" color="brown" class="waves-light" mdbWavesEffect>Brown</button>
<button mdbBtn type="button" color="blue-grey" class="waves-light" mdbWavesEffect>Blue-Grey</button>
<button mdbBtn type="button" color="mdb-color" class="waves-light" mdbWavesEffect>MDB</button>
Gradient buttons MDB Pro component
<button mdbBtn type="button" gradient="peach" rounded="true" class="waves-light" mdbWavesEffect>Peach</button>
<button mdbBtn type="button" gradient="purple" rounded="true" class="waves-light" mdbWavesEffect>Purple</button>
<button mdbBtn type="button" gradient="blue" rounded="true" class="waves-light" mdbWavesEffect>Blue</button>
<button mdbBtn type="button" gradient="aqua" rounded="true" class="waves-light" mdbWavesEffect>Aqua</button>
Outline buttons
In need of a button, but not the hefty background colors they bring? Replace the default modifier classes with the
.btn-outline-*
ones to remove all background images and colors on any button.
<button mdbBtn type="button" color="primary" outline="true" mdbWavesEffect>Primary</button>
<button mdbBtn type="button" color="default" outline="true" mdbWavesEffect>Default</button>
<button mdbBtn type="button" color="secondary" outline="true" mdbWavesEffect>Secondary</button>
<button mdbBtn type="button" color="success" outline="true" cmdbWavesEffect>Success</button>
<button mdbBtn type="button" color="info" outline="true" mdbWavesEffect>Info</button>
<button mdbBtn type="button" color="warning" outline="true" mdbWavesEffect>Warning</button>
<button mdbBtn type="button" color="danger" outline="true" mdbWavesEffect>Danger</button>
Waves effect with outline buttons
MDB automatically adds waves effect to each element with
.btn
class. However, in outline buttons, it's barely visible due to lack of background.That's why to outline buttons we add additional class
.waves-effect
to make waves darker and more intense.
Rounded buttons MDB Pro component
<button mdbBtn type="button" color="primary" rounded="true" class="waves-light" mdbWavesEffect>Primary</button>
<button mdbBtn type="button" color="default" rounded="true" class="waves-light" mdbWavesEffect>Default</button>
<button mdbBtn type="button" color="secondary" rounded="true" class="waves-light" mdbWavesEffect>Secondary</button>
<button mdbBtn type="button" color="success" rounded="true" class="waves-light" mdbWavesEffect>Success</button>
<button mdbBtn type="button" color="info" rounded="true" class="waves-light" mdbWavesEffect>Info</button>
<button mdbBtn type="button" color="warning" rounded="true" class="waves-light" mdbWavesEffect>Warning</button>
<button mdbBtn type="button" color="danger" rounded="true" class="waves-light" mdbWavesEffect>Danger</button>
Rounded outline buttons MDB Pro component
<button mdbBtn type="button" color="primary" rounded="true" outline="true" mdbWavesEffect>Primary</button>
<button mdbBtn type="button" color="default" rounded="true" outline="true" mdbWavesEffect>Default</button>
<button mdbBtn type="button" color="secondary" rounded="true" outline="true" mdbWavesEffect>Secondary</button>
<button mdbBtn type="button" color="success" rounded="true" outline="true" cmdbWavesEffect>Success</button>
<button mdbBtn type="button" color="info" rounded="true" outline="true" mdbWavesEffect>Info</button>
<button mdbBtn type="button" color="warning" rounded="true" outline="true" mdbWavesEffect>Warning</button>
<button mdbBtn type="button" color="danger" rounded="true" outline="true" mdbWavesEffect>Danger</button>
Floating buttons MDB Pro component
<a mdbBtn floating="true" size="lg" gradient="purple" mdbWavesEffect><mdb-icon icon="bolt"></mdb-icon></a>
<a mdbBtn floating="true" gradient="peach" mdbWavesEffect><mdb-icon icon="leaf"></mdb-icon></a>
<a mdbBtn floating="true" size="sm" gradient="blue" mdbWavesEffect><mdb-icon icon="star"></mdb-icon></a>
See the full list of available icons and colors for your buttons.
Fixed buttons MDB Pro component
See the live example of fixed button in the bottom right corner of this page.
Active on click
<div class="fixed-action-btn" style="bottom: 45px; right: 24px;">
<a class="btn-floating btn-large red waves-light" mdbWavesEffect (click)="fixed.toggle($event)">
<i class="fa fa-pencil"></i>
</a>
<div class="fixed_collapse" [mdbCollapse]="isCollapsed" #fixed="bs-collapse">
<a class="btn-floating red waves-light" mdbWavesEffect><i class="fa fa-star"></i></a>
<a class="btn-floating yellow darken-1 waves-light" mdbWavesEffect><i class="fa fa-user"></i></a>
<a class="btn-floating green waves-light" mdbWavesEffect><i class="fa fa-envelope"></i></a>
<a class="btn-floating blue waves-light" mdbWavesEffect><i class="fa fa-shopping-cart"></i></a>
</div>
</div>
Active on hover
Replace
(click)="fixed.toggle()"
with
(mouseenter)="fixed.toggle()"
in the
<a>
tag and add
(mouseleave)="fixed.toggle()"
to the main
<div>
tag.
<div class="fixed-action-btn" style="bottom: 45px; right: 24px;" (mouseleave)="fixed.toggle()">
<a class="btn-floating btn-large red waves-light" mdbWavesEffect (mouseenter)="fixed.toggle()">
<i class="fa fa-pencil"></i>
</a>
...
</div>
Close menu after clicking on link
Add
(click)="fixed.toggle()"
to any
<a>
tag to apply event that will close the menu when user click on that link.
<div class="fixed-action-btn" style="bottom: 45px; right: 24px;">
<a class="btn-floating btn-large red waves-light" mdbWavesEffect (click)="fixed.toggle($event)">
<i class="fa fa-pencil"></i>
</a>
<div class="fixed_collapse" [mdbCollapse]="isCollapsed" #fixed="bs-collapse">
<a class="btn-floating red waves-light" mdbWavesEffect><i class="fa fa-star" (click)="fixed.toggle($event)"></i></a>
<a class="btn-floating yellow darken-1 waves-light" mdbWavesEffect><i class="fa fa-user"></i></a>
<a class="btn-floating green waves-light" mdbWavesEffect><i class="fa fa-envelope"></i></a>
<a class="btn-floating blue waves-light" mdbWavesEffect><i class="fa fa-shopping-cart"></i></a>
</div>
</div>
"Back to the top" button
"Back to the top" button is very useful with the long pages, especially on the mobile devices.
Click the button below to see the live example.
Usage
To make it work, you have to set an ID#top-section
to any element on the top of the page. More options you can find here .
<button class="btn btn-floating btn-large red waves-light" mdbPageScroll href="#top-section" mdbWavesEffect style="right:35px; bottom:35px;" [pageScrollDuration]="750">
<i class="fa fa-arrow-up"></i>
</button>
Flat button MDB Pro component
<button mdbBtn type="button" flat="true" size="lg" mdbWavesEffect>Click me</button>
Buttons with icons
Note: To set the desired distance between icon and text use spacing utilities (for example
.ml-1
,
.mr-2
).
<button mdbBtn type="button" color="primary" mdbWavesEffect><mdb-icon icon="magic" class="mr-1"></mdb-icon>Left</button>
<button mdbBtn type="button" color="default" mdbWavesEffect>Right<mdb-icon icon="magic" class="ml-1"></mdb-icon></button>
See the full list of available icons for your buttons.
Button tags
The
.btn
classes are designed to be used with the
<button>
element. However, you can also use these classes on
<a>
elements (though some browsers may apply a slightly different rendering).
When using button classes on
<a>
elements that are used to trigger in-page functionality (like collapsing content), rather than linking
to new pages or sections within the current page, these links should be given a
role="button"
to appropriately convey their purpose to assistive technologies such as screen readers.
<a mdbBtn href="#" role="button" color="primary" mdbWavesEffect>Link</a>
<button mdbBtn type="submit" color="primary" mdbWavesEffect>Button</button>
<div class="waves-input-wrapper waves-light" mdbWavesEffect><input mdbBtn color="primary" type="button" value="Input"></div>
<div class="waves-input-wrapper waves-light" mdbWavesEffect><input mdbBtn color="primary" type="submit" value="Submit"></div>
<div class="waves-input-wrapper waves-light" mdbWavesEffect><input mdbBtn color="primary" type="reset" value="Reset"></div>
Sizes
Fancy larger or smaller buttons? Add
size="lg"
or
size="sm"
for additional sizes.
<button mdbBtn type="button" gradient="peach" size="lg" mdbWavesEffect>Large Button</button>
<button mdbBtn type="button" gradient="purple" size="lg" mdbWavesEffect>Large Button</button>
<button mdbBtn type="button" gradient="peach" size="sm" mdbWavesEffect>Small Button</button>
<button mdbBtn type="button" gradient="purple" size="sm" mdbWavesEffect>Small Button</button>
Create block level buttons—those that span the full width of a parent—by adding
block="true"
.
<button mdbBtn type="button" color="default" block="true" mdbWavesEffect>Block Button</button>
<button mdbBtn type="button" color="light-blue" block="true" mdbWavesEffect>Block Button</button>
Button states
Active state
Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active.
There’s no need to add a class to
<button>
s as they use a pseudo-class. However, you can still force the same active appearance
with
.active
(and include the
aria-pressed="true"
attribute) should you need to replicate the state programmatically.
<a mdbBtn role="button" color="primary" size="lg" mdbWavesEffect>Primary link</a>
<a mdbBtn role="button" color="default" size="lg" mdbWavesEffect>Link</a>
Disabled state
Make buttons look inactive by adding the
disabled
boolean attribute to any
<button>
element.
<button mdbBtn type="button" color="primary" size="lg" disabled mdbWavesEffect>Primary button</button>
<button mdbBtn type="button" color="default" size="lg" disabled mdbWavesEffect>Button</button>
Disabled buttons using the
<a>
element behave a bit different:
-
<a>
s don’t support thedisabled
attribute, so you must add the.disabled
class to make it visually appear disabled. - Some future-friendly styles are included to disable all
pointer-events
on anchor buttons. In browsers which support that property, you won’t see the disabled cursor at all. - Disabled buttons should include the
aria-disabled="true"
attribute to indicate the state of the element to assistive technologies.
<a mdbBtn role="button" color="primary" size="lg" class="disabled" mdbWavesEffect>Primary link</a>
<a mdbBtn role="button" color="primary" size="lg" class="disabled" mdbWavesEffect>Link</a>
Link functionality caveat
The
.disabled
class usespointer-events: none
to try to disable the link functionality of<a>
s, but that CSS property is not yet standardized. In addition, even in browsers that do supportpointer-events: none
, keyboard navigation remains unaffected, meaning that sighted keyboard users and users of assistive technologies will still be able to activate these links. So to be safe, add atabindex="-1"
attribute on these links (to prevent them from receiving keyboard focus) and use custom JavaScript to disable their functionality.
Button plugin
Do more with buttons. Control button states or create groups of buttons for more components like toolbars.
Toggle states
Add
data-toggle="button"
to toggle a button’s
active
state. If you’re pre-toggling a button, you must manually add the
.active
class
and
aria-pressed="true"
to the
<button>
.
<button mdbBtn type="button" color="primary" autocomplete="off" [(ngModel)]="singleModel" mdbCheckbox btnCheckboxTrue="1" btnCheckboxFalse="0" mdbWavesEffect>
Single toggle
</button>
Disabled state
Add a
disabled
attribute to your button to make it disabled.
<button mdbBtn type="button" color="primary" autocomplete="off" [(ngModel)]="singleModel" disabled mdbCheckbox btnCheckboxTrue="1" btnCheckboxFalse="0" mdbWavesEffect>
Single toggle
</button>
Pre-selected state
If you’re pre-toggling a button, you must manually add the
.active
class
and
aria-pressed="true"
to the
<button>
.
import { Component, ElementRef, Renderer2, AfterViewInit, ViewChild } from '@angular/core';
@Component({
selector: 'toggle-button',
templateUrl: './toggle.component.html',
styleUrls: ['./toggle.component.scss']
})
export class ToggleComponent implements AfterViewInit {
@ViewChild('button') button: ElementRef;
constructor(private el: ElementRef, private renderer: Renderer2) {}
ngAfterViewInit() {
this.renderer.addClass(this.button.nativeElement, 'active');
this.renderer.setAttribute(this.button.nativeElement, 'aria-pressed', 'true');
}
}
Checkbox and radio buttons
Bootstrap’s
.button
styles can be applied to other elements, such as
<label>
s, to provide checkbox or radio style button toggling. Add
data-toggle="buttons"
to a
.btn-group
containing those modified buttons to enable toggling in their respective styles.
The checked state for these buttons is
only updated via
click
event on the button. If you use another method to update the input—e.g., with
<input type="reset">
or by manually applying the input’s
checked
property—you’ll need to toggle
.active
on the
<label>
manually.
Note that pre-checked buttons require you to manually add the
.active
class to the input’s
<label>
.
Checkbox (multiple choice) buttons
export class AppComponent {
public checkModel: any = { left: true, middle: false, right: false };
}
Radio (single choice) buttons
export class AppComponent {
public radioModel: string = 'Left';
}
Methods
Method | Description |
---|---|
$().button('toggle')
|
Toggles push state. Gives the button the appearance that it has been activated. |
API Reference:
In order to speed up your application, you can choose to import only the modules you actually need, instead of importing the entire MDB Angular library. Remember that importing the entire library, and immediately afterwards a specific module, is bad practice, and can cause application errors.
API Reference for MDB Angular Pro Buttons:
// Only for Fixed Button
import { CollapseModule } from 'ng-uikit-pro-standard'
// For MDB Angular Pro
import { WavesModule, ButtonsModule } from 'ng-uikit-pro-standard'
// For MDB Angular Free
import { WavesModule, ButtonsModule } from 'angular-bootstrap-md'