.container
	button.btn
		span.btn-text Hover Me
	button.btn.rounded
		span.text-green Hover Me
View Compiled
body,html{
	height: 100%;
}

body {
	font-family: "Lato", sans-serif;
	color: #111;
	display: flex;
	flex-direction: row;
	align-items: center;
	align-content: center;
	justify-content: center;
	background-color: #ECECEC;
}

.container {
	width: auto;
	display: flex;
	flex-direction: column;
	//border: 2px solid black;
}

.btn{
	margin: 20px auto;
	border: none;
	padding: 10px 44px;
	font-size: 36px;
	position: relative;
	&::before{
		transition: all 0.85s cubic-bezier(0.68, -0.55, 0.265, 1.55);
		content: '';
		width: 50%;
		height: 100%;
		background: black;
		position: absolute;
		top: 0;
		left: 0;
	}

	& .btn-text{
		color: white;
		// check out mdn docs for different types of blend modes. 
		mix-blend-mode: difference;
	}
	&:hover{
		&::before{
			background: black;
			width: 100%;
		}
	}
	//rounded btn styles
	&.rounded{
		border-radius:50px;
		& .text-green{
			color:#00F0B5;
			mix-blend-mode: difference;
		}
		
		&::before{
			border-radius: 50px;
			width: 25%;
			background: #00F0B5;
		}
		&:hover{
			&::before{
			background: #00F0B5;
				width: 100%;
			}
		}	
	}
}



	
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.