319 lines
7.7 KiB
SCSS

@charset "UTF-8";
// balloon mixins
// --------------------------------------------------
@mixin balloon-bounding($border-style) {
position: absolute;
max-width: $balloon-size-max-width;
border-style: $border-style;
border-radius: $balloon-corner;
}
@mixin balloon-state(
$contentColor,
$colorBorder,
$colorBg,
$shadow,
$widthBorder
) {
color: $contentColor;
border-color: $colorBorder;
background-color: $colorBg;
box-shadow: $shadow;
border-width: $widthBorder;
}
@mixin balloon-size(
$padding-top,
$padding-right,
$padding-bottom,
$padding-left
) {
padding: $padding-top $padding-right $padding-bottom $padding-left;
}
@mixin balloon-arrow(
$width,
$height,
$colorBorder,
$colorBg,
$shadow,
$widthBorder,
$arrorExpose
) {
$shadow-top: $balloon-shadow-top;
$shadow-right: $balloon-shadow-right;
$shadow-bottom: $balloon-shadow-bottom;
$shadow-left: $balloon-shadow-left;
@if $shadow == $shadow-zero {
$shadow-top: null;
$shadow-right: null;
$shadow-bottom: null;
$shadow-left: null;
}
&:after {
position: absolute;
width: $height;
height: $height;
content: '';
transform: rotate(45deg);
box-sizing: content-box !important;
border: $widthBorder $balloon-border-style $colorBorder;
background-color: $colorBg;
z-index: -1;
}
&.#{$css-prefix}balloon-top:after {
top: $arrorExpose;
left: calc(50% + #{$arrorExpose});
border-right: none;
border-bottom: none;
box-shadow: $shadow-top;
}
&.#{$css-prefix}balloon-right:after {
top: calc(50% + #{$arrorExpose});
right: $arrorExpose;
border-left: none;
border-bottom: none;
box-shadow: $shadow-right;
}
&.#{$css-prefix}balloon-bottom:after {
bottom: $arrorExpose;
left: calc(50% + #{$arrorExpose});
border-top: none;
border-left: none;
box-shadow: $shadow-bottom;
}
&.#{$css-prefix}balloon-left:after {
top: calc(50% + #{$arrorExpose});
left: $arrorExpose;
border-top: none;
border-right: none;
box-shadow: $shadow-left;
}
&.#{$css-prefix}balloon-left-top:after {
top: $balloon-size-arrow-margin;
left: $arrorExpose;
border-top: none;
border-right: none;
box-shadow: $shadow-left;
}
&.#{$css-prefix}balloon-left-bottom:after {
bottom: $balloon-size-arrow-margin;
left: $arrorExpose;
border-top: none;
border-right: none;
box-shadow: $shadow-left;
}
&.#{$css-prefix}balloon-right-top:after {
top: $balloon-size-arrow-margin;
right: $arrorExpose;
border-bottom: none;
border-left: none;
box-shadow: $shadow-right;
}
&.#{$css-prefix}balloon-right-bottom:after {
right: $arrorExpose;
bottom: $balloon-size-arrow-margin;
border-bottom: none;
border-left: none;
box-shadow: $shadow-right;
}
&.#{$css-prefix}balloon-top-left:after {
top: $arrorExpose;
left: $balloon-size-arrow-margin;
border-right: none;
border-bottom: none;
box-shadow: $shadow-top;
}
&.#{$css-prefix}balloon-top-right:after {
top: $arrorExpose;
right: $balloon-size-arrow-margin;
border-right: none;
border-bottom: none;
box-shadow: $shadow-top;
}
&.#{$css-prefix}balloon-bottom-left:after {
bottom: $arrorExpose;
left: $balloon-size-arrow-margin;
border-top: none;
border-left: none;
box-shadow: $shadow-bottom;
}
&.#{$css-prefix}balloon-bottom-right:after {
right: $balloon-size-arrow-margin;
bottom: $arrorExpose;
border-top: none;
border-left: none;
box-shadow: $shadow-bottom;
}
}
@mixin balloon-close(
$top,
$right,
$iconSize,
$colorClose,
$colorCloseHover
) {
.#{$css-prefix}balloon-close {
position: absolute;
top: $top;
right: $right;
font-size: $iconSize;
cursor: pointer;
.#{$css-prefix}icon {
@include icon-square-size($iconSize);
}
color: $colorClose;
:hover {
color: $colorCloseHover;
}
}
}
@mixin show-hidden() {
&.visible {
display: block;
}
&.hidden {
display: none;
}
}
@mixin tooltip-state(
$contentColor,
$colorBorder,
$colorBg,
$shadow,
$widthBorder
) {
color: $contentColor;
border-color: $colorBorder;
background-color: $colorBg;
box-shadow: $shadow;
border-width: $widthBorder;
}
@mixin tooltip-arrow(
$width,
$height,
$colorBorder,
$colorBg
) {
$shadow-top: null;
$shadow-right: null;
$shadow-bottom: null;
$shadow-left: null;
&:after {
position: absolute;
width: $width;
height: $height;
content: '';
transform: rotate(45deg);
box-sizing: content-box !important;
border: $balloon-tooltip-border-width $balloon-tooltip-border-style $colorBorder;
background-color: $colorBg;
z-index: -1;
}
&-top:after {
top: $balloon-size-arrow-expose;
left: calc(50% + #{$balloon-size-arrow-expose});
border-right: none;
border-bottom: none;
box-shadow: $shadow-top;
}
&-right:after {
top: calc(50% + #{$balloon-size-arrow-expose});
right: $balloon-size-arrow-expose;
border-left: none;
border-bottom: none;
box-shadow: $shadow-right;
}
&-bottom:after {
bottom: $balloon-size-arrow-expose;
left: calc(50% + #{$balloon-size-arrow-expose});
border-top: none;
border-left: none;
box-shadow: $shadow-bottom;
}
&-left:after {
top: calc(50% + #{$balloon-size-arrow-expose});
left: $balloon-size-arrow-expose;
border-top: none;
border-right: none;
box-shadow: $shadow-left;
}
&-left-top:after {
top: $balloon-size-arrow-margin;
left: $balloon-size-arrow-expose;
border-top: none;
border-right: none;
box-shadow: $shadow-left;
}
&-left-bottom:after {
bottom: $balloon-size-arrow-margin;
left: $balloon-size-arrow-expose;
border-top: none;
border-right: none;
box-shadow: $shadow-left;
}
&-right-top:after {
top: $balloon-size-arrow-margin;
right: $balloon-size-arrow-expose;
border-bottom: none;
border-left: none;
box-shadow: $shadow-right;
}
&-right-bottom:after {
right: $balloon-size-arrow-expose;
bottom: $balloon-size-arrow-margin;
border-bottom: none;
border-left: none;
box-shadow: $shadow-right;
}
&-top-left:after {
top: $balloon-size-arrow-expose;
left: $balloon-size-arrow-margin;
border-right: none;
border-bottom: none;
box-shadow: $shadow-top;
}
&-top-right:after {
top: $balloon-size-arrow-expose;
right: $balloon-size-arrow-margin;
border-right: none;
border-bottom: none;
box-shadow: $shadow-top;
}
&-bottom-left:after {
bottom: $balloon-size-arrow-expose;
left: $balloon-size-arrow-margin;
border-top: none;
border-left: none;
box-shadow: $shadow-bottom;
}
&-bottom-right:after {
right: $balloon-size-arrow-margin;
bottom: $balloon-size-arrow-expose;
border-top: none;
border-left: none;
box-shadow: $shadow-bottom;
}
}