<div id="device">
  <header>
    <div id="search">
      <div class="input-group">
        <input type="text" name="" id="" value="https://www.google.com/design/spec" />
      </div>
      <div class="action-close">
        <i class="fa fa-times-circle"></i>
      </div>
    </div>
    <div class="actions">
      <div class="action">
        <small>9</small>
      </div>
      <button class="action more"></button>
      <nav class="sheet">
        <header>
          <div class="action"><div class="fa fa-arrow-right"></div></div>
          <div class="action"><div class="fa fa-star"></div></div>
          <div class="action"><div class="fa fa-refresh"></div></div>
        </header>
        <ul>
          <li>New tab</li>
          <li>New incognito tab</li>
          <li>Bookmarks</li>
          <li>Recent tabs</li>
          <li>History</li>      
          <li>Share...</li>
          <li>Print...</li>
          <li>Find in page</li>
          <li>Add to homescreen</li>
          <li>Request desktop site</li>
        </ul>
      </nav>
    </div>

  </header>
  <section>
    <div>
      Hover over the address bar!<br>
      Click on the right nav dots, too.
    </div>
  </section>
</div>
@import "compass/css3";

@import url(https://fonts.googleapis.com/css?family=Roboto:400,100,300,500);

$color-gray: rgba(0, 0, 0, 0.5);
$color-device: #262626;
$color-device-bg: #111;
$icon-width: 3.5rem;
$header-height: 70px;

* {
  position: relative;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  font-family: 'Roboto', sans-serif;
}

html, body {
  width: 100%;
  background-color: #316680;
}

#device {
  margin: 100px auto;
  width: 350px;
  height: 670px;
  background-color: $color-device;
  border: 1rem solid $color-device-bg;
  border-bottom-width: 4rem;
  border-top-width: 4rem;
  border-top-left-radius: 50px 40px;
  border-top-right-radius: 50px 40px;
  border-bottom-left-radius: 50px 40px;
  border-bottom-right-radius: 50px 40px;  
  
  &:before, &:after {
    content: '';
    position: absolute;
    width: 50%;
    height: 10px;
    background: white;
    top: -3rem;
    left: 50%;
    transform: translateX(-50%);
    background: transparent;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.2);
  }
  
  &:after {
    top: calc(100% + 2rem);
  }
}

header {
  background: #efefef;
  width: 100%;
  height: $header-height;
  
  > * {
    float: left;
  }
}

#search {
  @extend %transition;
  width: calc(100% - #{2 * $icon-width});
  height: 100%;
  padding: 0.5rem;
  
  .input-group {
    background: white;
    width: 100%;
    height: 100%;
    padding: 0.5rem;
    box-shadow: 0 1px 1px rgba(0,0,0,0.2);
    z-index: 2;
    
    .icon {
      position: absolute;
      right: 0;
      top: 0;
      opacity: 0;
    }
  }
  
  input {
    width: 100%;
    height: 100%;
    background-color: transparent;
    border-width: 0;
    font-size: 1rem;
    text-overflow: ellipsis;
    
    &, &:focus {
      outline: none;
    }
  }
  
  &:hover {
    padding: 0;
    width: 100%;
    
    ~ .actions > .action {
      opacity: 0;
      transform: translateX(100%);
    }
    
    .action-close {
      opacity: 1;
      z-index: 9;
      transition-delay: 0;
    }
  }
}

.actions {
  width: 2 * $icon-width;
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
}

%icon {
  width: $icon-width;
  height: 100%;
  text-align: center;
  font-size: 1.5rem;
  color: rgba(0, 0, 0, 0.3);
  
  &:before {
      content: '';
      height: 100%;
      display: inline-block;
      vertical-align: middle;
      width: 1em;
      margin-left: -1em;
  }  
}

.action {
  @extend %transition;
  @extend %icon;
  float: left;
  transition-delay: 0.15s !important;
  
  + .action { transition-delay: 0.2s !important; }
  
  &-close {
    @extend %transition;
    @extend %icon;
    position: absolute;
    right: 0;
    top: 0;
    opacity: 0;
  }
  
  &.more {
    z-index: 4;
    -webkit-appearance: none;
    background: transparent;
    border: none;
    
    &:after {
      content: '\22ee';
      vertical-align: middle;
      font-weight: bold;
    }
    
    &:focus {
      outline: none;
      color: #2196F3;
    }
    
    &:focus + .sheet {
      opacity: 1;
      transform: scale(1);
      pointer-events: initial;
      
      .action {
        opacity: 1;
        transform: translateX(0);
      }
      
      li {
        margin-top: 0;
        opacity: 1;
      }
    }
  }
  
  > small {
    font-size: 50%;
    color: $color-gray;
    border: 3px solid $color-gray;
    border-radius: 3px;
    padding: 0 0.25rem;
    font-weight: 500;
  }
}

.sheet {
  @extend %transition;
  pointer-events: none;
  transition-duration: 0.1s;
  position: absolute;
  top: 0;
  right: 0;
  margin: 0.25rem;
  width: 270px;
  height: 530px;
  background: white;
  z-index: 3;
  overflow: hidden;
  opacity: 0;
  transform: scale(0.7);
  transform-origin: right top;
  box-shadow: 0 0 6px $color-gray;
  overflow-y: auto;
  
  ul {
    padding: 0;
    margin: 0;
  }
  
  li {
    @extend %transition;
    transition-duration: 0.3s;
    transition-delay: 0.1s;
    list-style: none;
    padding: 0.75rem 1rem;
    font-weight: 300;
    opacity: 0;
    
    + li { margin-top: -1rem; }
  }
  
  header {
    background: transparent;
    top: -.25rem;
  }
  
  .action {
    @extend %transition;
    width: 25%;
    transform: translateX(50%);
    opacity: 0;
  }
}

section {
  color: #efefef;
  font-weight: 100;
  text-align: center;
  padding: 1rem;
  line-height: 1.4;
}

%transition {
  transition-property: all;
  transition-duration: 0.2s;
  transition-timing-function: ease-out;
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js