icingaweb2/public/css/icinga/mixins.less

243 lines
5.7 KiB
Plaintext

/*! Icinga Web 2 | (c) 2015 Icinga Development Team | GPLv2+ */
.box-shadow(@x: 0.2em; @y: 0.2em; @blur: 0.2em; @spread: 0; @color: rgba(83, 83, 83, 0.25)) {
-webkit-box-shadow: @x @y @blur @spread extract-variable-default(@color);
-webkit-box-shadow: @arguments;
-moz-box-shadow: @x @y @blur @spread extract-variable-default(@color);
-moz-box-shadow: @arguments;
box-shadow: @x @y @blur @spread extract-variable-default(@color);
box-shadow: @arguments;
}
.button(
@background-color: ~"var(--body-bg-color, @{body-bg-color})",
@border-font-color: ~"var(--icinga-blue, @{icinga-blue})",
@color-dark: ~"var(--icinga-blue-dark, @{icinga-blue-dark})"
) {
.rounded-corners(3px);
background-color: extract-variable-default(@background-color);
background-color: @background-color;
border: extract-variable-default(2px solid @border-font-color);
border: 2px solid @border-font-color;
color: extract-variable-default(@border-font-color);
color: @border-font-color;
cursor: pointer;
line-height: normal;
outline: none;
padding: ~"calc(@{vertical-padding} - 2px)" @horizontal-padding;
@duration: 0.2s;
// The trailing semicolon is needed to be able to pass this as a css list
.transition(background @duration, border @duration ease, color @duration ease;);
&:focus,
&:hover,
&.btn-primary {
background-color: extract-variable-default(@border-font-color);
background-color: @border-font-color;
color: extract-variable-default(@background-color);
color: @background-color;
}
&.btn-primary:focus,
&.btn-primary:hover {
background-color: extract-variable-default(@color-dark);
background-color: @color-dark;
border-color: extract-variable-default(@color-dark);
border-color: @color-dark;
color: extract-variable-default(@background-color);
color: @background-color;
}
&:hover {
text-decoration: none;
}
}
.clearfix {
&:after {
content: "";
clear: both;
display: table;
}
}
.opacity(@opacity: 0.6) {
opacity: @opacity;
}
.appearance(@appearance) {
-webkit-appearance: @appearance;
-moz-appearance: @appearance;
-ms-appearance: @appearance;
appearance: @appearance;
}
.transform(@transform) {
-webkit-transform: @transform;
-moz-transform: @transform;
-ms-transform: @transform;
-o-transform: @transform;
transform: @transform;
}
.user-select(@user-select) {
-webkit-user-select: @user-select;
-moz-user-select: @user-select;
-ms-user-select: @user-select;
user-select: @user-select;
}
.rounded-corners(@border-radius: 0.4em) {
border-radius: @border-radius;
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
}
.transition (@transition) {
-webkit-transition: @transition;
-moz-transition: @transition;
-o-transition: @transition;
transition: @transition;
}
// Fadein animation
/* Chrome, WebKit */
@-webkit-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* FF < 16 */
@-moz-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* IE */
@-ms-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Opera < 12.1 */
@-o-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
.fadein() {
opacity: 0;
-webkit-animation: fadein 2s ease-in; /* Chrome, WebKit */
-moz-animation: fadein 2s ease-in; /* FF < 16 */
-o-animation: fadein 2s ease-in; /* Opera < 12.1 */
animation: fadein 2s ease-in;
// Make sure that after animation is done we remain at the last keyframe value (opacity: 1)
-webkit-animation-fill-mode: forwards;
-moz-animation-fill-mode: forwards;
-o-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
// Mixin for stateful foreground colors, e.g. text or icons
.fg-stateful {
&.state-ok {
.var(color, color-ok);
}
&.state-up {
.var(color, color-up);
}
&.state-warning {
.var(color, color-warning);
&.handled {
.var(color, color-warning-handled);
}
}
&.state-critical {
.var(color, color-critical);
&.handled {
.var(color, color-critical-handled);
}
}
&.state-down {
.var(color, color-down);
&.handled {
.var(color, color-down-handled);
}
}
&.state-unreachable {
.var(color, color-unreachable);
&.handled {
.var(color, color-unreachable-handled);
}
}
&.state-unknown {
.var(color, color-unknown);
&.handled {
.var(color, color-unknown-handled);
}
}
&.state-pending {
.var(color, color-pending);
}
}
// Mixin for stateful background colors
.bg-stateful {
&.state-ok {
.var(background-color, color-ok);
}
&.state-up {
.var(background-color, color-up);
}
&.state-warning {
.var(background-color, color-warning);
&.handled {
.var(background-color, color-warning-handled);
}
}
&.state-critical {
.var(background-color, color-critical);
&.handled {
.var(background-color, color-critical-handled);
}
}
&.state-down {
.var(background-color, color-down);
&.handled {
.var(background-color, color-down-handled);
}
}
&.state-unreachable {
.var(background-color, color-unreachable);
&.handled {
.var(background-color, color-unreachable-handled);
}
}
&.state-unknown {
.var(background-color, color-unknown);
&.handled {
.var(background-color, color-unknown-handled);
}
}
&.state-pending {
.var(background-color, color-pending);
}
}
.var(@property, @variable) {
@{property}: @@variable;
@{property}: var(~"--@{variable}", @@variable);
}