UNPKG

1.81 kBSCSSView Raw
1/**
2 * Tooltip ([data-tooltip])
3 */
4
5[data-tooltip] {
6 position: relative;
7
8 &:not(a):not(button):not(input) {
9 border-bottom: 1px dotted;
10 text-decoration: none;
11 cursor: help;
12 }
13
14 &::before,
15 &::after {
16 display: block;
17 z-index: 99;
18 position: absolute;
19 bottom: 100%;
20 left: 50%;
21 padding: .25rem .5rem;
22 overflow: hidden;
23 transform: translate(-50%, -.25rem);
24 border-radius: var(--border-radius);
25 background: var(--tooltip-background-color);
26 color: var(--tooltip-color);
27 font-size: .875rem;
28 font-style: normal;
29 font-weight: var(--font-weight);
30 text-decoration: none;
31 text-overflow: ellipsis;
32 white-space: nowrap;
33 content: attr(data-tooltip);
34 opacity: 0;
35 pointer-events: none;
36 }
37
38 // Caret
39 &::after {
40 padding: 0;
41 transform: translate(-50%, 0rem);
42 border-top: .3rem solid;
43 border-right: .3rem solid transparent;
44 border-left: .3rem solid transparent;
45 border-radius: 0;
46 background-color: transparent;
47 color: var(--tooltip-background-color);
48 content: '';
49 }
50
51 &:focus,
52 &:hover {
53 &::before,
54 &::after {
55 opacity: 1;
56
57 @if $enable-transitions {
58 animation-name: slide;
59 animation-duration: .2s;
60 }
61 }
62
63 &::after {
64 @if $enable-transitions {
65 animation-name: slideCaret;
66 }
67 }
68 }
69}
70
71// Animations
72@if $enable-transitions {
73 @keyframes slide {
74 from {
75 transform: translate(-50%, .75rem);
76 opacity: 0;
77 }
78 to {
79 transform: translate(-50%, -.25rem);
80 opacity: 1;
81 }
82 }
83
84 @keyframes slideCaret {
85 from {
86 opacity: 0;
87 }
88 50% {
89 transform: translate(-50%, -.25rem);
90 opacity: 0;
91 }
92 to {
93 transform: translate(-50%, 0rem);
94 opacity: 1;
95 }
96 }
97}