animated button

animated button

by Ayyappan Sakthivadivel

HTML

<button class="btn btn-4 btn-4a icon-arrow-right">Continue</button>

CSS

body{
  background-color: red;
}

@font-face {
	font-family: 'icomoon';
	src:url('../fonts/icomoon/icomoon.eot');
	src:url('../fonts/icomoon/icomoon.eot?#iefix') format('embedded-opentype'),
		url('../fonts/icomoon/icomoon.woff') format('woff'),
		url('../fonts/icomoon/icomoon.ttf') format('truetype'),
		url('../fonts/icomoon/icomoon.svg#icomoon') format('svg');
	font-weight: normal;
	font-style: normal;
}

/* General button style (reset) */
.btn {
	border: none;
	font-family: inherit;
	font-size: inherit;
	color: inherit;
	background: none;
	cursor: pointer;
	padding: 25px 80px;
	display: inline-block;
	margin: 15px 30px;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 700;
	outline: none;
	position: relative;
	-webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	transition: all 0.3s;
}

.btn:after {
	content: '';
	position: absolute;
	z-index: -1;
	-webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	transition: all 0.3s;
}

/* Pseudo elements for icons */
.btn:before,
.icon-heart:after,
.icon-star:after,
.icon-plus:after,
.icon-file:before {
	font-family: 'icomoon';
	speak: none;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	position: relative;
	-webkit-font-smoothing: antialiased;
}

.icon-envelope:before {
	content: "\e000";
}

.icon-cart:before {
	content: "\e007";
}

.icon-cart-2:before {
	content: "\e008";
}

.icon-heart:before {
	content: "\e009";
}

/* Filled heart */
.icon-heart:after,
.icon-heart-2:before {
	content: "\e00a";
}

.icon-star:before {
	content: "\e00b";
}

/* Filled star */
.icon-star:after,
.icon-star-2:before {
	content: "\e00c";
}

.icon-arrow-right:before {
	content: "\e00d";
}

.icon-arrow-left:before {
	content: "\e003";
}

.icon-truck:before {
	content: "\e00e";
}

.icon-remove:before {
	content: "\e00f";
}

.icon-cog:before {
	content: "\e010";
}

.icon-plus:before,
.icon-plus:after {
	content: "\e011";
}

.icon-minus:before {
	content:...