$button-background-color: dynamic($neutral-light-color);
$button-pressed-background-color: dynamic(button-pressed-background-color($button-background-color));
$button-shadow: dynamic(null);
$button-pressed-shadow: dynamic(null);
$button-background-gradient: dynamic(button-background-gradient($button-background-color));
$button-pressed-background-gradient: dynamic(button-pressed-background-gradient($button-pressed-background-color));
$button-color: dynamic($highlight-color);
$button-pressed-color: dynamic($button-color);
$button-border-color: dynamic(button-border-color($button-background-color));
$button-pressed-border-color: dynamic(button-pressed-border-color($button-pressed-background-color));
$button-border-width: dynamic(1px);
$button-border-style: dynamic(solid);
$button-border-radius: dynamic(.25em);
$button-border-radius-big: dynamic(.2em);
$button-font-weight: dynamic($font-weight-bold);
$button-font-size: dynamic(1rem);
$button-font-size-big: dynamic(null);
$button-line-height: dynamic(1.2308em);
$button-line-height-big: dynamic(1.6em);
$button-font-family: dynamic($font-family);
$button-padding: dynamic(.2308em .6em);
$button-padding-big: dynamic(.2em .6em);
$button-icon-color: dynamic($button-color);
$button-pressed-icon-color: dynamic($button-pressed-color);
$button-disabled-icon-color: dynamic($button-disabled-color);
$button-icon-size: dynamic($button-line-height);
$button-icon-size-big: dynamic($button-line-height-big);
$button-icon-font-size: dynamic($button-icon-size);
$button-icon-font-size-big: dynamic($button-icon-size-big);
$button-icon-horizontal-spacing: dynamic(.6em);
$button-icon-horizontal-spacing-big: dynamic($button-icon-horizontal-spacing);
$button-icon-vertical-spacing: dynamic(.2em);
$button-icon-vertical-spacing-big: dynamic($button-icon-vertical-spacing);
$button-disabled-color: dynamic(null);
$button-disabled-opacity: dynamic(.5);
$button-badge-background-color: dynamic(darken($alert-color, 10%));
$button-badge-background-gradient: dynamic($base-background-gradient);
$button-badge-color: dynamic(color-by-background($button-badge-background-color));
$button-badge-border-color: dynamic(darken($button-badge-background-color, 10%));
$button-badge-border-radius: dynamic(.2em);
$button-badge-min-width: dynamic(2em);
$button-badge-max-width: dynamic(95%);
$button-badge-font-weight: dynamic(null);
$button-badge-font-size: dynamic(1em);
$button-badge-font-family: dynamic($button-font-family);
$button-badge-line-height: dynamic($button-line-height);
$button-badge-top: dynamic(-.2em);
$button-badge-right: dynamic(0);
$button-badge-bottom: dynamic(null);
$button-badge-left: dynamic(null);
$button-badge-padding: dynamic(.1em .3em);
$button-action-ui: dynamic($enable-default-uis);
$button-alt-ui: dynamic($enable-default-uis);
$button-confirm-ui: dynamic($enable-default-uis);
$button-decline-ui: dynamic($enable-default-uis);
$button-round-ui: dynamic($enable-default-uis);
$button-small-ui: dynamic($enable-default-uis);
$button-flat-ui: dynamic($enable-default-uis);
$button-plain-ui: dynamic($enable-default-uis);
$button-segmented-ui: dynamic($enable-default-uis);
@mixin button-ui(
$ui: null,
$background-color: null,
$pressed-background-color: null,
$shadow: null,
$pressed-shadow: null,
$background-gradient: null,
$pressed-background-gradient: null,
$color: null,
$pressed-color: null,
$border-color: null,
$pressed-border-color: null,
$border-width: null,
$border-style: null,
$border-radius: null,
$border-radius-big: null,
$font-weight: null,
$font-size: null,
$font-size-big: null,
$line-height: null,
$line-height-big: null,
$font-family: null,
$padding: null,
$padding-big: null,
$icon-color: null,
$pressed-icon-color: null,
$disabled-icon-color: null,
$icon-size: null,
$icon-size-big: null,
$icon-font-size: null,
$icon-font-size-big: null,
$icon-horizontal-spacing: null,
$icon-horizontal-spacing-big: null,
$icon-vertical-spacing: null,
$icon-vertical-spacing-big: null,
$disabled-color: null,
$disabled-opacity: null,
$badge-background-color: null,
$badge-background-gradient: null,
$badge-color: null,
$badge-border-color: null,
$badge-border-radius: null,
$badge-min-width: null,
$badge-max-width: null,
$badge-font-weight: null,
$badge-font-size: null,
$badge-font-family: null,
$badge-line-height: null,
$badge-top: null,
$badge-right: null,
$badge-bottom: null,
$badge-left: null,
$badge-padding: null
) {
$ui-suffix: ui-suffix($ui);
@if $background-color != null and $background-color != transparent {
@if $pressed-background-color == null {
$pressed-background-color: button-pressed-background-color($background-color);
}
@if $border-color == null {
$border-color: button-border-color($background-color);
}
@if $color == null {
$color: button-color($background-color);
}
@if $background-gradient == null {
$background-gradient: button-background-gradient($background-color);
}
}
@if $pressed-background-color != null {
@if $pressed-border-color == null {
$pressed-border-color: button-pressed-border-color($pressed-background-color);
}
@if $pressed-color == null {
$pressed-color: button-pressed-color($pressed-background-color);
}
@if $pressed-background-gradient == null {
$pressed-background-gradient: button-pressed-background-gradient($pressed-background-color);
}
}
@if $icon-color == null {
$icon-color: $color;
}
@if $pressed-icon-color == null {
@if $pressed-color == null and $pressed-background-color != null {
$pressed-icon-color: button-pressed-color($pressed-background-color);
} @else {
$pressed-icon-color: $pressed-color;
}
}
.#{$prefix}button#{$ui-suffix} {
color: $color;
padding: $padding;
box-shadow: $shadow;
@include font($font-weight, $font-size, $line-height, $font-family);
@include border($border-width, $border-style, $border-color);
@if $enable-border-radius {
@include border-radius($border-radius);
}
@if $enable-big {
.#{$prefix}big & {
padding: $padding-big;
font-size: $font-size-big;
line-height: $line-height-big;
@include border-radius($border-radius-big);
}
}
@include background-gradient($background-color, $background-gradient);
&.#{$prefix}button-pressing, &.#{$prefix}button-pressed {
color: $pressed-color;
box-shadow: $pressed-shadow;
@include background-gradient($pressed-background-color, $pressed-background-gradient);
border-color: $pressed-border-color;
}
.#{$prefix}button-icon {
width: $icon-size;
height: $icon-size;
@include icon($font-size: $icon-font-size, $font-size-big: $icon-font-size-big);
@if $enable-big {
.#{$prefix}big & {
width: $icon-size-big;
height: $icon-size-big;
}
}
color: $icon-color;
}
&.#{$prefix}button-pressing, &.#{$prefix}button-pressed {
.#{$prefix}button-icon {
color: $pressed-icon-color;
}
}
&.#{$prefix}disabled .#{$prefix}button-icon {
color: $disabled-icon-color;
}
&.#{$prefix}iconalign-left .#{$prefix}button-icon {
margin-right: $icon-horizontal-spacing;
@if $enable-big and $icon-horizontal-spacing-big != $icon-horizontal-spacing {
.#{$prefix}big & {
margin-right: $icon-horizontal-spacing-big;
}
}
}
&.#{$prefix}iconalign-right .#{$prefix}button-icon {
margin-left: $icon-horizontal-spacing;
@if $enable-big and $icon-horizontal-spacing-big != $icon-horizontal-spacing {
.#{$prefix}big & {
margin-left: $icon-horizontal-spacing-big;
}
}
}
&.#{$prefix}iconalign-top .#{$prefix}button-icon {
margin-bottom: $icon-vertical-spacing;
@if $enable-big and $icon-vertical-spacing-big != $icon-vertical-spacing {
.#{$prefix}big & {
margin-bottom: $icon-vertical-spacing-big;
}
}
}
&.#{$prefix}iconalign-bottom .#{$prefix}button-icon {
margin-top: $icon-vertical-spacing;
@if $enable-big and $icon-vertical-spacing-big != $icon-vertical-spacing {
.#{$prefix}big & {
margin-top: $icon-vertical-spacing-big;
}
}
}
.#{$prefix}button-label {
min-height: $line-height;
}
@if $icon-size != null or $icon-horizontal-spacing != null {
$horz-spacing: $icon-horizontal-spacing;
@if $horz-spacing == null {
$horz-spacing: $button-icon-horizontal-spacing;
}
$size: $icon-size;
@if $size == null {
$size: $button-icon-size;
}
&.#{$prefix}iconalign-right > .#{$prefix}button-label {
padding-left: calc(#{$size or $default-calc-value} + #{$horz-spacing or $default-calc-value});
}
&.#{$prefix}iconalign-left > .#{$prefix}button-label {
padding-right: calc(#{$size or $default-calc-value} + #{$horz-spacing or $default-calc-value});
}
}
@if $enable-big and ($icon-size-big != null or $icon-horizontal-spacing != null) {
$horz-spacing: $icon-horizontal-spacing-big;
@if $horz-spacing == null {
$horz-spacing: $button-icon-horizontal-spacing-big;
}
$size: $icon-size-big;
@if $size == null {
$size: $button-icon-size-big;
}
&.#{$prefix}iconalign-right > .#{$prefix}button-label {
.#{$prefix}big & {
padding-left: calc(#{$size or $default-calc-value} + #{$horz-spacing or $default-calc-value});
}
}
&.#{$prefix}iconalign-left > .#{$prefix}button-label {
.#{$prefix}big & {
padding-right: calc(#{$size or $default-calc-value} + #{$horz-spacing or $default-calc-value});
}
}
}
&.#{$prefix}disabled {
opacity: $disabled-opacity;
color: $disabled-color;
}
.#{$prefix}badge {
border-color: $badge-border-color;
min-width: $badge-min-width;
@include font($badge-font-weight, $badge-font-size, $badge-line-height, $badge-font-family);
top: $badge-top;
right: $badge-right;
bottom: $badge-bottom;
left: $badge-left;
padding: $badge-padding;
max-width: $badge-max-width;
color: $badge-color;
@include background-gradient($badge-background-color, $badge-background-gradient);
@if $enable-border-radius {
@include border-radius($badge-border-radius);
}
}
}
}
@mixin button-alt-ui {
@include button-ui(
$ui: 'alt',
$color: $panel-tool-color,
$background-color: transparent,
$border-width: 0,
$pressed-background-color: transparent
);
}
@mixin button-action-ui {
@include button-ui(
$ui: 'action',
$background-color: $base-highlight-color
);
}
@mixin button-confirm-ui {
@include button-ui(
$ui: 'confirm',
$background-color: desaturate(darken($confirm-color, 10%), 5%)
);
}
@mixin button-decline-ui {
@include button-ui(
$ui: 'decline',
$background-color: desaturate(darken($alert-color, 10%), 5%)
);
}
@mixin button-round-ui {
@include button-ui(
$ui: 'round',
$border-radius: 10000px,
$border-radius-big: 20000px
);
}
@mixin button-flat-ui {
@include button-ui(
$ui: 'flat',
$border-width: 0,
$background-color: transparent
);
}
@mixin button-plain-ui {
@include button-ui(
$ui: 'plain',
$border-width: 0,
$background-color: transparent
);
}
@mixin button-segmented-ui {
}
@mixin sencha-button-ui($ui-label, $color, $gradient: $button-background-gradient) {
@include button-ui(
$ui: $ui-label,
$background-color: $color,
$background-gradient: $gradient
);
}