css-tooltip
Version:
Only CSS lightweight, minimal and simple tooltips
82 lines (69 loc) • 1.77 kB
CSS
[data-tooltip] {
position: relative;
display: inline-block;
}
[data-tooltip]:before, [data-tooltip]:after {
position: absolute;
left: 50%;
transform: translate(-50%, -12px);
z-index: 1000;
pointer-events: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
opacity: 0;
transition: opacity .35s ease .25s;
}
[data-tooltip]:before {
content: attr(data-tooltip);
background: #333;
color: #eee;
padding: 8px 12px;
white-space: nowrap;
bottom: 100%;
border-radius: 3px;
box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.65);
}
[data-tooltip]:after {
content: '';
background: transparent;
border: 8px solid transparent;
border-top-color: #333;
}
[data-tooltip]:hover:before, [data-tooltip]:hover:after, [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:active:before, [data-tooltip]:active:after {
opacity: 1;
}
[data-tooltip].tooltip-multiline:before {
width: 100vw;
max-width: 240px;
white-space: normal;
}
[data-tooltip][class*="tooltip-bottom"]:before, [data-tooltip][class*="tooltip-bottom"]:after {
transform: translate(-50%, 12px);
}
[data-tooltip][class*="tooltip-bottom"]:before {
bottom: auto;
top: 100%;
}
[data-tooltip][class*="tooltip-bottom"]:after {
bottom: 0;
border: 8px solid transparent;
border-bottom-color: #333;
}
[data-tooltip].tooltip-bottom-left:before {
transform: translate(-24px, 12px);
}
[data-tooltip].tooltip-bottom-right:before {
left: auto;
right: 50%;
transform: translate(24px, 12px);
}
[data-tooltip].tooltip-top-left:before {
transform: translate(-24px, -12px);
}
[data-tooltip].tooltip-top-right:before {
left: auto;
right: 50%;
transform: translate(24px, -12px);
}