@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
126 lines (125 loc) • 2.65 kB
CSS
/*
* Tooltip component
*
*/
/*
* Utilities
*/
.dnb-tooltip {
--tooltip-color: white;
--tooltip-background-color: black;
--tooltip-border-color: 1px solid black;
--tooltip-border-radius: 1rem;
position: absolute;
z-index: 3100;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 0 1rem;
color: var(--tooltip-color);
text-align: center;
background-color: var(--tooltip-background-color);
border-radius: var(--tooltip-border-radius);
box-shadow: var(--shadow-default);
opacity: 0;
visibility: hidden;
transition: opacity 200ms var(--easing-default);
}
.dnb-tooltip--large {
padding: 0.25rem 1rem;
}
.dnb-tooltip--active {
visibility: visible;
/*
because of the first "show" we also use animation
also, use forwards because of the usage of visibility
*/
animation: show-tooltip 200ms var(--easing-default) forwards;
}
html[data-visual-test] .dnb-tooltip--active, .dnb-tooltip--active.dnb-tooltip--no-animation {
animation: show-tooltip 1ms var(--easing-default) forwards;
}
.dnb-tooltip--hide {
visibility: visible;
animation: hide-tooltip 200ms var(--easing-default) forwards;
}
.dnb-tooltip--hide.dnb-tooltip--no-animation {
animation: hide-tooltip 1ms linear forwards;
}
.dnb-tooltip--fixed {
position: fixed;
}
html[data-visual-test] .dnb-tooltip--hide {
animation: hide-tooltip 1ms linear 1s forwards;
}
.dnb-tooltip__portal {
position: absolute;
top: 0;
left: 0;
right: 0;
}
.dnb-tooltip__content {
min-width: 2rem;
min-height: 1.5rem;
padding: 0;
}
.dnb-tooltip__arrow {
position: absolute;
pointer-events: none;
margin: 0;
width: 1rem;
height: 0.5rem;
overflow: hidden;
}
.dnb-tooltip__arrow::before {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 1rem;
height: 1rem;
background-color: var(--tooltip-background-color);
border: var(--tooltip-border-color);
transform: translateY(70%) rotate(45deg);
}
.dnb-tooltip__arrow__position--bottom {
top: -0.5rem;
}
.dnb-tooltip__arrow__position--top {
bottom: -0.5rem;
transform: rotate(180deg);
}
.dnb-tooltip__arrow__position--left {
right: -0.75rem;
margin-right: 3px;
transform: rotate(90deg);
}
.dnb-tooltip__arrow__position--right {
left: -0.75rem;
margin-left: 3px;
transform: rotate(270deg);
}
.dnb-tooltip__arrow__arrow--left {
align-self: flex-start;
}
.dnb-tooltip__arrow__arrow--right {
align-self: flex-end;
}
@keyframes show-tooltip {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes hide-tooltip {
from {
opacity: 1;
}
to {
opacity: 0;
visibility: hidden;
}
}