script(src="https://use.fontawesome.com/f769c1e01c.js")
button#btn 
  span.default-text
    |Download
  span.hover-text
    i.fa.fa-download(aria-hidden='true')
#show.content.hide
  h1 Thanks!
  p Downloading in progress...
View Compiled
@import "bourbon"
body
  margin: 0
  background-color: #3f51b5
  +transition(background 0.5s ease-out)
#btn
  background: transparent
  border: 2px solid #fff
  border-radius: 1em
  color: #fff
  font-size: 24px
  padding: 1em 2em
  position: absolute
  left: 50%
  top: 50%
  +transform(translate(-50%, -50%))
  +transition(all 0.4s ease-out)
.content
  color: #fff
  text-align: center
  position: absolute
  left: 50%
  top: calc(50% + 4em)
  +transform(translate(-50%, -50%))
  +transition(all 0.5s cubic-bezier(.83,-0.43,.21,1.42))
.hide
  opacity: 0
  top: calc(50% + 8em)
  cursor: default
.show
  opacity: 1
  top: calc(50% + 6em)
.on
  background-color: #1976d2
#btn:hover, #btn.active
  background: white
  color: #3f51b5
  outline: none
#btn:focus
  outline: none
.hover-text
  position: absolute
  top: 1em
  left: 3.75em
  transform: translateY(-3em)
  opacity: 0
.default-text
  display: block
  transform: translateX(0)
span
  transition: transform 1s cubic-bezier(.72,-0.61,.25,1.51)
#btn:hover, #btn.active
  .default-text
    transform: translateY(3em)
    opacity: 0
#btn:hover, #btn.active
  .hover-text
    transform: none
    opacity: 1
View Compiled
var download = {
  init: function(settings) {
    download.config = {
      element: $("#show"),
      btn: $("#btn")
    };
    $.extend(download.config, settings);
    download.start();
  },
  start: function() {
    download.config.btn.on("click", function() {
      download.toggleShowElement();
    });
  },
  elementIsHidden: function() {
    download.config.element.hasClass("hide");
  },
  toggleShowElement: function() {
    if (download.elementIsHidden) {
      download.config.element.toggleClass("show");
      $("body").toggleClass("on");
      download.config.btn.toggleClass("active");
    }
  }
};

$(document).ready(download.init);

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js