<div class="wrapper">
  <h1>Friendly Little Tooltips</h1>
  <ul class="social-links">
    <li>
      <a href="https://codepen.io/joshua_ward/pens/public/" target="_blank" data-tooltip="Codepen" data-position="top" class="top">
        <i class="fa fa-codepen"></i></a>
    </li>
    <li>
      <a href="https://dribbble.com/joshua_ward" target="_blank" data-tooltip="Dribbble" data-position="right" class="right">
        <i class="fa fa-dribbble"></i></a>
    </li>
    <li>
      <a href="https://twitter.com/joshua_ward" target="_blank" data-tooltip="Twitter" data-position="bottom" class="bottom">
        <i class="fa fa-twitter"></i></a>
    </li>
    <li>
      <a href="https://www.geekstudios.co" target="_blank" data-tooltip="Website" data-position="left" class="left">
        <i class="fa fa-globe"></i></a>
    </li>
  </ul>
</div> 
@import "bourbon";
@import "neat";
 
body {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100vh;

  background-image: url('https://static.pexels.com/photos/338533/pexels-photo-338533.jpeg');
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;

  &:before {
    position: absolute;
    content: '';
    width: 100%;
    height: 100%;
    background: #c21500; 
    background: -webkit-linear-gradient(45deg, #651fff, #ffc500);
    background: linear-gradient(45deg, #651fff, #ffc500);
    opacity: 0.9;
    z-index: 0;
  }
}

.icon {
  position: relative;
  display: inline-block;
  width: 24px;
  height: 24px;
  color: white;
  -webkit-mask: 
    url('http://geekstudios.co/testing/assets/svg/logo.svg')
    no-repeat center;
  mask: 
    url('http://geekstudios.co/testing/assets/svg/logo.svg')
    no-repeat left center;
  -webkit-mask-size: 24px;
  mask-size: 24px;
  background-color: white;
}

.wrapper {
  width: 50%;
  height: 50%;
  
  h1 {
    position: relative;
    display: block;
    //flex: 1 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    font-weight: 100;
    color: white;
    letter-spacing: 1px;
    line-height: 3;
    text-align: center;
  }
  
  .social-links {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style-type: none;
    
    li {
      display: inline-block;
      width: 25%;
      text-align: center;
      float: left;
      
      a {
        font-size: 24px;
        color: whitesmoke;
      }
    }
  }
}

// animations
a[data-tooltip].top {
  &:before,
  &:after {
    transform: translateY(10px);
  }
  
  &:hover:after,
  &:hover:before {
    transform: translateY(0px);
  }
}

a[data-tooltip].right {
  &:before,
  &:after {
    transform: translateX(0px);
  }
  
  &:hover:after,
  &:hover:before {
    transform: translateX(10px);
  }
}

a[data-tooltip].bottom {
  &:before,
  &:after {
    transform: translateY(-10px);
  }
  
  &:hover:after,
  &:hover:before {
    transform: translateY(0px);
  }
}

a[data-tooltip].left {
  &:before,
  &:after {
    transform: translateX(0px);
  }
  
  &:hover:after,
  &:hover:before {
    transform: translateX(-10px);
  }
}

a[data-tooltip] {
  position: relative;

  &:after,
  &:before {
    position: absolute;
    visibility: hidden;
    opacity: 0;
    transition: transform 200ms ease, opacity 200ms;
    box-shadow: 0 0 10px rgba(black,0.3);
    z-index: 99;
  }

  &:before {
    content: attr(data-tooltip);
    background: #000;
    color: #fff;
    font-size: 10px;
    font-weight: bold;
    padding: 10px 15px;
    border-radius: 5px;
    white-space: nowrap;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
  }

  &:after {
    width: 0;
    height: 0;
    border: 6px solid transparent;
    content: '';
  }

  &:hover:after,
  &:hover:before {
    visibility: visible;
    opacity: 0.85;
    transform: translateY(0px);
  }
}

// top tooltip
a[data-tooltip][data-position="top"]:before {
  bottom: 100%;
  left: -130%;
  margin-bottom: 10px;
}

a[data-tooltip][data-position="top"]:after {
  border-top-color: #000;
  border-bottom: none;
  bottom: 101%;
  left: calc(50% - 6px);
  margin-bottom: 4px;
}
// left tooltip
a[data-tooltip][data-position="left"]:before {
  top: -12%;
  right: 100%;
  margin-right: 10px;
}

a[data-tooltip][data-position="left"]:after {
  border-left-color: #000;
  border-right: none;
  top: calc(50% - 3px);
  right: 100%;
  margin-top: -6px;
  margin-right: 4px;
}
// right tooltip
a[data-tooltip][data-position="right"]:before {
  top: -5%;
  left: 100%;
  margin-left: 10px;
}

a[data-tooltip][data-position="right"]:after {
  border-right-color: #000;
  border-left: none;
  top: calc(50% - 6px);
  left: calc(100% + 4px);
}

// bottom tooltip
a[data-tooltip][data-position="bottom"]:before {
  top: 100%;
  left: -130%;
  margin-top: 10px;
}

a[data-tooltip][data-position="bottom"]:after {
  border-bottom-color: #000;
  border-top: none;
  top: 100%;
  left: 5px;
  margin-top: 4px;
}
View Compiled

External CSS

  1. https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js