refactor: format tooltip

This commit is contained in:
Lucas Larroche 2022-09-11 14:59:43 +07:00
parent e33f67e39c
commit ca40486965
10 changed files with 124 additions and 114 deletions

View file

@ -11,8 +11,8 @@
cursor: help;
}
&[data-placement=top]::before,
&[data-placement=top]::after,
&[data-placement="top"]::before,
&[data-placement="top"]::after,
&::before,
&::after {
display: block;
@ -36,8 +36,9 @@
opacity: 0;
pointer-events: none;
}
// Caret
&[data-placement=top]::after,
&[data-placement="top"]::after,
&::after {
padding: 0;
transform: translate(-50%, 0rem);
@ -49,20 +50,23 @@
content: "";
color: var(--tooltip-background-color);
}
&[data-placement=bottom] {
&[data-placement="bottom"] {
&::before,
&::after {
top: 100%;
bottom: auto;
transform: translate(-50%, .25rem);
}
&:after{
transform: translate(-50%, -.3rem);
border: .3rem solid transparent;
border-bottom: .3rem solid;
}
}
&[data-placement=left] {
&[data-placement="left"] {
&::before,
&::after {
top: 50%;
@ -71,13 +75,15 @@
left: auto;
transform: translate(-.25rem, -50%);
}
&:after{
transform: translate(.3rem, -50%);
border: .3rem solid transparent;
border-left: .3rem solid;
}
}
&[data-placement=right] {
&[data-placement="right"] {
&::before,
&::after {
top: 50%;
@ -86,6 +92,7 @@
left: 100%;
transform: translate(.25rem, -50%);
}
&:after{
transform: translate(-.3rem, -50%);
border: .3rem solid transparent;
@ -102,11 +109,13 @@
}
}
// Animations, excluding touch devices
@if $enable-transitions {
// Animations, excluding touch devices
@media (hover: hover) and (pointer: fine) {
&[data-placement=bottom]:focus,
&[data-placement=bottom]:hover
&[data-placement="bottom"]:focus,
&[data-placement="bottom"]:hover
&:focus,
&:hover {
&::before,
@ -119,7 +128,8 @@
animation-name: tooltip-caret-slide-top;
}
}
&[data-placement=bottom] {
&[data-placement="bottom"] {
&:focus,
&:hover {
&::before,
@ -133,7 +143,8 @@
}
}
}
&[data-placement=left] {
&[data-placement="left"] {
&:focus,
&:hover {
&::before,
@ -147,7 +158,8 @@
}
}
}
&[data-placement=right] {
&[data-placement="right"] {
&:focus,
&:hover {
&::before,
@ -162,104 +174,105 @@
}
}
}
}
}
// Animations
@if $enable-transitions {
@keyframes tooltip-slide-top {
from {
transform: translate(-50%, .75rem);
opacity: 0;
@keyframes tooltip-slide-top {
from {
transform: translate(-50%, .75rem);
opacity: 0;
}
to {
transform: translate(-50%, -.25rem);
opacity: 1;
}
}
to {
transform: translate(-50%, -.25rem);
opacity: 1;
@keyframes tooltip-caret-slide-top {
from {
opacity: 0;
}
50% {
transform: translate(-50%, -.25rem);
opacity: 0;
}
to {
transform: translate(-50%, 0rem);
opacity: 1;
}
}
}
@keyframes tooltip-caret-slide-top {
from {
opacity: 0;
@keyframes tooltip-slide-bottom {
from {
transform: translate(-50%, -.75rem);
opacity: 0;
}
to {
transform: translate(-50%, .25rem);
opacity: 1;
}
}
50% {
transform: translate(-50%, -.25rem);
opacity: 0;
@keyframes tooltip-caret-slide-bottom {
from {
opacity: 0;
}
50% {
transform: translate(-50%, -.5rem);
opacity: 0;
}
to {
transform: translate(-50%, -.3rem);
opacity: 1;
}
}
to {
transform: translate(-50%, 0rem);
opacity: 1;
@keyframes tooltip-slide-left {
from {
transform: translate(.75rem, -50%);
opacity: 0;
}
to {
transform: translate(-.25rem, -50%);
opacity: 1;
}
}
}
@keyframes tooltip-slide-bottom {
from {
transform: translate(-50%, -.75rem);
opacity: 0;
@keyframes tooltip-caret-slide-left {
from {
opacity: 0;
}
50% {
transform: translate(.05rem, -50%);
opacity: 0;
}
to {
transform: translate(.3rem, -50%);
opacity: 1;
}
}
to {
transform: translate(-50%, .25rem);
opacity: 1;
@keyframes tooltip-slide-right {
from {
transform: translate(-.75rem, -50%);
opacity: 0;
}
to {
transform: translate(.25rem, -50%);
opacity: 1;
}
}
}
@keyframes tooltip-caret-slide-bottom {
from {
opacity: 0;
}
50% {
transform: translate(-50%, -.5rem);
opacity: 0;
}
to {
transform: translate(-50%, -.3rem);
opacity: 1;
}
}
@keyframes tooltip-slide-left {
from {
transform: translate(.75rem, -50%);
opacity: 0;
}
to {
transform: translate(-.25rem, -50%);
opacity: 1;
}
}
@keyframes tooltip-caret-slide-left {
from {
opacity: 0;
}
50% {
transform: translate(.05rem, -50%);
opacity: 0;
}
to {
transform: translate(.3rem, -50%);
opacity: 1;
}
}
@keyframes tooltip-slide-right {
from {
transform: translate(-.75rem, -50%);
opacity: 0;
}
to {
transform: translate(.25rem, -50%);
opacity: 1;
}
}
@keyframes tooltip-caret-slide-right {
from {
opacity: 0;
}
50% {
transform: translate(-.05rem, -50%);
opacity: 0;
}
to {
transform: translate(-.3rem, -50%);
opacity: 1;
@keyframes tooltip-caret-slide-right {
from {
opacity: 0;
}
50% {
transform: translate(-.05rem, -50%);
opacity: 0;
}
to {
transform: translate(-.3rem, -50%);
opacity: 1;
}
}
}
}