<div class="wrapper">
  <div class="container">
    <div class="btn open">
			Click Me!
		</div>
		<div class="circle"></div>
		<div class="modal">
			<div class="modal-container">
				<div class="title">
					The More You Know
					<i class="fa fa-times close"></i>
				</div>
				<div class="copy">
					Modals are a great way to give your user access to additional or supporting information without taking up extra space on the page. This swing out modal is animated with SASS, with a little jQuery to help out with clicked states.
				</div>
				<div class="btn close">
					Continue
				</div>
			</div>
		</div>
	</div>
</div>
@import "bourbon";

@import url(https://fonts.googleapis.com/css?family=Varela+Round);

$bg: #1e1e1e;
$modal:#ECECEC;
$modal-accent: #4E9CFF;
$open: #F47265;
$open-shadow: #e84d3e;

%center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}


//Base
* {box-sizing: border-box;}

html, body {
	height: 100%;
	width: 100%;
	background: $bg;
	overflow:hidden;
}

body {
  font-family: 'Varela Round', sans-serif;
}

//open
.btn.open {
	@extend %center;
	color: whitesmoke;
	width: 250px;
	height: 70px;
	background: $open;
	text-align: center;
	font-size: 30px;
	font-weight: bold;
	padding: 22px 0;
	border-radius: 3px;
	box-shadow: 0 8px 0 0 $open-shadow;
	cursor: pointer;
	transition: all .3s ease;
	z-index: 5;
	
	&:hover {
		box-shadow: 0 5px 0 0 darken($open-shadow, 2%);
		margin-top: 3px;
	}
	
	&:active {
		box-shadow: 0 0 0 0 darken($open-shadow, 6%);
		margin-top: 8px;		
	}
	
}

.circle {
	border-radius: 100%;
	height: 2px;
	width: 2px;
	background: $open;
	opacity: .3;
	@extend %center;
	z-index: 2;
	transition: all .8s ease;
}

//Modal 
.modal {
	@extend %center;
	//height: 250px;
	//width: 550px;
	background: $modal;
	border-radius: 3px;
	box-shadow: 0 8px 0 0 darken($modal, 18%);
	padding: 0;
	
	.title {
		color: $modal-accent;
		//float: left;
		font-size: 28px;
		font-weight: bold;
		margin-top: -5px;
		padding: 10px 15px 10px 20px;
		border-bottom: 5px solid $modal-accent;
		margin: -15px -20px 12px;
		
		i {
			float: right;
			color: $bg;
			opacity: .3;
			transition: all .2s ease;
			cursor: pointer;
			
			&:hover {
				opacity: .5;
			}
		}
	}
	
	.copy {
		float: none;
		clear: both;
		font-size: 16px;
	}
	
	.copy {
		line-height: 1.3;
	}
	
	.btn.close {
		@extend .btn.open;
		top: 78%;
		height: 50px;
		padding: 15.5px;
		font-size: 24px;
		background: lighten($modal-accent, 6%);
		box-shadow: 0 8px 0 0 $modal-accent;
		cursor: pointer;
		transition: all .3s ease;

		&:hover {
			box-shadow: 0 5px 0 0 darken($modal-accent, 2%);
			margin-top: 3px;
		}

		&:active {
			box-shadow: 0 0 0 0 darken($modal-accent, 6%);
			margin-top: 8px;		
		}
	}
}

.modal-container {
	display: none;
}

.in {
	animation: in 1s ease;
}

.out {
	animation: out 1s ease;
}

@keyframes in {
	0% {
		height: 0;
		width: 0;
		z-index: 0;
	}
	
	30% {
		top: 20%;
		z-index: 0;
	}
	
	60% {
		z-index: 1000;
	}

	100% {
		top: 50%;
		z-index: 1000;
		height: 250px;
	  width: 550px;
	}
}

@keyframes out {
	0% {
		top: 50%;
		z-index: 1000;
		height: 250px;
	  width: 550px;
	}
	
	30% {
		top: 80%;
		z-index: 1000;
		padding: 0;
	}
	
	60% {
		z-index: 0;		
		
	}
	
	90%, 100% {
		height: 0;
		width: 0;
		z-index: 0;
	}
}

.circle-active {
	height: 700px;
	width: 700px;
	opacity: 0;
}

.circle-hide {
	opacity: 0!important;
}
View Compiled
$( ".open" ).click(function() {
	$(".modal").removeClass("out");
	$(".modal").addClass("in");
	setTimeout(function() {
    $(".modal").css("z-index", "1000");
		$(".modal").css("height", "250px");
		$(".modal").css("width", "550px");
		$(".modal").css("padding", "20px");
	}, 700);
	setTimeout(function() {
		$(".modal-container").fadeIn("slow");
	}, 900);
	$(".circle").addClass("circle-active");
	setTimeout(function() {
		$(".circle").removeClass("circle-active");
		$(".circle").addClass("circle-hide");
	}, 800);
});

$( ".close" ).click(function() {
	$(".modal-container").fadeOut("fast");
	$(".circle").removeClass("circle-hide");
	setTimeout(function() {
		$(".modal").removeClass("in");
		$(".modal").addClass("out");
	}, 150);
	setTimeout(function() {
    $(".modal").css("z-index", "0");
		$(".modal").css("height", "0");
		$(".modal").css("width", "0");
		$(".modal").css("padding", "0");
	}, 150);
});


External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js