@atlassian/aui
Version:
Atlassian User Interface library
282 lines (235 loc) • 7.66 kB
text/less
@import (reference) './imports/global';
/*! AUI Inline Dialog */
aui-inline-dialog {
--aui-inline-dialog-border-width: 0px;
--aui-tail-deg: 0deg;
--aui-tail-x: 0;
--aui-tail-y: 0;
--aui-tail-w: @aui-inline-dialog2-arrow-side-length;
--aui-tail-bw: calc(var(--aui-inline-dialog-border-width) + @aui-inline-dialog2-arrow-border-width);
display: block;
position: absolute;
z-index: 100;
// Handle FOUC
&:not([resolved]) {
display: none;
}
&.aui-layer:not([open]) {
#aui.transition.fadeOut();
display: block;
}
&.aui-layer[open] {
#aui.transition.fadeIn();
}
// content
.aui-inline-dialog-contents {
#aui-inline-dialog.aui-inline-dialog-style();
margin: var(--aui-tail-y) var(--aui-tail-x);
overflow: hidden;
& {
#aui-inline-dialog.form-interop();
}
}
// The inline dialog's "tail" is implemented using 2 pseudo-elements.
// - `:after` is the faux tail extension of the inline dialog's background colour.
// - `:before` adds a faux border around the tail.
&:before,
&:after {
border: var(--aui-tail-w) solid transparent;
border-bottom-color: @aui-inline-dialog-bg-color;
box-sizing: border-box;
content: "";
display: inline-block;
height: 0;
pointer-events: none;
position: absolute;
width: 0;
transform: rotate(var(--aui-tail-deg));
}
&:before {
border-bottom-color: @aui-inline-dialog-border-color;
}
// 'top _' alignment
&.aui-alignment-side-top,
&.aui-alignment-side-bottom[data-popper-placement*="top"] {
--aui-tail-deg: 180deg;
--aui-tail-y: var(--aui-tail-w);
&:before {
top: calc(~"100%" - var(--aui-tail-w));
}
&:after {
top: calc(~"100%" - var(--aui-tail-w) - var(--aui-tail-bw));
}
}
// 'bottom _' alignment
&.aui-alignment-side-bottom,
&.aui-alignment-side-top[data-popper-placement*="bottom"] {
--aui-tail-deg: 0deg;
--aui-tail-y: var(--aui-tail-w);
&:before {
top: calc(~"0%" - var(--aui-tail-w));
}
&:after {
top: calc(~"0%" - var(--aui-tail-w) + var(--aui-tail-bw));
}
}
// 'left _' alignment
&.aui-alignment-side-left,
&.aui-alignment-side-right[data-popper-placement*="left"] {
--aui-tail-deg: 90deg;
--aui-tail-x: var(--aui-tail-w);
&:before {
left: calc(~"100%" - var(--aui-tail-w));
}
&:after {
left: calc(~"100%" - var(--aui-tail-w) - var(--aui-tail-bw));
}
}
// 'right _' alignment
&.aui-alignment-side-right,
&.aui-alignment-side-left[data-popper-placement*="right"] {
--aui-tail-deg: -90deg;
--aui-tail-x: var(--aui-tail-w);
&:before {
left: calc(~"0%" - var(--aui-tail-w));
}
&:after {
left: calc(~"0%" - var(--aui-tail-w) + var(--aui-tail-bw));
}
}
// '_ left' alignment
&.aui-alignment-snap-left:before,
&.aui-alignment-snap-left:after {
left: calc(var(--aui-tail-w) + @aui-inline-dialog2-arrow-edge-offset);
}
// '_ center' alignment
&.aui-alignment-snap-center:before,
&.aui-alignment-snap-center:after {
left: calc(~"50%" - var(--aui-tail-w));
}
// '_ right' alignment
&.aui-alignment-snap-right:before,
&.aui-alignment-snap-right:after {
left: calc(~"100%" - ((var(--aui-tail-w) * 3) - @aui-inline-dialog2-arrow-edge-offset));
}
// '_ top' alignment
&.aui-alignment-snap-top:before,
&.aui-alignment-snap-top:after {
top: calc(var(--aui-tail-w) + @aui-inline-dialog2-arrow-edge-offset);
}
// '_ middle' alignment
&.aui-alignment-snap-middle:before,
&.aui-alignment-snap-middle:after {
top: calc(~"50%" - var(--aui-tail-w));
}
// '_ bottom' alignment
&.aui-alignment-snap-bottom:before,
&.aui-alignment-snap-bottom:after {
top: calc(~"100%" - (var(--aui-tail-w) * 3) - @aui-inline-dialog2-arrow-edge-offset);
}
}
.aui-inline-dialog {
display: none;
position: absolute;
z-index: 100;
.aui-inline-dialog-contents,
.contents {
#aui-inline-dialog.aui-inline-dialog-style();
overflow: hidden;
& {
#aui-inline-dialog.form-interop();
}
&.aui-inline-dialog-no-shadow {
box-shadow: none;
}
&.aui-inline-dialog-auto-width {
width: auto;
}
}
/*Inline Dialog Arrow */
.aui-inline-dialog-arrow,
.arrow {
position: absolute;
height: 16px; /* for SVG positioning */
top: -7px; /* matches #inline-dialog-shim */
width: 16px; /* for SVG positioning */
}
.aui-inline-dialog-arrow.aui-css-arrow,
.arrow.aui-css-arrow {
width: 1px;
}
.aui-inline-dialog-arrow.aui-css-arrow::after,
.arrow.aui-css-arrow::after,
.aui-inline-dialog-arrow.aui-css-arrow::before,
.arrow.aui-css-arrow::before {
border-color: @aui-inline-dialog-border-color transparent;
border-style: solid;
border-width: 0 8px 8px;
content: "";
left: -8px;
position: absolute;
top: 0;
}
.aui-inline-dialog-arrow.aui-css-arrow:after,
.arrow.aui-css-arrow:after {
border-bottom-color: @aui-inline-dialog-bg-color;
top: 1px;
}
.aui-inline-dialog-arrow.aui-css-arrow.aui-bottom-arrow:after,
.arrow.aui-css-arrow.aui-bottom-arrow:after,
.aui-inline-dialog-arrow.aui-css-arrow.aui-bottom-arrow:before,
.arrow.aui-css-arrow.aui-bottom-arrow:before {
border-width: 8px 8px 0;
}
.aui-inline-dialog-arrow.aui-css-arrow.aui-bottom-arrow:after,
.arrow.aui-css-arrow.aui-bottom-arrow:after {
border-top-color: @aui-inline-dialog-bg-color;
top: -1px;
}
.aui-inline-dialog-arrow.aui-css-arrow.aui-right-arrow,
.arrow.aui-css-arrow.aui-right-arrow {
right: -7px;
}
.aui-inline-dialog-arrow.aui-css-arrow.aui-left-arrow:after,
.arrow.aui-css-arrow.aui-left-arrow:after,
.aui-inline-dialog-arrow.aui-css-arrow.aui-left-arrow:before,
.arrow.aui-css-arrow.aui-left-arrow:before {
border-width: 8px 8px 8px 0;
border-color: transparent @aui-inline-dialog-border-color;
}
.aui-inline-dialog-arrow.aui-css-arrow.aui-left-arrow:after,
.arrow.aui-css-arrow.aui-left-arrow:after {
border-color: transparent @aui-inline-dialog-bg-color transparent transparent;
top: 0;
right: 0;
}
.aui-inline-dialog-arrow.aui-css-arrow.aui-right-arrow:after,
.arrow.aui-css-arrow.aui-right-arrow:after,
.aui-inline-dialog-arrow.aui-css-arrow.aui-right-arrow:before,
.arrow.aui-css-arrow.aui-right-arrow:before {
border-width: 8px 0 8px 8px;
border-color: transparent @aui-inline-dialog-border-color;
left: -7px;
}
.aui-inline-dialog-arrow.aui-css-arrow.aui-right-arrow:after,
.arrow.aui-css-arrow.aui-right-arrow:after {
border-color: transparent transparent transparent @aui-inline-dialog-bg-color;
top: 0;
right: 0;
left: -8px;
}
}
/* Shim is for lte IE9 - class is added via JS */
.inline-dialog-shim {
border: none;
display: block;
height: 0;
left: 0;
position: absolute;
top: 0;
width: 0;
z-index: -2;
}
#inline-dialog-shim {
display: none;
}