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.

Check also our Social Buttons.

Basic buttons

MDB includes 7 predefined button styles, each serving its own semantic purpose.


<!-- Provides extra visual weight and identifies the primary action in a set of buttons -->
<button type="button" class="btn btn-primary" ripple-radius>Primary</button>

<!-- Indicates a dangerous or potentially negative action -->
<button type="button" class="btn btn-default" ripple-radius>Default</button>

<!-- Secondary, outline button -->
<button type="button" class="btn btn-secondary" ripple-radius>Secondary</button>

<!-- Indicates a successful or positive action -->
<button type="button" class="btn btn-success" ripple-radius>Success</button>

<!-- Contextual button for informational alert messages -->
<button type="button" class="btn btn-info" ripple-radius>Info</button>

<!-- Indicates caution should be taken with this action -->
<button type="button" class="btn btn-warning" ripple-radius>Warning</button>

<!-- Indicates a dangerous or potentially negative action -->
<button type="button" class="btn btn-danger" ripple-radius>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


<!--Elegant-->
<button type="button" class="btn btn-elegant" ripple-radius>Elegant</button>

<!--Unique-->
<button type="button" class="btn btn-unique" ripple-radius>Unique</button>

<!--Pink-->
<button type="button" class="btn btn-pink" ripple-radius>Pink</button>

<!--Purple-->
<button type="button" class="btn btn-purple" ripple-radius>Purple</button>

<!--Deep-purple-->
<button type="button" class="btn btn-deep-purple" ripple-radius>Deep-purple</button>

<!--Indigo-->
<button type="button" class="btn btn-indigo" ripple-radius>Indigo</button>

<!--Cyan-->
<button type="button" class="btn btn-cyan" ripple-radius >Cyan</button>

<!--Light-green-->
<button type="button" class="btn btn-light-green" ripple-radius>Light-green</button>

<!--Lime-->
<button type="button" class="btn btn-lime" ripple-radius>Lime</button>

<!--Yellow-->
<button type="button" class="btn btn-yellow" ripple-radius>Yellow</button>

<!--Amber-->
<button type="button" class="btn btn-amber" ripple-radius>Amber</button>

<!--Orange-->
<button type="button" class="btn btn-orange" ripple-radius>Orange</button>

<!--Deep-orange-->
<button type="button" class="btn btn-deep-orange" ripple-radius>Deep-orange</button>

<!--Brown-->
<button type="button" class="btn btn-brown" ripple-radius>Brown</button>

<!--Blue-grey-->
<button type="button" class="btn btn-blue-grey" ripple-radius>Blue-grey</button>

<!--MDB-->
<button type="button" class="btn btn-mdb" ripple-radius>MDB</button>

<!--Dark-green-->
<button type="button" class="btn btn-dark-green" ripple-radius>Dark-green</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 type="button" class="btn btn-outline-primary" ripple-radius>Primary</button>

<button type="button" class="btn btn-outline-default" ripple-radius>Default</button>

<button type="button" class="btn btn-outline-secondary" ripple-radius>Secondary</button>

<button type="button" class="btn btn-outline-success" ripple-radius>Success</button>

<button type="button" class="btn btn-outline-info" ripple-radius>Info</button>

<button type="button" class="btn btn-outline-warning" ripple-radius>Warning</button>

<button type="button" class="btn btn-outline-danger" ripple-radius>Danger</button>                                 
        

Rounded buttons Premium component

Primary Default Secondary Success Info Warning Danger

<a class="btn btn-primary btn-rounded" ripple-radius>Primary</a>

<a class="btn btn-default btn-rounded" ripple-radius>Default</a>

<a class="btn btn-secondary btn-rounded" ripple-radius>Secondary</a>

<a class="btn btn-success btn-rounded" ripple-radius>Success</a>

<a class="btn btn-info btn-rounded" ripple-radius>Info</a>

<a class="btn btn-warning btn-rounded" ripple-radius>Warning</a>

<a class="btn btn-danger btn-rounded" ripple-radius>Danger</a>
        

Rounded outline buttons Premium component

Primary Default Secondary Success Info Warning Danger

<a class="btn btn-outline-primary btn-rounded" ripple-radius>Primary</a>

<a class="btn btn-outline-default btn-rounded" ripple-radius>Default</a>

<a class="btn btn-outline-secondary btn-rounded" ripple-radius>Secondary</a>

<a class="btn btn-outline-success btn-rounded" ripple-radius>Success</a>

<a class="btn btn-outline-info btn-rounded" ripple-radius>Info</a>

<a class="btn btn-outline-warning btn-rounded" ripple-radius>Warning</a>

<a class="btn btn-outline-danger btn-rounded" ripple-radius>Danger</a>

Floating buttons Premium component


<a class="btn-floating btn-large red" ripple-radius><i class="fa fa-bolt"></i></a>

<a class="btn-floating btn-small blue" ripple-radius><i class="fa fa-star"></i></a>

See the full list of available icons and colors for your buttons.

Fixed buttons

Button in the bottom right corner


Active on click


