// Section 1 - Notification

section.section-notification
  ul.nav
    li: i.material-icons home
    li: i.material-icons search
    li.is-active: i.material-icons star
      ul.notifications
        li
          i.material-icons remove_red_eye
          span 9
        li
          i.material-icons comment
          span 4
        li
          i.material-icons account_circle
          span 6
    li: i.material-icons face


// Section 2 - Alert

section.section-alert
  .website
    .title-block
      
      .title
        i.material-icons.site-icon face
        //span Obviously a website
        span Many faces of murray
        hr

    .grid
      - var i = 0;
      while (i++ < 16)
        .item

    .alert-element
      .icon
        i.material-icons notifications
      .text
        span You clicked a Murray!!
      
      
        
  
// Section 3 - Modal

section.section-modal
  .profile
    img(src="http://www.fillmurray.com/130/130")
    .text
      .name Bill Murray
      .meta Click me!

  .overlay
    .modal
      .title You clicked a Murray!
      .body
        .img(style="background-image: url(http://www.fillmurray.com/180/180)")
        .text 
          p Bill Murray loves you, and sends his most sincere regards.
          p He also asks that you simply keep on hacking.
      
   
  
  
  
  
  
  
  
  
  
  
  
  
  
View Compiled
.section-notification,
.section-alert
  //display: none

body
  font-family: 'Roboto', sans-serif
  margin: 50px
  -webkit-font-smoothing: antialiased

section
  background: #ebeaeb
  margin: 0px auto
  
  min-height: 90vh
  padding: 40px
  display: flex
  justify-content: center
  align-items: center
  margin-bottom: 50px

  
  
// Section - 1 - notification
.section-notification
  .nav
    display: flex
    background: #333
    color: white
    border-radius: 4px
    box-shadow: 0px 23px 30px -20px rgba(0,0,0,0.4)
 
  .nav > li
    padding: 20px 30px
    width: 24px
    height: 24px
    cursor: pointer
    color: rgba(255,255,255,0.6)
    position: relative
    transition: all 200ms ease-in-out
    perspective: 1000px

    &:last-child
      border-right: none
    
    &:hover
      background: #444
    
    &.is-active
      box-shadow: 0px -4px 0px #0097A7 inset
      background: #222
      color: rgba(255,255,255,1)
      
      .notifications
        display: flex
        animation: note 800ms ease-in-out forwards
        transform-origin: center 60px
        
        
        @keyframes note
          0%
            opacity: 0
            transform: scale(0.1) rotate(30deg) translateY(50px) rotateX(90deg)
          
          50%
            transform: rotate(-10deg) rotateX(-2deg)
            opacity: 1
          70%
            transform: rotate(3deg)
          
          100%
            
            transform: scale(1)
        

  .notifications
    background: #0097A7
    display: none
    border-radius: 4px
    position: absolute
    bottom: 100%
    left: 50%
    padding: 0px 10px
    margin-bottom: 10px
    margin-left: -95px
    cursor: default
    
    &:after
      top: 100%
      left: 50%
      border: solid transparent
      content: " "
      height: 0
      width: 0
      position: absolute
      pointer-events: none
      border-color: rgba(0, 151, 167, 0)
      border-top-color: #0097A7
      border-width: 16px
      margin-left: -16px
    
    li
      padding: 10px
      font-family: 'Roboto', sans-serif
      color: white
      font-size: 18px
      //height: 24px
      
      .material-icons
        font-size: 18px
      
      span
        display: inline-block
        vertical-align: top
        margin-left: 8px


  
  
  
  
  
  
  
  
