<label class="input-container closed">
	<div class="shadow"></div>
	<div class="center">
		<input type="text" class="input" placeholder="Search">
	</div>
	<div class="sticks"></div>
</label>
@import 'https://fonts.googleapis.com/css?family=Catamaran';

html, body
{
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	font-family: 'Catamaran', sans-serif;
}

body 
{
	--height: 50;
	--width: 300;
	--border: 5;
	--speed: 0.4;
	--ease: cubic-bezier(.85,.01,.4,.97);
	--color-bk: #6CD4FF; //#547AA5;
	
	background: var(--color-bk);
	display: flex;
	align-items: center;
	justify-content: center;
	
	transition-property: background;
	transition-duration: calc(var(--speed) * 1s);
	transition-timing-function: var(--ease);
	
	&:focus-within {
		--speed: 0.7;
		background-color: #63C1E8; //#456488;
	 }
}

::placeholder { color: rgba(white, 0.5); }
:-ms-input-placeholder { color: rgba(white, 0.5);}
::-ms-input-placeholder { color: rgba(white, 0.5);}

.input-container
{
	width: calc(var(--width) * 1px);
	height: calc(var(--height) * 1px);
	position: relative;
	cursor: pointer;
	transform: rotate(12deg) scale(0.7);
	
	transition-property: opacity, transform;
	transition-duration: calc(var(--speed) * 1s);
	transition-timing-function: var(--ease);
	
	.center
	{
		border: calc(var(--border) * 1px) solid white;
		border-left: none;
		border-right: none;
		width: 100%;
		height: calc(100% - var(--border) * 2px);
		transform: scalex(0);
		transition: inherit;
		background-color: var(--color-bk);
	}
	
	input
	{
		transition: inherit;
		width: calc(100% - var(--height));
		height: 100%;
		border: 0;
		outline: 0;
		color: white;
		background: transparent;
		font-size: 1.3rem;
		opacity: 0;
		padding: 0;
		margin: 0;
	}
	
	.shadow
	{
		position: absolute;
		width: 100%;
		height: 100%;
		border-radius: 2em;
		top: 0;
		left: 0;
		box-shadow: 0px 10px 50px 0px rgba(0,0,0,0.1);
		transition: inherit;
		transform: scalex(0) translateY(-10px);
		opacity: 0;
	}
	
	&:after, &:before
	{
		z-index:1;
		content: '';
		transition: inherit;
		width: calc((var(--height) * 0.5px) - (var(--border) * 1px));
		height: calc((var(--height) * 1px) - (var(--border) * 2px));
		display: block;
		top: 0;
		border-color: white;
		position: absolute;
		background-color: var(--color-bk);
		border: calc(var(--border) * 1px) solid white;
	}
	
	&:before
	{
		right: 100%;
		border-radius: 2em 0 0 2em;
		border-right: none;
		transform: translateX(calc(var(--width) * 0.5px));
	}
	
	&:after
	{
		left: 100%;
		border-radius: 0 2em 2em 0;
		border-left: none;
		transform: translateX(calc(var(--width) * -0.5px));
	}
	
	.sticks
	{
		position: absolute;
		height: calc(var(--height) * 0.5px);
		width: 1px;
		bottom: 0;
		right: 0;
		transition: inherit;
		transition-duration: calc(var(--speed) * 1.25s);
		transform: translateX(calc((var(--width) - var(--height)) * -0.53px)) rotate(-45deg);
		z-index: 2;
		
		&:before, &:after
		{
			transition: transform calc(var(--speed) * 1s) var(--ease);
			height: calc(var(--height) * 0.5px);
			width: calc(var(--border) * 1px);
			position: absolute;
			content: '';
			background-color: white;
			left: calc(var(--border) * -0.5px);
			bottom: calc(var(--height) * -0.25px);
		}
	}
		
	&:focus-within
	{
		transform: rotate(0deg) translatey(-10px);
		.center{ transform: scalex(1); }
		.shadow{ transform: scalex(1) translateY(0px); opacity: 1; }
		input{ opacity: 1; }
		&:before { transform: translateX(0); }
		&:after { transform: translateX(0); }
		
		.sticks
		{
			transition-duration: calc(var(--speed) * 1s);
			transform: translateX(calc(var(--height) * -0.1px)) translateY(0) rotate(180deg);
			&:before { transform: rotate(-45deg); }
			&:after { transform: rotate(45deg); }
		}
	}
	
	
}
View Compiled
document.querySelector('.sticks').addEventListener('click',(e) =>
{
	e.stopPropagation();
	e.preventDefault();
  	//document.querySelector('.input').value = '';
	document.querySelector('.input-container').blur();
});
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //codepen.io/steveg3003/pen/zBVakw.js