Components menu
Buttons
Use a button to help users perform an action, such as submitting a form or starting an application.
When to use a button or a link
Button styling can be applied to either button or link elements. Use the appropriate element for the task: use a button element when the user is performing an action, use a link element when the user is navigating.
Try to limit the use of styling link elements to look like buttons, as this may confuse the visual clues for how that element can be interacted with.
Types of button
Primary
This is the default button style. Use this for your primary calls to action. Multiple primary buttons can confuse users so try to have only one of these per page (or section of a page).
HTML
<button type="button" class="btn btn-primary">
Primary <i class="fa-solid fa-arrow-right" aria-hidden="true"></i>
</button>
<button type="button" class="btn btn-outline-primary">
Outline <i class="fa-solid fa-arrow-right" aria-hidden="true"></i>
</button>
<button type="button" class="btn btn-primary--tealBg">
Primary <i class="fa-solid fa-arrow-right" aria-hidden="true"></i>
</button>
Secondary
All other non-primary actions should use this style. It has less visual prominence than the primary button.
HTML
<button type="button" class="btn btn-secondary">
Secondary <i class="fa-solid fa-arrow-right" aria-hidden="true"></i>
</button>
<button type="button" class="btn btn-floodline">
Floodline <i class="fa-solid fa-arrow-right" aria-hidden="true"></i>
</button>
<button type="button" class="btn btn-outline-floodline">
Floodline outline <i class="fa-solid fa-arrow-right" aria-hidden="true"></i>
</button>
Other buttons
HTML
<button type="button" class="btn btn-success">
Success <i class="fa-solid fa-arrow-right" aria-hidden="true"></i>
</button>
<button type="button" class="btn btn-danger">
Danger <i class="fa-solid fa-arrow-right" aria-hidden="true"></i>
</button>
<button type="button" class="btn btn-warning">
Warning <i class="fa-solid fa-arrow-right" aria-hidden="true"></i>
</button>
CSS
/* Buttons
------------------------------------ */
.btn-primary {
--bs-btn-color: #000000;
--bs-btn-bg: var(--verdant-green);
--bs-btn-border-color: var(--verdant-green);
--bs-btn-hover-color: #ffffff;
--bs-btn-hover-bg: var(--scottish-teal);
--bs-btn-hover-border-color: var(--scottish-dark-teal);
--bs-btn-focus-shadow-rgb: 113, 112, 110; /* Grey 2 */
--bs-btn-active-color: #000000;
--bs-btn-active-bg: var(--verdant-green);
--bs-btn-active-border-color: var(--scottish-dark-teal);
--bs-btn-active-shadow: inset 0 3px 5px rgba(223, 223, 223, 0.8); /* Grey 3 */
--bs-btn-disabled-color: var(--scottish-dark-teal);
--bs-btn-disabled-bg: var(--grey-three);
--bs-btn-disabled-border-color: var(--grey-two);
font-weight: 600;
border: 2px solid var(--verdant-green);
border-radius: 20px;
padding: 5px 30px;
margin: 0;
}
.btn-primary:active {
border: 2px solid;
}
.btn-primary:focus {
color: #000000;
border: 2px solid var(--scottish-dark-teal);
background-color: var(--verdant-green);
}
.btn-secondary {
background-color: var(--grey-one);
color: #ffffff;
font-weight: 600;
border: 2px solid var(--grey-two);
border-radius: 20px;
padding: 5px 30px;
margin: 5px;
}
.btn-secondary:hover {
background-color: var(--grey-three);
color: #000000;
}
.btn-secondary:active {
border: 2px solid var(--grey-two);
border-color: #000000 !important;
}
.btn-secondary:focus {
color: #000000;
border: 2px solid var(--grey-one);
background-color: var(--grey-three);
--bs-btn-focus-shadow-rgb: 113, 112, 110; /* Grey 2 */
}
.btn-floodline {
background-color: var(--yellow);
color: #000000;
font-weight: 600;
border: 2px solid var(--yellow);
border-radius: 20px;
padding: 5px 30px;
margin: 5px;
}
.btn-floodline:hover {
background-color: var(--scottish-teal);
color: #ffffff;
}
.btn-floodline:active {
border: 2px solid var(--scottish-teal);
}
.btn-floodline:focus {
color: #000000;
border: 2px solid var(--scottish-dark-teal);
background-color: var(--yellow);
--bs-btn-focus-shadow-rgb: 113, 112, 110; /* Grey 2 */
}
@media (min-width: 320px) {
.btn-primary, .btn-secondary, .btn-floodline { padding: 5px 15px; }
}
@media (min-width: 586px) {
.btn-primary, .btn-secondary, .btn-floodline { padding: 5px 15px; }
}
@media (min-width: 768px) {
.btn-primary, .btn-secondary, .btn-floodline {
padding: 5px 30px;
margin-bottom: 10px;
}
}
.btn-success {
--bs-btn-color: #ffffff;
--bs-btn-bg: var(--success-green);
--bs-btn-border-color: #2e5e2e;
--bs-btn-hover-color: #ffffff;
--bs-btn-hover-bg: #2e5e2e;
--bs-btn-hover-border-color: var(--success-green);
--bs-btn-focus-shadow-rgb: 60, 153, 110;
--bs-btn-active-color: #ffffff;
--bs-btn-active-bg: #146c43;
--bs-btn-active-border-color: #13653f;
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
--bs-btn-disabled-color: #ffffff;
--bs-btn-disabled-bg: #00976e;
--bs-btn-disabled-border-color: #00976e;
font-weight: 600;
border: 0px;
border-radius: 20px;
padding: 5px 30px;
margin: 5px;
}
.btn-danger {
background-color: var(--error-red);
color: #ffffff;
font-weight: 600;
border: none;
border-radius: 20px;
padding: 5px 30px;
margin: 5px;
}
.btn-danger:hover {
background-color: #9a1904;
}
.btn-warning {
background-color: var(--warning-yellow);
color: #000000;
font-weight: 600;
border: none;
border-radius: 20px;
padding: 5px 30px;
margin: 5px;
}
.btn-warning:hover {
background-color: #fddf55;
}
i.fa-solid.fa-arrow-right {
padding-left: 20px;
}
/* Outlined buttons
------------------------------------ */
.btn-outline-primary {
--bs-btn-color: var(--scottish-teal);
--bs-btn-border-color: var(--scottish-teal);
--bs-btn-hover-color: #ffffff;
--bs-btn-hover-bg: var(--scottish-teal);
--bs-btn-hover-border-color: var(--scottish-teal);
--bs-btn-focus-shadow-rgb: 13,110,253;
--bs-btn-active-color: #ffffff;
--bs-btn-active-bg: var(--scottish-teal);
--bs-btn-active-border-color: var(--scottish-teal);
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
--bs-btn-disabled-color: var(--scottish-teal);
--bs-btn-disabled-bg: transparent;
--bs-btn-disabled-border-color: var(--scottish-teal);
--bs-gradient: none;
margin: 0px 2px 10px 2px;
}
@media (min-width: 320px) {
.btn-outline-primary { width: 100%; }
}
@media (min-width: 576px) {
.btn-outline-primary, .btn-outline-floodline {
width: auto;
margin-bottom: 10px;
}
}
.btn-outline-secondary {
--bs-btn-color: var(--grey-one);
--bs-btn-border-color: var(--grey-one);
--bs-btn-hover-color: #ffffff;
--bs-btn-hover-bg: var(--grey-one);
--bs-btn-hover-border-color: var(--grey-one);
--bs-btn-focus-shadow-rgb: 108,117,125;
--bs-btn-active-color: #ffffff;
--bs-btn-active-bg: var(--grey-one);
--bs-btn-active-border-color: var(--grey-one);
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
--bs-btn-disabled-color: var(--grey-one);
--bs-btn-disabled-bg: transparent;
--bs-btn-disabled-border-color: var(--grey-one);
--bs-gradient: none;
margin: 0 2px;
}
.btn-outline-floodline {
--bs-btn-color: var(--scottish-dark-teal);
--bs-btn-border-color: var(--yellow);
--bs-btn-hover-color: #000000;
--bs-btn-hover-bg: var(--yellow);
--bs-btn-hover-border-color: var(--yellow);
--bs-btn-focus-shadow-rgb: 108,117,125;
--bs-btn-active-color: #000000;
--bs-btn-active-bg: var(--yellow);
--bs-btn-active-border-color: var(--yellow);
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
--bs-btn-disabled-color: var(--yellow);
--bs-btn-disabled-bg: transparent;
--bs-btn-disabled-border-color: var(--yellow);
--bs-gradient: none;
margin: 0 2px;
}
/* Teal background
------------------------------------ */
.btn-primary--tealBg {
background-color: var(--verdant-green);
color: #000000;
font-weight: 600;
border: none;
border-radius: 20px;
padding: 5px 30px;
margin: 5px;
}
.btn-primary--tealBg:hover {
background-color: #ffffff;
color: var(--scottish-teal);
}
.btn-primary--tealBg:focus {
background-color: var(--verdant-green);
border: var(--scottish-teal);
color: #000000;
}
.btn-primary--tealBg:active {
background-color: var(--verdant-green);
border: var(--scottish-teal);
color: #000000;
}
.btn-add {
background-color: #ffffff;
border: 1px solid var(--scottish-teal);
color: var(--scottish-dark-teal);
}
.btn-add:hover {
background-color: var(--scottish-teal);
border: 1px solid var(--scottish-teal);
color: #ffffff;
}
.btn-add:focus {
background-color: var(--verdant-green);
border: 1px solid var(--verdant-green);
color: #000000;
}