<svg id="stroke" xmlns="http://www.w3.org/2000/svg" width="0" height="0">
	<defs>
		<path id="line" d="M2 2c49.7 2.6 100 3.1 150 1.7-46.5 2-93 4.4-139.2 7.3 45.2-1.5 90.6-1.8 135.8-.6" fill="none" stroke-linecap="round" stroke-linejoin="round" vector-effect="non-scaling-stroke"/>
	</defs>
</svg>

<div class="container">
	<a class="btn" href="/">I am a button with a long name
		<svg class="button-stroke" viewBox="0 0 154 13">
			<use href="#line"></use>
		</svg>
		<svg class="button-stroke" viewBox="0 0 154 13">
			<use href="#line"></use>
		</svg>
	</a>
	<a class="btn" href="/">Find out more
		<svg class="button-stroke" viewBox="0 0 154 13">
			<use href="#line"></use>
		</svg>
		<svg class="button-stroke" viewBox="0 0 154 13">
			<use href="#line"></use>
		</svg>
	</a>
	<a class="btn" href="/">Button
		<svg class="button-stroke" viewBox="0 0 154 13">
			<use href="#line"></use>
		</svg>
		<svg class="button-stroke" viewBox="0 0 154 13">
			<use href="#line"></use>
		</svg>
	</a>
</div>
* {
	box-sizing: border-box;
}

body {
	background-color: #263238;
}

.btn {
	display: inline-block;
	color: white;
	min-width: 154px;
	text-decoration: none;
	margin-right: 50px;
	padding: 20px;
	position: relative;
	text-align: center;
	
	&:hover {
		.button-stroke:nth-child(2) {
			stroke-dashoffset: 0;
		}
	}
}

.button-stroke {
	display: block;
	width: calc(100% - 40px);
	height: 20px;
	stroke: yellow;
	position: absolute;
	left: 20px;
	bottom: -10px;
	stroke-width: 4;
	
	&:nth-child(2) {
		stroke-dasharray: 650px;
		stroke-dashoffset: 650px;
		stroke: darken(#263238, 10%);
		stroke-width: 5;
		transition: stroke-dashoffset 800ms ease-out;
	}
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.