// Section - 2 - Alerts
.section-alert
  //align-items: flex-start
  
  .website
    background: white
    width: 600px
    margin: 0 auto
    height: 560px
    box-shadow: 0px 23px 40px -20px rgba(0,0,0,0.4)
    overflow: hidden
    position: relative
    perspective: 1000px

  .title
    padding: 20px 10px 0
    font-size: 30px
    font-weight: 700
    text-transform: uppercase
    color: #444
    line-height: 48px
    letter-spacing: 0.1em
    

    .site-icon
      font-size: 48px
      margin-right: 8px
      vertical-align: middle
      display: inline-block
    
    hr
      border: none
      border-top: 1px solid #ccc
    
  .grid
    column-count: 4
    column-gap: 10px
    margin: 10px

  .item
    background: #ccc
    height: 60px
    margin-bottom: 10px
    display: inline-block
    width: 100%
    border-radius: 4px
    background:
      size: cover
      position: center
    opacity: 0.6
    transition: opacity 200ms ease
    
    &:hover
      opacity: 1
      cursor: pointer
    
    &:nth-child(4n-3)
      height: 80px
      
    &:nth-child(2n)
      height: 200px

    &:nth-child(3n)
      height: 100px
        
    @for $i from 1 through 30
      &:nth-child(#{$i})
        background-image: url(http://www.fillmurray.com/130/#{ 300 + ( $i * 2 ) })
  
  .alert-element
    position: absolute
    bottom: 30px
    left: 30px
    color: rgba(255,255,255,0.7)
    border-radius: 4px
    font-weight: 400
    display: flex
    align-items: stretch
    padding-right: 20px
    perspective: 1000px
    opacity: 0
    transform-origin: bottom left
    transform: rotate(90deg) scale(0.5) translate(100px, -300px) rotateX(90deg)
    transition: all 450ms cubic-bezier(0, 0.6, 0.35, 1.4)
    
    
    .icon
      padding: 20px
      background: #0097A7
      color: white
      border-radius: 4px 0px 0px 4px
      overflow: hidden
      
      i
        transform: scale(0.2) translateY(50px)
        
        opacity: 0
        transition: all 400ms cubic-bezier(0, 0.6, 0.35, 1.4) 600ms
      
      
    
    .text
      background: rgba(0,0,0,0.8)
      padding: 0 20px
      display: flex
      align-items: center
      border-radius: 0px 4px 4px 0px
      transform: rotateY(90deg)
      transition: all 500ms ease-in-out 1000ms
      transform-origin: center left
      opacity: 0
      
      
      
    &.is-active
      opacity: 1
      transform: rotate(0deg) scale(1)
      
      i
        transform: scale(1) translateY(0px)
        opacity: 1

      .text
        transform: rotateY(0deg)
        opacity: 1
        
      
    

    
  
// Section - 3 - Modal
.section-modal
  position: relative
  overflow: hidden
  
  .profile
    display: flex
    align-items: center
    background: rgba(0,0,0,0.1)
    background: white
    padding: 15px 30px
    border-radius: 4px
    box-shadow: 0px 23px 30px -20px rgba(0,0,0,0.4)
    transition: all 200ms ease-in-out
    
    &:hover
      cursor: pointer
      transform: translateY(-4px)
      box-shadow: 0px 27px 30px -20px rgba(0,0,0,0.4)
    
    .name
      font-size: 24px
      margin-bottom: 8px

    .meta
      color: rgba(0,0,0,0.4)
      
    img
      width: 80px
      height: 80px
      border-radius: 50%
      margin-right: 20px

  .overlay
    position: absolute
    top: 0
    left: 0
    right: 0
    bottom: 0
    background: rgba(0,0,0,0.7)
    display: flex
    justify-content: center
    align-items: center
    display: none
    
    .modal
      width: 450px
      box-shadow: 0px 23px 30px -20px rgba(0,0,0,0.4)
      
      .title
        background: #0097A7
        color: white
        border-radius: 4px 4px 0px 0px
        text-align: center
        line-height: 48px
        font-weight: 700
        
      .body
        background: white
        border-radius: 0px 0px 4px 4px
        line-height: 20px
        display: flex
        align-items: stretch
        
        .text
          padding: 30px
        
          p
            margin-bottom: 20px
            
        .img
          height: 180px
          width: 140px
          border-bottom-left-radius: 4px
          flex-shrink: 0
          background:
            size: cover
            position: center
            
            
    &.is-active
      display: flex
      animation: overlayAnim 5s ease-in-out forwards
      
      .modal
        animation: modalAnim 5s ease-in-out forwards
      
      
      
      
@keyframes overlayAnim
  0%, 100%
    background-color: rgba(0,0,0,0)
  15%, 85%
    background-color: rgba(0,0,0,0.3)
  

  
@keyframes modalAnim
  0%
    transform: translateX(-200%) rotate(-90deg)
    opacity: 0
  
  10%
    transform: translateX(4%) rotate(4deg)
  
  15%, 85%
    transform: translateX(0%)
    opacity: 1
  
  90%
    transform: translateX(-4%) rotate(-4deg)
  
  100%
    transform: translateX(200%) rotate(90deg)
        
    

  
  
  
  
  
  
  
  
View Compiled
$('.nav li').click(function(){
  $(this).addClass('is-active').siblings().removeClass('is-active');
});



$('.grid .item').click(function(){
  $('.website .alert-element').toggleClass('is-active');
});



$('.section-modal .profile').click(function(){
  $('.overlay').addClass('is-active');
  setTimeout(function(){
    $('.overlay').removeClass('is-active');
  }, 5000);
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://code.jquery.com/jquery-2.2.4.min.js