$panel-border-color: dynamic($base-color);
$panel-border-width: dynamic(1px);
$panel-border-style: dynamic(solid);
$panel-body-background-color: dynamic($background-color);
$panel-body-color: dynamic($color);
$panel-body-border-color: dynamic($neutral-medium-dark-color);
$panel-body-border-width: dynamic(1px);
$panel-body-border-style: dynamic(solid);
$panel-body-font-weight: dynamic($font-weight-normal);
$panel-body-font-size: dynamic(1rem);
$panel-body-font-size-big: dynamic($panel-body-font-size);
$panel-body-line-height: dynamic($line-height);
$panel-body-line-height-big: dynamic($panel-body-line-height);
$panel-body-font-family: dynamic($font-family);
$panel-body-padding: dynamic(null);
$panel-body-padding-big: dynamic(null);
$panel-header-background-color: dynamic($base-color);
$panel-header-background-gradient: dynamic(null);
$panel-header-color: dynamic(#fff);
$panel-header-border-color: dynamic($panel-border-color);
$panel-header-border-width: dynamic($panel-border-width);
$panel-header-border-style: dynamic(solid);
$panel-header-font-weight: dynamic($font-weight-bold);
$panel-header-font-size: dynamic(1rem);
$panel-header-font-size-big: dynamic($panel-header-font-size);
$panel-header-line-height: dynamic(1.23em);
$panel-header-line-height-big: dynamic(1.6em);
$panel-header-font-family: dynamic($font-family);
$panel-header-padding: dynamic(.77em);
$panel-header-padding-big: dynamic(.67em);
$panel-header-shadow: dynamic(null);
$panel-header-z-index: dynamic(null);
$panel-header-icon-size: dynamic(1em);
$panel-header-icon-size-big: dynamic(1em);
$panel-header-icon-font-size: dynamic($panel-header-line-height);
$panel-header-icon-font-size-big: dynamic($panel-header-line-height-big);
$panel-header-icon-horizontal-spacing: dynamic(.46em);
$panel-header-icon-horizontal-spacing-big: dynamic($panel-header-icon-horizontal-spacing);
$panel-header-icon-vertical-spacing: dynamic(.2em);
$panel-header-icon-vertical-spacing-big: dynamic($panel-header-icon-vertical-spacing);
$panel-header-icon-opacity: dynamic(.5);
$panel-manage-borders: dynamic(true);
$panel-light-ui: dynamic($enable-default-uis);
$panel-anchor-height: dynamic(0.7em);
$panel-anchor-width: dynamic($panel-anchor-height * 2.33);
@mixin panel-ui(
$ui: null,
$border-color: null,
$border-width: null,
$border-style: null,
$body-background-color: null,
$body-color: null,
$body-border-color: null,
$body-border-width: null,
$body-border-style: null,
$body-font-weight: null,
$body-font-size: null,
$body-font-size-big: null,
$body-line-height: null,
$body-line-height-big: null,
$body-font-family: null,
$body-padding: null,
$body-padding-big: null,
$header-background-color: null,
$header-background-gradient: null,
$header-color: null,
$header-border-color: null,
$header-border-width: null,
$header-border-style: null,
$header-font-weight: null,
$header-font-size: null,
$header-font-size-big: null,
$header-line-height: null,
$header-line-height-big: null,
$header-font-family: null,
$header-padding: null,
$header-padding-big: null,
$header-shadow: null,
$header-z-index: null,
$header-icon-size: null,
$header-icon-size-big: null,
$header-icon-font-size: null,
$header-icon-font-size-big: null,
$header-icon-horizontal-spacing: null,
$header-icon-horizontal-spacing-big: null,
$header-icon-vertical-spacing: null,
$header-icon-vertical-spacing-big: null,
$header-icon-opacity: null,
$tool-color: null,
$tool-size: null,
$tool-size-big: null,
$tool-font-size: null,
$tool-font-size-big: null,
$tool-spacing: null,
$tool-spacing-big: null,
$tool-cursor: null,
$tool-opacity: null,
$tool-opacity-over: null,
$tool-opacity-pressed: null,
$manage-borders: $panel-manage-borders,
$anchor-height: null,
$anchor-width: null
) {
$ui-suffix: ui-suffix($ui);
.x-panel#{$ui-suffix} {
@if not $manage-borders {
@include border($border-width, $border-style, $border-color)
}
@if not is-null($anchor-height) and not is-null($anchor-width) {
@if is-null($border-width) {
$border-width: 0;
}
$anchor-border-width: $anchor-width / 2;
.#{$prefix}anchor {
border: $anchor-border-width solid transparent;
}
.#{$prefix}anchor-top {
border-top-width: 0;
border-bottom: $anchor-height solid darken($border-color, 5%);
@if ($border-width != 0) {
top: calc(-#{$anchor-height or $default-calc-value} + #{$border-width or $panel-border-width or $default-calc-value});
} @else {
top: -$anchor-height;
}
}
.#{$prefix}anchor-bottom {
border-bottom-width: 0;
border-top: $anchor-height solid darken($border-color, 5%);
@if ($border-width != 0) {
bottom: calc(-#{$anchor-height or $default-calc-value} + #{$border-width or $panel-border-width or $default-calc-value});
} @else {
bottom: -$anchor-height;
}
}
.#{$prefix}anchor-left {
border-left-width: 0;
border-right: $anchor-height solid darken($border-color, 5%);
@if ($border-width != 0) {
left: calc(-#{$anchor-height or $default-calc-value} + #{$border-width or $panel-border-width or $default-calc-value});
} @else {
left: -$anchor-height;
}
}
.#{$prefix}anchor-right {
border-right-width: 0;
border-left: $anchor-height solid darken($border-color, 5%);
@if ($border-width != 0) {
right: calc(-#{$anchor-height or $default-calc-value} + #{$border-width or $panel-border-width or $default-calc-value});
} @else {
right: -$anchor-height;
}
}
@if $body-background-color != $border-color and $border-width != 0 {
.#{$prefix}anchor:after {
border: $anchor-border-width solid transparent;
}
.#{$prefix}anchor-top:after {
border-top-width: 0;
border-bottom: $anchor-height solid $body-background-color;
left: calc(-#{$anchor-border-width or $default-calc-value} + #{$border-width or $default-calc-value});
top: $border-width;
}
.#{$prefix}anchor-bottom:after {
border-bottom-width: 0;
border-top: $anchor-height solid $body-background-color;
left: calc(-#{$anchor-border-width or $default-calc-value} + #{$border-width or $default-calc-value});
bottom: $border-width;
}
.#{$prefix}anchor-left:after {
border-left-width: 0;
border-right: $anchor-height solid $body-background-color;
top: calc(-#{$anchor-border-width or $default-calc-value} + #{$border-width or $default-calc-value});
left: $border-width;
}
.#{$prefix}anchor-right:after {
border-right-width: 0;
border-left: $anchor-height solid $body-background-color;
top: calc(-#{$anchor-border-width or $default-calc-value} + #{$border-width or $default-calc-value});
right: $border-width;
}
}
}
}
.x-panel-inner#{$ui-suffix} {
padding: $body-padding;
background-color: $body-background-color;
color: $body-color;
@include border($body-border-width, $body-border-style, $body-border-color);
@include font($body-font-weight, $body-font-size, $body-line-height, $body-font-family);
@if $enable-big {
.x-big & {
@if $body-font-size-big != $body-font-size {
font-size: $body-font-size-big;
}
@if $body-line-height-big != $body-line-height {
line-height: $body-line-height-big;
}
padding: $body-padding-big;
}
}
}
.x-panel-header#{$ui-suffix} {
@include background-gradient($header-background-color, $header-background-gradient);
color: $header-color;
padding: $header-padding;
@include font($header-font-weight, $header-font-size, $header-line-height, $header-font-family);
@include border($header-border-width, $header-border-style, $header-border-color);
box-shadow: $header-shadow;
z-index: $header-z-index;
@if $header-shadow != null {
position: relative;
}
@if $enable-big {
.x-big & {
padding: $header-padding-big;
font-size: $header-font-size-big;
line-height: $header-line-height-big;
}
}
.x-tool {
width: $tool-size;
height: $tool-size;
line-height: $tool-size;
font-size: $tool-font-size;
opacity: $tool-opacity;
cursor: $tool-cursor;
margin-left: $tool-spacing;
color: $tool-color;
&:hover {
opacity: $tool-opacity-over;
}
&:active {
opacity: $tool-opacity-pressed;
}
@if $enable-big {
.x-big & {
width: $tool-size-big;
height: $tool-size-big;
line-height: $tool-size-big;
font-size: $tool-font-size-big;
}
}
}
}
.x-panel-title#{$ui-suffix} {
.x-panel-title-icon {
width: $header-icon-size;
height: $header-icon-size;
line-height: $header-icon-size;
font-size: $header-icon-font-size;
opacity: $header-icon-opacity;
@if $enable-big {
.x-big & {
width: $header-icon-size-big;
height: $header-icon-size-big;
line-height: $header-icon-size-big;
font-size: $header-icon-font-size-big;
}
}
&.x-panel-title-icon-top {
margin-bottom: $header-icon-vertical-spacing;
@if $enable-big {
.x-big & {
margin-bottom: $header-icon-vertical-spacing-big;
}
}
}
&.x-panel-title-icon-right {
margin-left: $header-icon-horizontal-spacing;
@if $enable-big {
.x-big & {
margin-left: $header-icon-horizontal-spacing-big;
}
}
}
&.x-panel-title-icon-bottom {
margin-top: $header-icon-vertical-spacing;
@if $enable-big {
.x-big & {
margin-top: $header-icon-vertical-spacing-big;
}
}
}
&.x-panel-title-icon-left {
margin-right: $header-icon-horizontal-spacing;
@if $enable-big {
.x-big & {
margin-right: $header-icon-horizontal-spacing-big;
}
}
}
}
}
@if $manage-borders {
@include border-management(
$parent-cls: panel#{$ui-suffix},
$border-width: 1px,
$border-color: $border-color
);
}
}
@mixin panel-light-ui {
$header-bg: mix($base-light-color, $neutral-light-color, 30%);
@include panel-ui(
$ui: 'light',
$header-color: #666,
$header-background-color: $header-bg,
$border-color: $header-bg,
$header-border-color: $header-bg,
$body-border-color: $header-bg,
$tool-color: #666,
$anchor-width: $panel-anchor-width,
$anchor-height: $panel-anchor-height
);
}