@nova-ui/bits
Version:
SolarWinds Nova Framework
301 lines (270 loc) • 7.39 kB
text/less
@import (reference) "../../nui-framework-variables.less";
@import (reference) "../../nui-framework-base.less";
.button-base() {
.generic-control();
&.default {
.button-default();
}
&.primary {
.button-primary();
}
&.action {
.button-action();
}
&.destructive {
.button-destructive();
}
&.selected {
.button-selected();
}
&.selected-contrast {
.button-selected-contrast();
}
}
.button-default-base() {
.button-variant(
nui-color-text-link;
transparent;
nui-color-line-default;
nui-color-text-link;
nui-color-bg-transparent-hover;
nui-color-btn1-focusBrd;
transparent;
nui-color-btn1-activeOpenBrd;
transparent;
nui-color-btn1-activeHoverBrd;
transparent;
nui-color-line-default;
nui-color-disabled;
nui-color-busy-default
);
}
.button-default() {
.button-default-base();
.with-icon-fill(nui-color-text-link, nui-color-disabled);
}
.button-primary-base() {
.button-variant(
nui-color-text-light;
nui-color-active;
transparent;
nui-color-icon-light;
nui-color-active-hover;
transparent;
nui-color-btn2-activeOpenBk;
transparent;
nui-color-btn2-activeHoverBk;
transparent;
nui-color-disabled;
transparent;
white;
nui-color-busy-default
);
}
.button-primary() {
.button-primary-base();
.with-icon-fill(nui-color-icon-light, white);
}
.button-action-base() {
.button-variant(
nui-color-text-link;
transparent;
transparent;
nui-color-text-link;
nui-color-bg-transparent-hover;
transparent;
nui-color-bg-transparent-hover;
transparent;
nui-color-bg-transparent-hover;
transparent;
transparent;
transparent;
nui-color-disabled;
nui-color-busy-default
);
}
.button-action() {
.button-action-base();
.with-icon-fill(nui-color-text-link, nui-color-disabled);
}
.button-destructive-base() {
.button-variant(
nui-color-text-critical;
transparent;
nui-color-line-default;
nui-color-text-critical;
nui-color-bg-transparent-hover;
nui-color-btn1-focusBrd;
nui-color-bg-transparent-hover;
nui-color-btn1-activeOpenBrd;
nui-color-bg-transparent-hover;
nui-color-btn1-activeHoverBrd;
transparent;
nui-color-line-default;
nui-color-disabled;
nui-color-busy-destructive
);
}
.button-destructive() {
.button-destructive-base();
.with-icon-fill(nui-color-text-critical, nui-color-disabled);
}
.button-selected-base() {
.button-variant(
nui-color-text-link;
nui-color-selected;
transparent;
nui-color-text-link;
nui-color-selected-hover;
transparent;
nui-color-selected-active;
transparent;
nui-color-selected-active;
transparent;
nui-color-disabled;
transparent;
white;
nui-color-busy-default
);
}
.button-selected() {
.button-selected-base();
.with-icon-fill(nui-color-text-link, white);
}
.button-selected-contrast-base() {
.button-variant(
white;
nui-color-selected-contrast;
transparent;
nui-color-icon-light;
nui-color-selected-contrast-hover;
transparent;
nui-color-selected-contrast-hover;
transparent;
nui-color-selected-contrast-hover;
transparent;
nui-color-disabled;
transparent;
white;
nui-color-busy-default
);
}
.button-selected-contrast() {
.button-selected-contrast-base();
.with-icon-fill(nui-color-icon-light, white);
}
.button-variant(@colorVariableName;
@backgroundVariableName;
@borderVariableName;
@iconVariableName;
@focusBkVariableName;
@focusBrdVariableName;
@activeOpenBkVariableName;
@activeOpenBrdVariableName;
@activeHoverBkVariableName;
@activeHoverBrdVariableName;
@disabledBkVariableName;
@disabledBrdVariableName;
@disabledContentVariableName;
@busyVariantColor
) {
.setCssVariable(color, @colorVariableName);
.setCssVariable(background-color, @backgroundVariableName);
.setCssVariable(border-color, @borderVariableName);
&:focus,
&.focus {
.setCssVariable(color, @colorVariableName);
.setCssVariable(background-color, @focusBkVariableName);
.setCssVariable(border-color, @focusBrdVariableName);
.focus-outline();
}
&:hover {
.setCssVariable(color, @colorVariableName);
.setCssVariable(background-color, @focusBkVariableName);
.setCssVariable(border-color, @focusBrdVariableName);
}
&:active,
&.active,
.open > .dropdown-toggle& {
.setCssVariable(color, @colorVariableName);
.setCssVariable(background-color, @activeOpenBkVariableName);
.setCssVariable(border-color, @activeOpenBrdVariableName);
&:hover,
&:focus,
&.focus {
.setCssVariable(color, @colorVariableName);
.setCssVariable(background-color, @activeHoverBkVariableName);
.setCssVariable(border-color, @activeHoverBrdVariableName);
}
}
&:active,
&.active,
.open > .dropdown-toggle& {
background-image: none;
}
&.disabled,
&[disabled],
fieldset[disabled] & {
&,
&:hover,
&:focus,
&.focus,
&:active,
&.active {
.setCssVariable(background-color, @disabledBkVariableName);
.setCssVariable(border-color, @disabledBrdVariableName);
.setCssVariable(color, @disabledContentVariableName);
}
}
&.is-busy {
.busy-variant(@busyVariantColor);
}
&.has-error {
.setCssVariable(border-color, nui-color-line-critical);
&:hover,
&:focus,
&:active {
.setCssVariable(border-color, nui-color-line-critical);
}
}
.badge {
.setCssVariable(color, @backgroundVariableName);
.setCssVariable(background-color, @colorVariableName);
}
}
.with-icon-fill(@iconVariableName, @disabledContentVariableName) {
.fill-icon(@iconVariableName);
&.disabled,
&[disabled],
fieldset[disabled] & {
&,
&:hover,
&:focus,
&.focus,
&:active,
&.active {
.fill-icon(@disabledContentVariableName);
}
}
}
.busy-variant(@variableName) {
.ripple-1,
.ripple-2 {
.setCssVariable(background, @variableName);
}
}
.fill-icon(@variableName) {
.nui-icon:not(.custom-icon-color) {
path,
polygon {
.setCssVariable(fill, @variableName);
}
}
}
// Button sizes
.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
padding: @padding-vertical @padding-horizontal;
font-size: @font-size;
line-height: @line-height;
border-radius: @border-radius;
}