.#{$ns}Tooltip { position: absolute; top: 0; left: 0; font-family: inherit; border-radius: $borderRadius; min-width: $Tooltip-minWidth; max-width: $Tooltip-maxWidth; text-align: left; white-space: normal; z-index: $zindex-tooltip; word-wrap: break-word; background: $Tooltip-bg; border: $Tooltip-borderWidth solid $Tooltip-borderColor; box-shadow: $Tooltip-boxShadow; &-arrow { position: absolute; display: block; width: $Tooltip-arrow-width; height: $Tooltip-arrow-height; margin-left: -$Tooltip-arrow-width/2; left: 50%; &::before, &::after { position: absolute; display: block; content: ''; border-color: transparent; border-style: solid; } } &--top { margin-top: -$Tooltip-arrow-height - px2rem(2px); .#{$ns}Tooltip-arrow { bottom: ($Tooltip-arrow-height + $Tooltip-borderWidth) * -1; } .#{$ns}Tooltip-arrow::before, .#{$ns}Tooltip-arrow::after { border-width: $Tooltip-arrow-height ($Tooltip-arrow-width / 2) 0; } .#{$ns}Tooltip-arrow::before { bottom: 0; border-top-color: $Tooltip-arrow-outerColor; } .#{$ns}Tooltip-arrow::after { bottom: $Tooltip-borderWidth; border-top-color: $Tooltip-arrow-color; } } &--right { margin-left: $Tooltip-arrow-height + px2rem(2px); .#{$ns}Tooltip-arrow { left: ($Tooltip-borderWidth) * -1; width: $Tooltip-arrow-height; height: $Tooltip-arrow-width; margin-top: -$Tooltip-arrow-width/2; top: 50%; } .#{$ns}Tooltip-arrow::before, .#{$ns}Tooltip-arrow::after { border-width: ($Tooltip-arrow-width / 2) $Tooltip-arrow-height ($Tooltip-arrow-width / 2) 0; } .#{$ns}Tooltip-arrow::before { left: 0; border-right-color: $Tooltip-arrow-outerColor; } .#{$ns}Tooltip-arrow::after { left: $Tooltip-borderWidth; border-right-color: $Tooltip-arrow-color; } } &--bottom { margin-top: $Tooltip-arrow-height + px2rem(2px); .#{$ns}Tooltip-arrow { top: ($Tooltip-arrow-height + $Tooltip-borderWidth) * -1; } .#{$ns}Tooltip-arrow::before, .#{$ns}Tooltip-arrow::after { border-width: 0 ($Tooltip-arrow-width / 2) $Tooltip-arrow-height ($Tooltip-arrow-width / 2); } .#{$ns}Tooltip-arrow::before { top: 0; border-bottom-color: $Tooltip-arrow-outerColor; } .#{$ns}Tooltip-arrow::after { top: $Tooltip-borderWidth; border-bottom-color: $Tooltip-arrow-color; } // This will remove the popover-header's border just below the arrow .#{$ns}Tooltip-title::before { position: absolute; top: 0; left: 50%; display: block; width: $Tooltip-arrow-width; margin-left: ($Tooltip-arrow-width / -2); content: ''; border-bottom: $Tooltip-borderWidth solid $Tooltip-title-bg; } } &--left { margin-left: -$Tooltip-arrow-height - px2rem(2px); .#{$ns}Tooltip-arrow { left: auto; right: ($Tooltip-arrow-height + $Tooltip-borderWidth) * -1; width: $Tooltip-arrow-height; height: $Tooltip-arrow-width; margin-top: -$Tooltip-arrow-width/2; top: 50%; } .#{$ns}Tooltip-arrow::before, .#{$ns}Tooltip-arrow::after { border-width: ($Tooltip-arrow-width / 2) 0 ($Tooltip-arrow-width / 2) $Tooltip-arrow-height; } .#{$ns}Tooltip-arrow::before { right: 0; border-left-color: $Tooltip-arrow-outerColor; } .#{$ns}Tooltip-arrow::after { right: $Tooltip-borderWidth; border-left-color: $Tooltip-arrow-color; } } &-title { padding: $Tooltip-title-paddingY $Tooltip-title-paddingX; margin-bottom: 0; // Reset the default from Reboot font-size: $fontSizeBase; color: $Tooltip-title-color; background-color: $Tooltip-title-bg; border-bottom: $Tooltip-borderWidth solid darken($Tooltip-title-bg, 5%); border-top-left-radius: $Tooltip-borderRadius - $Tooltip-borderWidth; border-top-right-radius: $Tooltip-borderRadius - $Tooltip-borderWidth; &:empty { display: none; } } &-body { color: $Tooltip-body-color; padding: $Tooltip-body-paddingY $Tooltip-body-paddingX; } } @keyframes tooltipIn { from { opacity: 0; margin: 0; } } [data-tooltip] { position: relative; &:after { pointer-events: none; left: 0; top: 50%; transform: translateY(-50%); position: absolute; content: attr(data-tooltip); font-size: $Tooltip--attr-fontSize; line-height: $Tooltip--attr-lineHeigt; text-align: left; white-space: normal; width: max-content; box-sizing: content-box; max-width: 300px; background: $Tooltip--attr-bg; border: $Tooltip--attr-borderWidth solid $Tooltip--attr-borderColor; border-radius: $Tooltip--attr-borderRadius; box-shadow: $Tooltip--attr-boxShadow; left: 100%; color: $Tooltip--attr-color; padding: $Tooltip--attr-paddingY $Tooltip--attr-paddingX; display: none; animation-duration: 0.2s; animation-fill-mode: both; @media screen and (min-width: 0\0) { white-space: nowrap; max-width: unset; } } &:not(.is-disabled):hover:after { display: inline-block; animation-name: tooltipIn; opacity: 1; z-index: $zindex-tooltip; margin: 0 0 0 $Tooltip--attr-gap; opacity: 1; } &[data-position='bottom']:after { left: 50%; top: 100%; transform: translateX(-50%); } &[data-position='bottom']:hover:after { margin: $Tooltip--attr-gap 0 0 0; } &[data-position='left']:after { top: 50%; right: 100%; left: auto; transform: translateY(-50%); } &[data-position='left']:hover:after { margin: 0 $Tooltip--attr-gap 0 0; } &[data-position='top']:after { left: 50%; top: auto; bottom: 100%; transform: translateX(-50%); } &[data-position='top']:hover:after { margin: -$Tooltip--attr-gap 0 0 0; } &:hover:active:after { content: ''; display: none !important; } }