app/webpacker/css/admin_v3/components/buttons.scss
// Button styles
// Design reference: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Design-styleguide%3A-links-and-buttons
@mixin disabled-button() {
&:disabled,
&:disabled:hover {
cursor: initial;
color: $color-btn-disabled-text;
background-color: $color-btn-disabled-bg;
border-color: transparent;
}
}
input[type="submit"],
input[type="reset"],
input[type="button"]:not(.trix-button),
button:not(.plain):not(.trix-button),
.button {
position: relative;
cursor: pointer;
font-size: 14px;
@include border-radius($border-radius);
display: inline-block;
padding: 0px 12px;
background-color: $color-btn-bg;
border: 1px solid $color-btn-bg;
color: $color-btn-text;
line-height: $btn-regular-height - 2px; // remove 2px to compensate for border
height: $btn-regular-height;
font-weight: bold;
@include disabled-button();
&:before {
font-weight: normal !important;
}
&:active,
&:focus {
outline: none;
border: 1px solid $color-btn-hover-border;
}
&:active:focus {
box-shadow: none;
}
&:hover {
background-color: $color-btn-hover-bg;
border: 1px solid $color-btn-hover-bg;
color: $color-btn-hover-text;
}
// --- Colours ---
&.secondary {
background-color: $color-btn-secondary-bg;
color: $color-link;
&:hover {
background-color: $color-btn-secondary-hover-bg;
}
&:focus {
background-color: $color-btn-secondary-hover-bg;
border-color: $color-link-focus;
color: $color-link-focus;
}
// "Naked" variation: text appears on hover
&.naked {
border: none;
color: transparent;
&:before {
color: $color-link;
}
&:hover {
background-color: $color-btn-secondary-bg;
color: $color-link;
}
&:focus {
background-color: $color-btn-secondary-hover-bg;
color: $color-link-focus;
}
}
}
&.disruptive {
background-color: transparent;
border: 1px solid $color-5;
color: $color-5;
&:hover {
background-color: $fair-pink;
border: 1px solid $color-5;
color: $color-5;
}
&:active,
&:focus {
background-color: $fair-pink;
border: 1px solid $roof-terracotta;
color: $roof-terracotta;
}
}
// --- Sizes ---
&.mini {
line-height: 18px;
height: auto; // DC: I don't like fixed heights.
padding: 0 6px;
}
&.condensed {
line-height: $btn-condensed-height - 2px; // remove 2px to compensate for border
height: $btn-condensed-height;
}
&.relaxed {
line-height: $btn-relaxed-height - 2px; // remove 2px to compensate for border
height: $btn-relaxed-height;
}
&.big {
@extend .relaxed; // use relaxed height
width: 100%;
font-size: 1rem;
@include border-radius(25px);
text-transform: uppercase;
}
&.fullwidth {
width: 100%;
text-align: center;
}
.badge {
position: absolute;
top: 0;
right: 0;
transform: translateY(-50%);
font-size: 10px;
text-transform: capitalize;
padding: 0px 5px;
border-radius: 3px;
&:before {
padding: 0;
}
&.danger {
background-color: $color-warning;
}
&.success {
background-color: $spree-green;
}
}
}
// --- Reset buttons ---
input[type="reset"],
.reset {
// Reset button looks like a link, but has a border the same as buttons when active.
background: none;
border: 1px solid transparent;
color: $color-link;
&:active {
color: $color-link-active;
}
&:focus {
color: $color-link-focus;
}
&:hover {
color: $color-link-hover;
background: none;
border-color: transparent;
}
}
a.button {
text-decoration: none;
}
.button.disruptive::before {
margin-right: 3px;
@extend .icon-remove-sign;
font-family: FontAwesome;
}