JSFiddle - React, Tailwind, and code Playground

by Jim_Toth

HTML

<h1>Super simple CSS tooltips</h1>

<div>
  <h2>Bottom</h2>
  <a class="ndx-tips" data-tip="Hello World!">Short</a>
  <a class="ndx-tips" data-tip="Super simple CSS tooltips.&#xa;Hello World! not anymore Thank you.">Loooooooooooooooooong link</a>
</div>

<div>
  <h2>Left</h2>
  <a class="ndx-tipsL" data-tip="Hey">Short</a>
  <a class="ndx-tipsL" data-tip="There!">Loooooooooooooooooong link</a>
</div>

<div>
  <h2>Right</h2>
  <a class="ndx-tipsR" data-tip="Super simple CSS tooltips.&#xa;Hello World! not anymore Thank you.">Short</a>
  <a class="ndx-tipsR" data-tip="Hello World!">Loooooooooooooooooong link</a>
</div>

CSS

[class^="ndx-tips"] {
  position: relative;
  cursor: help;
  user-select: none;
}

[class^="ndx-tips"]:after {
  /* USE &#xa; for new lines */
  content: attr(data-tip);
  position: absolute;
  z-index: 99;
  opacity: 0;
  visibility: hidden;
  padding: 6px 8px;
  top: 1.8em;
  left: 50%;
  white-space: pre;
  transform: translateX(-50%) translateY(-25px);
  background-color: rgba(39, 21, 136, 0.9);
  background-image: linear-gradient(150deg, rgba(44, 11, 136, 0.9) 20%, rgba(35, 222, 216, 0.9) 160%);
  color: #fff!important;
  border-radius: 3px;
  transition: opacity 0.3s cubic-bezier(0.7, 0.05, 0.1, 1), transform 0.3s cubic-bezier(0.7, 0.05, 0.1, 1);
}
[class^="ndx-tips"]:hover:after {
  display: block;
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.ndx-tipsL:after {
  top: -6px;
  left: 0;
  transform: translateX(-120%) translateY(0);
}
.ndx-tipsL:hover:after {
  transform: translateX(-115%) translateY(0);
}

.ndx-tipsR:after {
  top: -6px;
  left: 100%;
  transform: translateX(10%) translateY(0);
}
.ndx-tipsR:hover:after {
  transform: translateX(15%) translateY(0);
}