UNPKG

@roadtrip/css

Version:

CSS framework for Roadtrip Design System

209 lines (162 loc) 3.25 kB
/* * Tooltip * * Fit Tooltip for short text only. * * Index * - Tooltip * - Tooltip position * */ /* TOOLTIP -------------------- */ [tooltip] { position: relative; } [tooltip]::after { position: absolute; top: -0.5rem; left: 50%; z-index: 1; width: max-content; min-width: 6rem; padding: 0.5rem; font-family: var(--road-font); font-size: var(--road-body-small); color: var(--road-on-surface); text-align: center; pointer-events: none; content: attr(tooltip); background: var(--road-surface); border: 1px solid var(--road-outline-weak); border-radius: 0.25rem; box-shadow: var(--road-elevation-low); opacity: 0; transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out; transform: translateX(-50%) translateY(-100%); } [tooltip].tooltip-text-left::after { text-align: left; } [tooltip]:hover::after, [tooltip]:focus-within::after { opacity: 1; } /* TOOLTIP POSITION -------------------- */ /** * Top position */ [tooltip-position="top"]::after { left: 50%; transform: translateX(-50%) translateY(-70%); } [tooltip-position="top"]:hover::after { left: 50%; transform: translateX(-50%) translateY(-100%); } /** * Top Left */ [tooltip-position="top-left"]::after { left: 0%; transform: translateY(-70%); } [tooltip-position="top-left"]:hover::after { transform: translateY(-100%); } /** * Top Right */ [tooltip-position="top-right"]::after { left: 50%; transform: translateY(-70%); } [tooltip-position="top-right"]:hover::after { left: 100%; transform: translateY(-100%); } /** * Top end */ [tooltip-position="top-end"]::after { left: auto; right: 0%; transform: translateY(-70%); } [tooltip-position="top-end"]:hover::after { transform: translateY(-100%); } /** * Left position */ [tooltip-position="left"]::after { top: 50%; left: 0%; margin-right: 0.5rem; transform: translateX(-94%) translateY(-55%); } [tooltip-position="left"]:hover::after { transform: translateX(-103%) translateY(-55%); } /** * Bottom position */ [tooltip-position="bottom"]::after { top: 100%; left: 50%; margin-top: 0.5rem; transform: translateX(-50%) translateY(-40%); } [tooltip-position="bottom"]:hover::after { transform: translateX(-50%) translateY(-6%); } /** * Bottom Left */ [tooltip-position="bottom-left"]::after { top: 100%; left: 0; margin-top: 0.5rem; transform: translateY(-40%); } [tooltip-position="bottom-left"]:hover::after { transform: translateY(-6%); } /** * Bottom Right */ [tooltip-position="bottom-right"]::after { top: 100%; left: 100%; margin-top: 0.5rem; transform: translateY(-40%); } [tooltip-position="bottom-right"]:hover::after { transform: translateY(-6%); } /** * Bottom end */ [tooltip-position="bottom-end"]::after { top: 100%; right: 0; left: auto; margin-top: 0.5rem; transform: translateY(-40%); } [tooltip-position="bottom-end"]:hover::after { transform: translateY(-6%); } /** * Right position */ [tooltip-position="right"]::after { top: 50%; left: 100%; margin-left: 0.5rem; transform: translateX(-14%) translateY(-55%); } [tooltip-position="right"]:hover::after { transform: translateX(-4%) translateY(-55%); }