<a class="button gradient-border" href="#">
<span><i class="far fa-envelope-open"></i> Email Me Here</span> <span>myemail@domain.com</span>
</a>
body {
background: #050505;
margin: auto;
letter-spacing: 0.01em;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 16px;
font-size: .875rem;
line-height: 1.5;
font-family: 'Lato', sans-serif;
}
a {
text-decoration: none;
}
.button,
.button i {
position: relative
}
.button {
display: inline-block;
cursor: pointer;
outline: 0;
white-space: nowrap;
margin: 5px;
padding: 5px 26px;
font-size: 16px;
height: 46px;
line-height: 46px;
color: #fff;
font-weight: 300;
letter-spacing: 1px;
border: none;
-webkit-transition: all .2s ease-in-out;
-o-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
background-color: #050505 !important;
}
.button i {
top: 1px;
line-height: 1;
margin-right: 5px;
width: 16px;
text-align: center
}
.button span {
text-align: center;
display: block;
vertical-align: middle;
opacity: 1;
-webkit-transform: translateY(0);
-ms-transform: translateY(0);
-o-transform: translateY(0);
transform: translateY(0);
-webkit-transition: all .25s;
-moz-transition: all .25s;
-ms-transition: all .25s;
-o-transition: all .25s;
transition: all .25s;
}
.button:hover span:first-child,
.button span:last-child {
opacity: 0;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
}
.button:hover span:last-child {
opacity: 1;
-webkit-transform: translateY(-100%);
-ms-transform: translateY(-100%);
-o-transform: translateY(-100%);
transform: translateY(-100%);
}
.gradient-border {
background: #1D1F20;
position: relative;
border-radius: 0;
}
.gradient-border:after {
content: '';
position: absolute;
top: calc(-1 * 3px);
left: calc(-1 * 3px);
height: calc(100% + 3px * 2);
width: calc(100% + 3px * 2);
background: linear-gradient(60deg, #f79533, #f37055, #ef4e7b, #a166ab, #5073b8, #1098ad, #07b39b, #6fba82);
border-radius: 3px;
z-index: -1;
animation: animatedgradient 3s ease alternate infinite;
background-size: 300% 300%;
}
@keyframes animatedgradient {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
This Pen doesn't use any external JavaScript resources.