iPhone X outline CSS

by tonytlwu

HTML

<div class="device-container">
  <div class="device mobile ios ios-x portrait" style="transform: scale(0.9); width: 375px; height: 812px;">
    <div class="frame">
    </div>
  </div>
</div>

CSS

.device-container {
    display: inline-block;
    overflow: visible;
}

.device {
    transition: all 650ms cubic-bezier(0.87, 1, 0.19, 1.44);
    display: block;
    box-sizing: content-box;
    background-color: #d0d2d2;
    -webkit-transform-origin: center top;
    transform-origin: center top;
    border: 2px solid transparent;
}

.device.mobile.ios {
    padding: 1rem 1rem;
    border-radius: 3rem;
}

.device:before, .device:after {
    transition: all 650ms cubic-bezier(0.87, 1, 0.19, 1.44);
    content: '';
    display: block;
    height: 0;
    position: absolute;
    box-sizing: border-box;
}

.device.mobile.ios-x:before {
    -webkit-transform: translate3d(-50%, 0, 0);
    transform: translate3d(-50%, 0, 0);
    left: 50%;
    width: 13rem;
    height: 2.7rem;
    top: 0;
    background-color: #d0d2d2;
    border-radius: 18px;
}

.device .frame {
    transition: color 0.3s;
    width: 100%;
    height: 100%;
    background-color: #fff;
    border-radius: 2rem;
}