CSS Tooltip Magic

Developer
Size
3,027 Kb
Views
44,528

How do I make an css tooltip magic?

Read full tutorial How to Make Magic, Animated Tooltips With CSS on Tuts+. By Jase. What is a css tooltip magic? How do you make a css tooltip magic? This script and codes were developed by Envato Tuts+ on 28 July 2022, Thursday.

CSS Tooltip Magic Previews

CSS Tooltip Magic - Script Codes HTML Codes

<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>CSS Tooltip Magic</title> <link rel="stylesheet" href="css/style.css">
</head>
<body> <main> <div> <span tooltip="I'm up above it!">Up</span> </div> <div> <span tooltip="Slide to the left" flow="left">Left</span> <span tooltip="Slide to the right" flow="right">Right</span> </div> <div> <span tooltip="Get Down." flow="down">Down</span> </div>
</main>
<aside> <div><a href="http://webdesign.tutsplus.com/tutorials/css-tooltip-magic--cms-28082" target="_parent">Read the tutorial on Tuts+</a></div>
</aside>
</body>
</html>

CSS Tooltip Magic - Script Codes CSS Codes

/* START TOOLTIP STYLES */
[tooltip] { position: relative; /* opinion 1 */
}
/* Applies to all tooltips */
[tooltip]::before,
[tooltip]::after { text-transform: none; /* opinion 2 */ font-size: .9em; /* opinion 3 */ line-height: 1; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; pointer-events: none; position: absolute; display: none; opacity: 0;
}
[tooltip]::before { content: ''; border: 5px solid transparent; /* opinion 4 */ z-index: 1001; /* absurdity 1 */
}
[tooltip]::after { content: attr(tooltip); /* magic! */ /* most of the rest of this is opinion */ font-family: Helvetica, sans-serif; text-align: center; /* Let the content set the size of the tooltips but this will also keep them from being obnoxious */ min-width: 3em; max-width: 21em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 1ch 1.5ch; border-radius: .3ch; box-shadow: 0 1em 2em -.5em rgba(0, 0, 0, 0.35); background: #333; color: #fff; z-index: 1000; /* absurdity 2 */
}
/* Make the tooltips respond to hover */
[tooltip]:hover::before,
[tooltip]:hover::after { display: block;
}
/* don't show empty tooltips */
[tooltip='']::before,
[tooltip='']::after { display: none !important;
}
/* FLOW: UP */
[tooltip]:not([flow])::before,
[tooltip][flow^="up"]::before { bottom: 100%; border-bottom-width: 0; border-top-color: #333;
}
[tooltip]:not([flow])::after,
[tooltip][flow^="up"]::after { bottom: calc(100% + 5px);
}
[tooltip]:not([flow])::before,
[tooltip]:not([flow])::after,
[tooltip][flow^="up"]::before,
[tooltip][flow^="up"]::after { left: 50%; -webkit-transform: translate(-50%, -.5em); transform: translate(-50%, -.5em);
}
/* FLOW: DOWN */
[tooltip][flow^="down"]::before { top: 100%; border-top-width: 0; border-bottom-color: #333;
}
[tooltip][flow^="down"]::after { top: calc(100% + 5px);
}
[tooltip][flow^="down"]::before,
[tooltip][flow^="down"]::after { left: 50%; -webkit-transform: translate(-50%, .5em); transform: translate(-50%, .5em);
}
/* FLOW: LEFT */
[tooltip][flow^="left"]::before { top: 50%; border-right-width: 0; border-left-color: #333; left: calc(0em - 5px); -webkit-transform: translate(-.5em, -50%); transform: translate(-.5em, -50%);
}
[tooltip][flow^="left"]::after { top: 50%; right: calc(100% + 5px); -webkit-transform: translate(-.5em, -50%); transform: translate(-.5em, -50%);
}
/* FLOW: RIGHT */
[tooltip][flow^="right"]::before { top: 50%; border-left-width: 0; border-right-color: #333; right: calc(0em - 5px); -webkit-transform: translate(.5em, -50%); transform: translate(.5em, -50%);
}
[tooltip][flow^="right"]::after { top: 50%; left: calc(100% + 5px); -webkit-transform: translate(.5em, -50%); transform: translate(.5em, -50%);
}
/* KEYFRAMES */
@-webkit-keyframes tooltips-vert { to { opacity: .9; -webkit-transform: translate(-50%, 0); transform: translate(-50%, 0); }
}
@keyframes tooltips-vert { to { opacity: .9; -webkit-transform: translate(-50%, 0); transform: translate(-50%, 0); }
}
@-webkit-keyframes tooltips-horz { to { opacity: .9; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); }
}
@keyframes tooltips-horz { to { opacity: .9; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); }
}
/* FX All The Things */
[tooltip]:not([flow]):hover::before,
[tooltip]:not([flow]):hover::after,
[tooltip][flow^="up"]:hover::before,
[tooltip][flow^="up"]:hover::after,
[tooltip][flow^="down"]:hover::before,
[tooltip][flow^="down"]:hover::after { -webkit-animation: tooltips-vert 300ms ease-out forwards; animation: tooltips-vert 300ms ease-out forwards;
}
[tooltip][flow^="left"]:hover::before,
[tooltip][flow^="left"]:hover::after,
[tooltip][flow^="right"]:hover::before,
[tooltip][flow^="right"]:hover::after { -webkit-animation: tooltips-horz 300ms ease-out forwards; animation: tooltips-horz 300ms ease-out forwards;
}
/* UNRELATED to tooltips */
body { margin: 0; min-height: 100vh; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; font-family: sans-serif; background: #ededed;
}
main { -webkit-box-flex: 1; -ms-flex: 1 1 100vh; flex: 1 1 100vh; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;
}
aside { -webkit-box-flex: 0; -ms-flex: none; flex: none; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; background: #49b293; color: #fff; padding: 1em;
}
main div { text-align: center; color: #353539;
}
main span { padding: .5em 1em; margin: .5em; display: inline-block; background: #dedede;
}
aside a { color: inherit; text-decoration: none; font-weight: bold; display: inline-block; padding: .4em 1em;
}
CSS Tooltip Magic - Script Codes
CSS Tooltip Magic - Script Codes
Home Page Home
Developer Envato Tuts+
Username tutsplus
Uploaded July 28, 2022
Rating 4.5
Size 3,027 Kb
Views 44,528
Do you need developer help for CSS Tooltip Magic?

Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!

Envato Tuts+ (tutsplus) Script Codes
Create amazing blog posts with AI!

Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!