Plus/Minus Toggle


HTML
<div class="circle_plus"></div>
					
CSS
.circle_plus{width:5.6rem;height:5.6rem;margin:0 auto;cursor:pointer;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;border:solid .5rem #066978;position:relative}
.circle_plus::before,.circle_plus::after{content:'';position:absolute;background-color:#066978;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) rotate(-90deg);-moz-transform:translate(-50%,-50%) rotate(-90deg);-ms-transform:translate(-50%,-50%) rotate(-90deg);-o-transform:translate(-50%,-50%) rotate(-90deg);transform:translate(-50%,-50%) rotate(-90deg);-webkit-transition:all .5s ease-in-out;-o-transition:all .5s ease-in-out;-moz-transition:all .5s ease-in-out;transition:all .5s ease-in-out}
.circle_plus::before{width:3rem;height:.5rem}
.circle_plus::after{width:.5rem;height:3rem}
.circle_plus.opened::before,.circle_plus.opened::after{-webkit-transform:translate(-50%,-50%) rotate(90deg);-moz-transform:translate(-50%,-50%) rotate(90deg);-ms-transform:translate(-50%,-50%) rotate(90deg);-o-transform:translate(-50%,-50%) rotate(90deg);transform:translate(-50%,-50%) rotate(90deg)}
.circle_plus.opened::before{opacity:0}
SCSS
/* Vars */
$dark:     #066978;

.circle_plus {
	width: 5.6rem;
	height: 5.6rem;
	margin: 0 auto;
	cursor: pointer;
	border-radius: 50%;
	border: solid .5rem $dark;
	position: relative;
	
	&::before, &::after {
		content: '';
		position: absolute;
		background-color: $dark;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%)rotate(-90deg);
		transition: all 0.5s ease-in-out;
	}
	
	&::before {
		width: 3rem;
		height: .5rem;
	}
	
	&::after {
		width: .5rem;
		height: 3rem;
	}
	
	&.opened {
		&::before, &::after {
			transform: translate(-50%, -50%)rotate(90deg);
		}
		
		&::before {
			opacity: 0;
		}
	}
}
JavaScript
$('.circle_plus').on('click', function(){
	$(this).toggleClass('opened');
});