<div class="social-buttons">
  <a href="#" class="social-button social-button--facebook" aria-label="Facebook">
    <i class="fab fa-facebook-f"></i>
  </a>
  <a href="#" class="social-button social-button--linkedin" aria-label="LinkedIn">
    <i class="fab fa-linkedin-in"></i>
  </a>
  <a href="#" class="social-button social-button--snapchat" aria-label="Snapchat">
    <i class="fab fa-snapchat-ghost"></i>
  </a>
  <a href="#" class="social-button social-button--github" aria-label="GitHub">
    <i class="fab fa-github"></i>
  </a>
  <a href="#" class="social-button social-button--codepen" aria-label="CodePen">
    <i class="fab fa-codepen"></i>
  </a>
</div>
body {
  background-color: #ddd;
  padding: 80px 16px 16px 16px;
}

.social-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

$social-button-size: 64px;
$social-button-icon-size: 0.4;
$social-button-background: #fff;
$social-button-active-color: #fff;
$social-button-transition-time: 0.3s;

$social-button-colors: (
  'mail': #0072c6,
  'facebook': #3b5999,
  'linkedin': #0077b5,
  'github': #6e5494,
  'codepen': #212121,
  'steam': #7da10e,
  'snapchat': #eec900,
  'twitter': #55acee,
  'instagram': #e4405f,
  'npmjs': #c12127,
);

.social-button {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  outline: none;
  width: $social-button-size;
  height: $social-button-size;
  text-decoration: none;
  border-radius: 100%;
  background: $social-button-background;
  text-align: center;

  &::after {
    content: '';
    position: absolute;
    top: -1px;
    left: 50%;
    display: block;
    width: 0;
    height: 0;
    border-radius: 100%;
    transition: $social-button-transition-time;
  }

  &:focus,
  &:hover {
    color: $social-button-active-color;

    &::after {
      width: calc(100% + 2px);
      height: calc(100% + 2px);
      margin-left: calc(-50% - 1px);
    }
  }

  i,
  svg {
    position: relative;
    z-index: 1;
    transition: $social-button-transition-time;
  }

  i {
    font-size: $social-button-size * $social-button-icon-size;
  }

  svg {
    height: percentage($social-button-icon-size);
    width: percentage($social-button-icon-size);
  }

  @each $name, $color in $social-button-colors {
    &--#{$name} {
      color: $color;

      &::after {
        background: $color;
      }
    }
  }
}
View Compiled

External CSS

  1. https://use.fontawesome.com/releases/v5.7.1/css/all.css

External JavaScript

This Pen doesn't use any external JavaScript resources.