<div class="fixed-action-btn" style="bottom: 45px; right: 24px;">

    <a class="btn-floating btn-large red" ripple-radius (click)="fixed.toggle()">
        <i class="fa fa-pencil"></i>
    </a>

    <div class="fixed_collapse" [collapse]="isCollapsed" #fixed="bs-collapse">
        <a class="btn-floating red" ripple-radius><i class="fa fa-star"></i></a>
        <a class="btn-floating yellow darken-1" ripple-radius><i class="fa fa-user"></i></a>
        <a class="btn-floating green" ripple-radius><i class="fa fa-envelope"></i></a>
        <a class="btn-floating blue" ripple-radius><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" ripple-radius (mouseenter)="fixed.toggle()">
        <i class="fa fa-pencil"></i>
    </a>
    
    ...

</div>
        


"Back to the top" button Premium component


Very useful with the long pages, especially on the mobile devices.

Click the button below to see the live example.

Live example

Usage

To make it work, you have to set an ID #top-section to any element on the top of the page.

<button class="btn btn-floating btn-large red" (click)="goTop()" ripple-radius><i class="fa fa-arrow-up"></i></button>

Data structure:


import { Inject } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';
import { PageScrollInstance, PageScrollService, EasingLogic, PageScrollConfig } from 'your_path/angular-bootstrap-md/pro/smoothscroll/index';

export class AppComponent {

    constructor(private pageScrollService: PageScrollService, @Inject(DOCUMENT) private document: any) {
       PageScrollConfig.defaultEasingLogic = {
            ease: (t: number, b: number, c: number, d: number): number => {
                if (t === 0) return b;
                if (t === d) return b + c;
                if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
                return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
            }
        }
    }

    public goTop(): void {
         let pageScrollInstance: PageScrollInstance = PageScrollInstance.simpleInstance(this.document, '#top-section');
         this.pageScrollService.start(pageScrollInstance);
    }
}

Flat button Premium component


<button class="btn-flat" ripple-radius>Click me</button>

Buttons with icons

Left Right

<a class="btn btn-default" ripple-radius><i class="fa fa-magic left"></i>Left</a>

<a class="btn btn-default" ripple-radius>Right<i class="fa fa-magic right"></i>Right</a>

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.


Link

<a class="btn btn-primary" href="#" role="button" ripple-radius>Link</a>
<button class="btn btn-primary" type="submit" ripple-radius>Button</button>
        

Sizes

Fancy larger or smaller buttons? Add .btn-lg or .btn-sm for additional sizes.


<button type="button" class="btn btn-primary btn-lg wave" ripple-radius>Large button</button>

<button type="button" class="btn btn-secondary btn-lg wave" ripple-radius>Large button</button>

<button type="button" class="btn btn-primary btn-sm" ripple-radius>Small button</button>

<button type="button" class="btn btn-secondary btn-sm" ripple-radius>Small button</button>

Create block level buttons—those that span the full width of a parent—by adding .btn-block.


<button type="button" class="btn btn-primary btn-lg btn-block" ripple-radius>Block level button</button>

<button type="button" class="btn btn-secondary btn-lg btn-block" ripple-radius>Block level button</button>

Active state

Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active.


Button active Button active

<a class="btn btn-primary btn-lg active" role="button" ripple-radius>Button active</a>
            
<a class="btn btn-danger btn-lg active" role="button" ripple-radius>Button active</a>

Disabled state

Make buttons look inactive by adding the disabled boolean attribute to any <button> element.

Heads up! IE9 and below render disabled buttons with gray, shadowed text that we can’t override.


<button type="button" class="btn btn-lg btn-primary" disabled>Primary button</button>

<button type="button" class="btn btn-secondary btn-lg" disabled>Button</button>                       

As <a> elements don’t support the disabled attribute, you must add the .disabled class to fake it.

Primary link Link

<a href="#" class="btn btn-primary btn-lg disabled" role="button">Primary link</a>

<a href="#" class="btn btn-secondary btn-lg disabled" role="button">Link</a>

Toggle states


<button type="button" class="btn btn-primary" autocomplete="off" [(ngModel)]="singleModel" btnCheckbox btnCheckboxTrue="1" btnCheckboxFalse="0" ripple-radius>
    Single toggle
</button>

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 [(ngModel)]="checkModel.direction"(left/middle/right) btnCheckbox to the labels to use a checkbox.



<div class="btn-group">
    <label class="btn btn-primary" [(ngModel)]="checkModel.left" btnCheckbox ripple-radius>Checkbox 1 (pre-checked)</label>
    <label class="btn btn-primary" [(ngModel)]="checkModel.middle" btnCheckbox ripple-radius>Checkbox 2</label>
    <label class="btn btn-primary" [(ngModel)]="checkModel.right" btnCheckbox ripple-radius>Checkbox 3</label>
</div>

Data structure:


export class AppComponent {
    public checkModel: any = { left: true, middle: false, right: false };
}
        


Add [(ngModel)]="radioModel" btnRadio="direction"(left/middle/right) to the labels to use a radio.


<div class="btn-group">
    <label class="btn btn-success" [(ngModel)]="radioModel" btnRadio="Left" ripple-radius>Radio 1 (preselected)</label>
    <label class="btn btn-success" [(ngModel)]="radioModel" btnRadio="Middle" ripple-radius>Radio 2</label>
    <label class="btn btn-success" [(ngModel)]="radioModel" btnRadio="Right" ripple-radius>Radio 3</label>
</div>

Data structure:


export class AppComponent {
    public radioModel: string = 'Left';
}