papercss/src/components/_popovers.scss

100 lines
1.9 KiB
SCSS
Raw Normal View History

2017-11-13 15:38:57 +01:00
// Core popovers
[popover-top],
[popover-right],
[popover-bottom],
2018-05-24 14:13:53 +02:00
[popover-left] {
2017-10-31 00:00:40 +01:00
margin: 24px;
2018-05-24 14:13:53 +02:00
position: relative;
2017-10-31 00:00:40 +01:00
2017-11-13 15:38:57 +01:00
// Popover hover trigger
&:hover {
2018-05-24 14:13:53 +02:00
&::after {
2017-11-13 15:38:57 +01:00
opacity: 1;
transition: opacity 235ms ease-in-out, visibility 0s linear;
visibility: visible;
2017-11-13 15:38:57 +01:00
}
2017-10-31 00:00:40 +01:00
}
2017-11-13 15:38:57 +01:00
// Creating popover::after element
2018-05-24 14:13:53 +02:00
&::after {
@include border-style();
2020-08-26 00:39:08 +02:00
@include color('background-color', 'light-dark');
@include color('border-color', 'light-dark');
@include color('color', 'primary-inverse');
2020-09-07 02:11:51 +02:00
border-style: solid;
border-width: 2px;
2018-05-24 14:13:53 +02:00
font-size: 0.7em;
2017-11-13 15:38:57 +01:00
left: 50%;
2018-05-24 14:13:53 +02:00
min-width: 80px;
2017-11-13 15:38:57 +01:00
opacity: 0;
padding: 4px 2px;
2018-05-24 14:13:53 +02:00
position: absolute;
2017-11-13 15:38:57 +01:00
text-align: center;
2018-05-24 14:13:53 +02:00
top: -6px;
2017-11-13 15:38:57 +01:00
transform: translateX(-50%) translateY(-100%);
2023-03-15 15:28:57 +01:00
transition: opacity 235ms ease-in-out, visibility 0s linear 235ms;
visibility: hidden;
2017-11-13 15:38:57 +01:00
}
2017-10-31 00:00:40 +01:00
}
// Popover positioning: left, right, top, bottom
2017-11-13 15:38:57 +01:00
[popover-left] {
2018-05-24 14:13:53 +02:00
&::before {
2017-11-13 15:38:57 +01:00
left: 0;
margin-left: -12px;
2018-05-24 14:13:53 +02:00
top: 50%;
2017-12-19 17:52:33 +01:00
transform: translateY(-50%) rotate(-90deg);
2017-11-13 15:38:57 +01:00
}
2017-10-31 00:00:40 +01:00
2018-05-24 14:13:53 +02:00
&::after {
2017-11-13 15:38:57 +01:00
content: attr(popover-left);
left: 0;
margin-left: -8px;
2018-05-24 14:13:53 +02:00
top: 50%;
2017-11-13 15:38:57 +01:00
transform: translateX(-100%) translateY(-50%);
}
2017-10-31 00:00:40 +01:00
}
2017-11-13 15:38:57 +01:00
[popover-right] {
2018-05-24 14:13:53 +02:00
&::before {
2017-11-13 15:38:57 +01:00
left: 100%;
margin-left: 1px;
2018-05-24 14:13:53 +02:00
top: 50%;
2017-11-13 15:38:57 +01:00
transform: translatey(-50%) rotate(90deg);
}
2017-10-31 00:00:40 +01:00
2018-05-24 14:13:53 +02:00
&::after {
2017-11-13 15:38:57 +01:00
content: attr(popover-right);
left: 100%;
margin-left: 8px;
2018-05-24 14:13:53 +02:00
top: 50%;
2017-11-13 15:38:57 +01:00
transform: translateX(0%) translateY(-50%);
}
2017-10-31 00:00:40 +01:00
}
2017-11-13 15:38:57 +01:00
[popover-top] {
2018-05-24 14:13:53 +02:00
&::before {
2017-11-13 15:38:57 +01:00
left: 50%;
}
2017-10-31 00:00:40 +01:00
2018-05-24 14:13:53 +02:00
&::after {
2017-11-13 15:38:57 +01:00
content: attr(popover-top);
left: 50%;
}
2017-10-31 00:00:40 +01:00
}
2017-11-13 15:38:57 +01:00
[popover-bottom] {
2018-05-24 14:13:53 +02:00
&::before {
2017-11-13 15:38:57 +01:00
margin-top: 8px;
2018-05-24 14:13:53 +02:00
top: 100%;
2017-11-13 15:38:57 +01:00
transform: translateX(-50%) translatey(-100%) rotate(-180deg);
}
2017-10-31 00:00:40 +01:00
2018-05-24 14:13:53 +02:00
&::after {
2017-11-13 15:38:57 +01:00
content: attr(popover-bottom);
margin-top: 8px;
2018-05-24 14:13:53 +02:00
top: 100%;
2017-11-13 15:38:57 +01:00
transform: translateX(-50%) translateY(0%);
}
2017-10-31 00:00:40 +01:00
}