mirror of
https://github.com/atom/atom.git
synced 2026-02-11 23:25:03 -05:00
187 lines
3.8 KiB
Plaintext
187 lines
3.8 KiB
Plaintext
|
|
@btn-border: 1px solid @button-border-color;
|
|
@btn-padding: 0 @ui-size/1.25;
|
|
|
|
// Mixins -----------------------
|
|
|
|
.btn-default (@color, @hover-color, @selected-color, @text-color) {
|
|
color: @text-color;
|
|
text-shadow: none;
|
|
border: @btn-border;
|
|
background-color: @color;
|
|
background-image: linear-gradient(lighten(@color, 2%), @color);
|
|
|
|
&:hover {
|
|
color: @text-color-highlight;
|
|
background-image: linear-gradient(lighten(@hover-color, 2%), @hover-color);
|
|
}
|
|
&:active {
|
|
background: darken(@color, 4%);
|
|
box-shadow: none;
|
|
}
|
|
&.selected {
|
|
background: @selected-color;
|
|
}
|
|
&.selected:focus,
|
|
&.selected:hover {
|
|
background: lighten(@selected-color, 2%);
|
|
}
|
|
&:focus {
|
|
.focus(); // unfortunately :focus styles stay even after releasing mouse.
|
|
}
|
|
}
|
|
|
|
.btn-variant (@color) {
|
|
@_text-color: contrast(@color, white, hsl(0,0%,20%), 33% );
|
|
.btn-default(
|
|
@color,
|
|
lighten(@color, 3%),
|
|
saturate(darken(@color, 12%), 20%),
|
|
@text-color-highlight
|
|
);
|
|
color: @_text-color;
|
|
|
|
& when (@ui-lightness > 50%) {
|
|
border-color: transparent; // hide border on light backgrounds
|
|
}
|
|
|
|
&:hover,
|
|
&:focus {
|
|
color: @_text-color;
|
|
}
|
|
&:focus {
|
|
border-color: transparent;
|
|
background-clip: padding-box;
|
|
box-shadow: inset 0 0 0 1px fade(@base-border-color, 50%), 0 0 0 1px @color;
|
|
}
|
|
|
|
&.icon:before {
|
|
color: @_text-color;
|
|
}
|
|
}
|
|
|
|
|
|
// Buttons -----------------------
|
|
|
|
.btn {
|
|
height: initial;
|
|
padding: @btn-padding;
|
|
font-size: @ui-size;
|
|
line-height: @ui-line-height;
|
|
}
|
|
|
|
.btn,
|
|
.btn.btn-default {
|
|
.btn-default(@button-background-color, @button-background-color-hover, @button-background-color-selected, @text-color);
|
|
}
|
|
|
|
.btn.btn-primary {
|
|
.btn-variant(@accent-bg-color);
|
|
}
|
|
.btn.btn-info {
|
|
.btn-variant(@background-color-info);
|
|
}
|
|
.btn.btn-success {
|
|
.btn-variant(@background-color-success);
|
|
}
|
|
.btn.btn-warning {
|
|
.btn-variant(@background-color-warning);
|
|
}
|
|
.btn.btn-error {
|
|
.btn-variant(@background-color-error);
|
|
}
|
|
|
|
|
|
// Button Sizes -----------------------
|
|
|
|
.btn.btn-xs,
|
|
.btn-group-xs > .btn {
|
|
font-size: @ui-size*.8;
|
|
line-height: @ui-line-height;
|
|
padding: @btn-padding;
|
|
}
|
|
.btn.btn-sm,
|
|
.btn-group-sm > .btn {
|
|
font-size: @ui-size*.9;
|
|
line-height: @ui-line-height;
|
|
padding: @btn-padding;
|
|
}
|
|
.btn.btn-lg,
|
|
.btn-group-lg > .btn {
|
|
font-size: @ui-size * 1.5;
|
|
line-height: @ui-line-height;
|
|
padding: @btn-padding;
|
|
}
|
|
|
|
|
|
// Button Group -----------------------
|
|
|
|
.btn-group > .btn {
|
|
z-index: 0;
|
|
&:hover {
|
|
z-index: 0;
|
|
}
|
|
&.btn:focus {
|
|
z-index: 1;
|
|
.focus();
|
|
}
|
|
|
|
&:first-child {
|
|
border-left: @btn-border;
|
|
}
|
|
&:last-child,
|
|
&.selected:last-child {
|
|
border-right: @btn-border;
|
|
}
|
|
|
|
// hide border on light backgrounds
|
|
& when (@ui-lightness > 50%) {
|
|
&.btn-primary:first-child,
|
|
&.btn-info:first-child,
|
|
&.btn-success:first-child,
|
|
&.btn-warning:first-child,
|
|
&.btn-error:first-child {
|
|
border-left-color: transparent;
|
|
}
|
|
|
|
&.btn-primary:last-child,
|
|
&.btn-info:last-child,
|
|
&.btn-success:last-child,
|
|
&.btn-warning:last-child,
|
|
&.btn-error:last-child {
|
|
border-right-color: transparent;
|
|
}
|
|
}
|
|
|
|
&.selected,
|
|
&.selected:first-child,
|
|
&.selected:last-child {
|
|
color: @button-text-color-selected;
|
|
border-color: @button-border-color-selected;
|
|
}
|
|
|
|
& when (@ui-lightness > 50%) {
|
|
&.selected + .btn {
|
|
border-left-color: @button-border-color-selected;
|
|
}
|
|
&.selected + .selected {
|
|
border-left-color: mix(@button-border-color, @button-border-color-selected);
|
|
}
|
|
}
|
|
|
|
&.selected:focus {
|
|
border-color: @button-background-color-selected;
|
|
box-shadow: inset 0 0 0 1px fade(@base-border-color, 50%), 0 0 0 1px @button-background-color-selected;
|
|
}
|
|
}
|
|
|
|
|
|
// Button Icons -----------------------
|
|
|
|
.btn.icon:before {
|
|
width: auto;
|
|
height: auto;
|
|
font-size: 1.333333em;
|
|
vertical-align: -.1em;
|
|
}
|