JSFiddle - React, Tailwind, and code Playground
by lottikarotti
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<div ng-app='app' ng-controller='AppCtrl'>
<div class='header'>
<div class='left'>
<a href>
<span class='icon fa fa-reorder'></span>
</a>
</div>
<div class='right'>
<a href ng-click='vm.searchbar = true;'>
<span class='icon fa fa-search'></span>
</a>
</div>
</div>
<div class='search' ng-class='{show: vm.searchbar}'>
<div class='search-backlay' ng-click='vm.searchbar = false;'></div>
<!-- <div class='search-content'> -->
<div class='search-input-wrapper'>
<div class='search-input'>
<a class='search-input-button' href ng-click='vm.searchbar = false;'>
<span class='icon fa fa-arrow-left'></span>
</a>
<input type='text' ng-model='vm.search' autofocus>
</div>
</div>
<div class='search-suggestions'></div>
<!-- </div> -->
</div>
</div>
CSS
*{margin:0;padding:0;box-sizing:border-box;}
html,body{background-color:#fff;}
textarea:focus, input:focus{outline: none;}
.header{
position: fixed;
top: 0; left: 0; right: 0;
height: 70px;
color: #fff;
background-color: lightblue;
}
.header .left{
float: left;
}
.header .right{
float: right;
}
.header a{
display: block;
padding: 25px;
color: #fff;
}
/**
* Searchbar
*/
.search,
.search-backlay,
.search-content{
position: fixed; top: 0; left: 0; right: 0; bottom: 0;
}
.search-backlay,
.search-content{
position: absolute;
}
.search-backlay{
background-color: rgba(0, 0, 0, .3);
}
.search-input-wrapper{
position: absolute;
top: 0; left: 0; right: 0;
padding: 15px;
height: 70px;
background-color: #fff;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
}
.search-input{
display: table;
overflow: hidden;
margin: 0 auto;
width: 100%;
height: 40px;
max-width: 600px;
border-radius: 3px;
background-color: #eaeaea;
}
.search-input-button,
.search-input input{
vertical-align: middle;
}
.search-input-button,
.search-input-button:active,
.search-input-button:focus,
.search-input-button:visited{
display: table-cell;
padding: 0 20px;
width: 1%;
cursor: pointer;
color: #333;
}
.search-input-button:hover{
background-color: #e3e3e3;
}
.search-input input{
display: table-cell;
padding: 15px 10px;
width: 100%;
height: 40px;
font-size: 1em;
font-weight: 300;
border: 0 none;
background-color: inherit;
}
.search{
opacity: 0;
visibility: hidden;
}
.search .search-input-wrapper{
top: -70px;
}
.search.show{
opacity: 1;
visibility: visible;
}
.search.show .search-input-wrapper{
opacity: 1;
top: 0;
}
.search,
.search .search-input-wrapper{
transition: all .3s ease;
}
JavaScript
angular.module('app', [])
.controller('AppCtrl', [
'$scope',
function($scope){
var vm = $scope.vm = {
searchbar: false,
search: null
};
}
])