Use Bootstrap’s custom button styles for actions in forms, dialogs, and more with support for multiple sizes, states, and more.
<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-danger">Danger</button>
<button type="button" class="btn btn-warning">Warning</button>
<button type="button" class="btn btn-info">Info</button>
<button type="button" class="btn btn-light">Light</button>
<button type="button" class="btn btn-dark">Dark</button>
<button type="button" class="btn btn-link">Link</button>
<a class="btn btn-primary" href="#" role="button">Link</a>
<button class="btn btn-primary" type="submit">Button</button>
<input class="btn btn-primary" type="button" value="Input">
<input class="btn btn-primary" type="submit" value="Submit">
<input class="btn btn-primary" type="reset" value="Reset">
<button type="button" class="btn btn-outline-primary">Primary</button>
<button type="button" class="btn btn-outline-secondary">Secondary</button>
<button type="button" class="btn btn-outline-success">Success</button>
<button type="button" class="btn btn-outline-danger">Danger</button>
<button type="button" class="btn btn-outline-warning">Warning</button>
<button type="button" class="btn btn-outline-info">Info</button>
<button type="button" class="btn btn-outline-light">Light</button>
<button type="button" class="btn btn-outline-dark">Dark</button>
<button type="button" class="btn btn-primary-soft">Primary soft</button>
<button type="button" class="btn btn-secondary-soft">Secondary soft</button>
<button type="button" class="btn btn-success-soft">Success soft</button>
<button type="button" class="btn btn-danger-soft">Danger soft</button>
<button type="button" class="btn btn-warning-soft">Warning soft</button>
<button type="button" class="btn btn-info-soft">Info soft</button>
<button type="button" class="btn btn-light-soft">Light soft</button>
<button type="button" class="btn btn-dark-soft">Dark soft</button>
Fancy larger or smaller buttons? Add
.btn-lg
or
.btn-sm
for additional sizes.
<button type="button" class="btn btn-primary btn-lg">Large button</button>
<button type="button" class="btn btn-secondary btn-lg">Large button</button>
<button type="button" class="btn btn-primary btn-sm">Small button</button>
<button type="button" class="btn btn-secondary btn-sm">Small button</button>
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 href="#" class="btn btn-primary btn-lg active" role="button" aria-pressed="true">Primary link</a>
<a href="#" class="btn btn-secondary btn-lg active" role="button" aria-pressed="true">Link</a>
Make buttons look inactive by adding the
disabled
boolean attribute to any
<button>
element.
<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>
<div class="d-grid gap-2">
<button class="btn btn-primary" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Here we create a responsive variation, starting with vertically stacked buttons until the
md
breakpoint, where
.d-md-block
replaces the
.d-grid
class, thus nullifying the
gap-2
utility. Resize your browser to see them change.
<div class="d-grid gap-2 d-md-block">
<button class="btn btn-primary" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
You can adjust the width of your block buttons with grid column width classes. For example, for a half-width “block button”, use
.col-6
. Center it horizontally with
.mx-auto
, too.
<div class="d-grid gap-2 col-6 mx-auto">
<button class="btn btn-primary" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Additional utilities can be used to adjust the alignment of buttons when horizontal. Here we’ve taken our previous responsive example and added some flex utilities and a margin utility on the button to right align the buttons when they’re no longer stacked.
<div class="d-grid gap-2 d-md-flex justify-content-md-end">
<button class="btn btn-primary" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Add
data-bs-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 type="button" class="btn btn-primary" data-bs-toggle="button" aria-pressed="false" ="off">
Single toggle
</button>