main
  .ruler
  .container
    a.icon(href="#")
      i.fas.fa-phone
    a.icon(href="#")
      i.fas.fa-images
    a.icon(href="#")
      i.fas.fa-envelope-open
    a.icon(href="#")
      i.fas.fa-comment
    a.icon(href="#")
      i.fas.fa-music
View Compiled
:root {
  --foreground-color: white;
}

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

body {
  overflow: hidden;
}

main {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  
  background:
    linear-gradient(322deg, 
      #ba4aff, rgba(#ba4aff, 0) 70%),
    linear-gradient(178deg,
      #008aff, rgba(#008aff, 0) 70%),
    linear-gradient(24deg,
      #00ffc6, rgba(#00ffc6, 0) 35%);
}

.ruler {
  border-top: 1px solid rgba(white, 0.3);
  background-color: rgba(white, 0.05);
  
  position: absolute;
  top: 50%;
  height: 50%;
  left: 0%;
  right: 0%;
}

.container {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.25rem;
  
  .icon {
    --size: 6rem;
    --transition-duration: 500ms;
    --transition-easing: ease-out;
    
    width: var(--size);
    height: var(--size);
    
    display: flex;
    align-items: center;
    justify-content: center;
    
    text-decoration: none;
    color: var(--foreground-color);
    font-size: 2rem;
    border: 1px solid rgba(white, 0.6);
    background-color: rgba(white, 0.1);
    backdrop-filter: blur(2px);
    border-radius: 0.5rem;
    box-shadow: 
      0px 
      calc(var(--size) / 6) 
      calc(var(--size) / 3) 
      rgba(black, 0.1);
    
    transition: transform 
      var(--transition-duration) 
      var(--transition-easing);
    
    overflow: hidden;
    
    &::before {
      content: '';
      background: rgba(white, 0.4);
      width: 60%;
      height: 100%;
      top: 0%;
      left: -125%;
      
      transform: skew(45deg);
      
      position: absolute;
      
      transition: left 
        var(--transition-duration)
        var(--transition-easing);
    }
    
    &:hover {
      transform: translateY(-25%);
      
      &::before {
        left: 150%;
      }
    }
  }
}
View Compiled

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css
  2. https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css

External JavaScript

This Pen doesn't use any external JavaScript resources.