winter/modules/system/assets/ui/less/button.base.less
Samuel Georges aa393dc54b Backend style improvements
This should make Windows PCs look a little nicer, albeit inconsistent with others (Sergoe UI is unique). If it's good enough for GitHub, then it's good enough for October.
All text shadows have been stripped, along with some box shading. They were barely noticeable and should speed up the UI.
2017-05-20 17:37:58 +10:00

186 lines
4.5 KiB
Plaintext

// Base styles
// --------------------------------------------------
.btn {
display: inline-block;
margin-bottom: 0; // For input.btn
font-weight: @btn-font-weight;
text-align: center;
vertical-align: middle;
cursor: pointer;
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid transparent;
white-space: nowrap;
.button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base);
.user-select(none);
&,
&:active,
&.active {
&:focus {
.tab-focus();
}
}
&:hover,
&:focus {
color: @btn-default-color;
text-decoration: none;
}
&:active,
&.active {
outline: 0;
background-image: none;
}
&.disabled,
&[disabled],
fieldset[disabled] & {
cursor: not-allowed;
pointer-events: none; // Future-proof disabling of clicks
.opacity(.65);
.box-shadow(none);
}
}
// Alternate buttons
// --------------------------------------------------
.btn-default {
.button-variant(@btn-default-color; @btn-default-bg; @btn-default-border; @btn-primary-bg; @btn-primary-bg);
}
.btn-primary {
.button-variant(@btn-primary-color; lighten(@btn-primary-bg, 5%); @btn-primary-border; @btn-primary-bg; @btn-primary-bg);
font-weight: 500;
}
.btn-secondary {
.button-variant(#000; lighten(@btn-secondary-bg, 5%); @btn-secondary-border; @btn-secondary-bg; @btn-secondary-bg);
color: @btn-secondary-color;
}
// Success appears as green
.btn-success {
.button-variant(@btn-success-color; @btn-default-bg; @btn-success-border; @btn-success-bg; @btn-success-bg);
}
// Info appears as blue-green
.btn-info {
.button-variant(@btn-info-color; @btn-default-bg; @btn-info-border; @btn-info-bg; @btn-info-bg);
}
// Warning appears as orange
.btn-warning {
.button-variant(@btn-warning-color; @btn-default-bg; @btn-warning-border; @btn-warning-bg; @btn-warning-bg);
}
// Danger and error appear as red
.btn-danger {
.button-variant(@btn-danger-color; @btn-default-bg; @btn-danger-border; @btn-danger-bg; @btn-danger-bg);
}
// Outline buttons
// --------------------------------------------------
.btn-outline-default {
.button-outline-variant(@btn-default-bg);
}
.btn-outline-primary {
.button-outline-variant(@btn-primary-bg);
}
.btn-outline-secondary {
.button-outline-variant(darken(@btn-secondary-bg, 15%));
}
.btn-outline-info {
.button-outline-variant(@btn-info-bg);
}
.btn-outline-success {
.button-outline-variant(@btn-success-bg);
}
.btn-outline-warning {
.button-outline-variant(@btn-warning-bg);
}
.btn-outline-danger {
.button-outline-variant(@btn-danger-bg);
}
// Link buttons
// -------------------------
// Make a button look and behave like a link
.btn-link {
color: @link-color;
font-weight: normal;
cursor: pointer;
border-radius: 0;
&,
&:active,
&[disabled],
fieldset[disabled] & {
background-color: transparent;
.box-shadow(none);
}
&,
&:hover,
&:focus,
&:active {
border-color: transparent;
}
&:hover,
&:focus {
color: @link-hover-color;
text-decoration: underline;
background-color: transparent;
}
&[disabled],
fieldset[disabled] & {
&:hover,
&:focus {
color: @btn-link-disabled-color;
text-decoration: none;
}
}
}
// Button Sizes
// --------------------------------------------------
.btn-lg {
// line-height: ensure even-numbered height of button next to large input
.button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
}
.btn-sm {
// line-height: ensure proper height of button next to small input
.button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
}
.btn-xs {
.button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small);
}
// Block button
// --------------------------------------------------
.btn-block {
display: block;
width: 100%;
padding-left: 0;
padding-right: 0;
}
// Vertically space out multiple block buttons
.btn-block + .btn-block {
margin-top: 5px;
}
// Specificity overrides
input[type="submit"],
input[type="reset"],
input[type="button"] {
&.btn-block {
width: 100%;
}
}