$listitem-color: dynamic($color);
$listitem-hovered-color: dynamic(null);
$listitem-pressed-color: dynamic(null);
$listitem-selected-color: dynamic(null);
$listitem-background-color: dynamic($background-color);
$listitem-alt-background-color: dynamic(darken($listitem-background-color, 2));
$listitem-hovered-background-color: dynamic(mix(#fff, $base-light-color, 65%));
$listitem-pressed-background-color: dynamic(null);
$listitem-selected-background-color: dynamic(mix(#fff, $base-light-color, 25%));
$listitem-border-width: dynamic(1px);
$listitem-border-style: dynamic(solid);
$listitem-border-color: dynamic($neutral-highlight-color);
$listitem-hovered-border-color: dynamic($listitem-hovered-background-color);
$listitem-pressed-border-color: dynamic($listitem-pressed-background-color);
$listitem-selected-border-color: dynamic($listitem-selected-background-color);
$listitem-font-weight: dynamic($font-weight-normal);
$listitem-font-size: dynamic(1rem);
$listitem-font-size-big: dynamic(null);
$listitem-line-height: dynamic(1.25em);
$listitem-line-height-big: dynamic(1.2em);
$listitem-font-family: dynamic($font-family);
$listitem-padding: dynamic(.308em .6em);
$listitem-padding-big: dynamic(.467em 1em);
$listitem-disclosure-background-color: dynamic(null);
$listitem-pressed-disclosure-background-color: dynamic(null);
$listitem-disclosure-pressed-background-color: dynamic(null);
$listitem-disclosure-border-radius: dynamic(null);
$listitem-disclosure-border-radius-big: dynamic($listitem-disclosure-border-radius);
$listitem-disclosure-icon: dynamic($fa-var-arrow-circle-right);
$listitem-disclosure-icon-color: dynamic($neutral-dark-color);
$listitem-pressed-disclosure-icon-color: dynamic(null);
$listitem-disclosure-pressed-icon-color: dynamic(null);
$listitem-disclosure-icon-size: dynamic(1.23em);
$listitem-disclosure-icon-size-big: dynamic(2em);
$listitem-disclosure-icon-font-size: dynamic($listitem-disclosure-icon-size);
$listitem-disclosure-icon-font-size-big: dynamic($listitem-disclosure-icon-size-big);
$listitem-disclosure-margin: dynamic(null 0.6em null null);
$listitem-disclosure-margin-big: dynamic(null 0.6em null 1em);
@mixin listitem-ui(
$ui: null,
$xtype: listitem,
$color: null,
$hovered-color: null,
$pressed-color: null,
$selected-color: null,
$background-color: null,
$alt-background-color: null,
$hovered-background-color: null,
$pressed-background-color: null,
$selected-background-color: null,
$border-width: null,
$border-style: null,
$border-color: null,
$hovered-border-color: null,
$pressed-border-color: null,
$selected-border-color: 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,
$disclosure-background-color: null,
$pressed-disclosure-background-color: null,
$disclosure-pressed-background-color: null,
$disclosure-border-radius: null,
$disclosure-border-radius-big: null,
$disclosure-icon: null,
$disclosure-icon-color: null,
$pressed-disclosure-icon-color: null,
$disclosure-pressed-icon-color: null,
$disclosure-icon-size: null,
$disclosure-icon-size-big: null,
$disclosure-icon-font-size: null,
$disclosure-icon-font-size-big: null,
$disclosure-margin: null,
$disclosure-margin-big: null
) {
$ui-suffix: ui-suffix($ui);
.#{$prefix}#{$xtype}#{$ui-suffix} {
@include font($font-weight, $font-size, $line-height, $font-family);
@include listitem-base(
$xtype: $xtype,
$color: $color,
$hovered-color: $hovered-color,
$pressed-color: $pressed-color,
$selected-color: $selected-color,
$background-color: $background-color,
$alt-background-color: $alt-background-color,
$hovered-background-color: $hovered-background-color,
$pressed-background-color: $pressed-background-color,
$selected-background-color: $selected-background-color,
$border-width: $border-width,
$border-style: $border-style,
$border-color: $border-color,
$hovered-border-color: $hovered-border-color,
$pressed-border-color: $pressed-border-color,
$selected-border-color: $selected-border-color
);
@if $enable-big {
.#{$prefix}big & {
font-size: $font-size-big;
line-height: $line-height-big;
}
}
}
.#{$prefix}#{$xtype}-body#{$ui-suffix} {
padding: $padding;
@if $enable-big {
.#{$prefix}big & {
padding: $padding-big;
}
}
}
.#{$prefix}#{$xtype}-disclosure#{$ui-suffix} {
@include margin($disclosure-margin);
@if $enable-big {
.#{$prefix}big & {
@include margin($disclosure-margin-big);
}
}
.#{$prefix}icon-el {
color: $disclosure-icon-color;
background-color: $disclosure-background-color;
border-radius: $disclosure-border-radius;
height: $disclosure-icon-size;
width: $disclosure-icon-size;
.#{$prefix}#{$xtype}.#{$prefix}pressed & {
color: $pressed-disclosure-icon-color;
background-color: $pressed-disclosure-background-color;
}
@if $enable-big {
.#{$prefix}big & {
border-radius: $disclosure-border-radius-big;
height: $disclosure-icon-size-big;
width: $disclosure-icon-size-big;
}
}
@include icon(
$icon: $disclosure-icon,
$font-size: $disclosure-icon-font-size,
$font-size-big: $disclosure-icon-font-size-big
);
&:active {
background-color: $disclosure-pressed-background-color;
color: $disclosure-pressed-icon-color;
}
}
}
}
@mixin listitem-base(
$xtype: null,
$color: null,
$hovered-color: null,
$pressed-color: null,
$selected-color: null,
$background-color: null,
$alt-background-color: null,
$hovered-background-color: null,
$pressed-background-color: null,
$selected-background-color: null,
$border-width: null,
$border-style: null,
$border-color: null,
$hovered-border-color: null,
$pressed-border-color: null,
$selected-border-color: null
) {
color: $color;
background-color: $background-color;
@include border-top($border-width, $border-style, $border-color);
&.#{$prefix}last {
@include border-bottom($border-width, $border-style, $border-color);
}
&.#{$prefix}odd {
background-color: $alt-background-color;
}
&.#{$prefix}hovered {
background-color: $hovered-background-color;
color: $hovered-color;
border-color: $hovered-border-color;
+ .#{$prefix}#{$xtype} {
border-top-color: $hovered-border-color;
}
}
&.#{$prefix}#{$xtype}.#{$prefix}selected {
background-color: $selected-background-color;
color: $selected-color;
border-color: $selected-border-color;
}
&.#{$prefix}selected + .#{$prefix}#{$xtype} {
border-top-color: $selected-border-color;
}
&.#{$prefix}#{$xtype}.#{$prefix}pressed {
background-color: $pressed-background-color;
color: $pressed-color;
border-color: $pressed-border-color;
}
&.#{$prefix}pressed + .#{$prefix}#{$xtype} {
border-top-color: $pressed-border-color;
}
}