<a href="#" class="p-anima-3 c-btn">
	<span>button</span>
</a>
.p-anima-3 {
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
	overflow: hidden;
	position: relative;
	transition: color 0.4s;
}
.p-anima-3:hover {
	color: #333;
}
.p-anima-3::before {
	content: "";
	display: block;
	background-color: #fff;
	position: absolute;
	top: 0;
	left: 0;
	width: 120%;
	height: 100%;
	transform-origin: right top;
	transform: skewX(-30deg) scaleX(0);
	transition: transform 0.4s;
}
.p-anima-3:hover::before {
	transform-origin: left top;
	transform: skewX(-30deg) scaleX(1);
}

.p-anima-3 span {
	position: relative;
	z-index: 1;
}

/* アニメーションとは関係のないスタイル(ボタンの見た目など) */
body {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100vh;
}
.c-btn {
	display: block;
	color: #fff;
	font-size: 20px;
	font-weight: bold;
	text-align: center;
	background-color: #333;
	border-radius: 3px;
	width: 300px;
	margin: auto;
	padding: 20px 0;
	text-decoration: none;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.