UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

126 lines (125 loc) 2.65 kB
/* * 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; } }