Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URL's added here will be added as <link>s in order, and before the CSS in the editor. If you link to another Pen, it will include the CSS from that Pen. If the preprocessor matches, it will attempt to combine them before processing.

+ add another resource

JavaScript

Babel is required to process package imports. If you need a different preprocessor remove all packages first.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Behavior

Save Automatically?

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML Settings

Here you can Sed posuere consectetur est at lobortis. Donec ullamcorper nulla non metus auctor fringilla. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec id elit non mi porta gravida at eget metus. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

HTML

            
              
<div class="snowfall-con">
  <div class="snowflake-one snowflake"></div>
  <div class="snowflake-two snowflake"></div>
  <div class="snowflake-three snowflake"></div>
  <div class="snowflake-four snowflake"></div>
  <div class="snowflake-five snowflake"></div>
  <div class="snowflake-six snowflake"></div>
  <div class="snowflake-seven snowflake"></div>
  <div class="snowflake-eight snowflake"></div>
  <div class="snowflake-nine snowflake"></div>
  <div class="snowflake-ten snowflake"></div>
  <div class="snowflake-eleven snowflake"></div>
  <div class="snowflake-twelve snowflake"></div>
  <div class="snowflake-thirteen snowflake"></div>
</div>


<div class="tree">
  <div class="tree-leaves"></div>
  <div class="tree-trunk"></div>
</div>


<div class="city-con">
  
  <div class="house">
    <div class="roof">
      <div class="chimney"></div>
    </div>
    <div class="house-front">
      <div class="house-window"></div>
      <div class="house-window-two"></div>
      <div class="house-window-three"></div>
      
      <div class="door">
        <div class="nob"></div>
      </div>
    </div>
    
  </div>
  
  
  <div class="sidewalk">
    <div class="side-one"></div>
  </div>
  
  <div class="snow-layer-bottom">
    <div class="snowman-one"></div>
    <div class="snowman-two">
      <div class="button-one"></div>
      <div class="button-two"></div>
      <div class="button-three"></div>
      <div class="stick"></div>
      <div class="stick-two"></div>
    </div>
    <div class="snowman-three">
      <div class="snowman-eye"></div>
      <div class="snowman-eye-two"></div>
      <div class="carrot"></div>
      <div class="snowman-smile"></div>
      <div class="snowman-smile-cover"></div>
      <div class="top-hat-rim"></div>
      <div class="top-hat">
        <div class="top-hat-red"></div>
      </div>
    </div>
  </div>
  
</div>

<div class="santa-con">
  <div class="santa">
    <div class="hat"></div>
    
    <div class="white-hat"></div>
    <div class="hat-ball"></div>

    
    <div class="head">

      <div class="eyebrow eyebrow-one"></div>
      <div class="eyebrow-two"></div>
      
      <div class="eye">
        <div class="blink"></div>
        <div class="pupil-color">
          <div class="pupil"></div>
        </div>
      </div>
      
      <div class="eye-two">
        <div class="blink"></div>
        <div class="pupil-color">
          <div class="pupil"></div>
        </div>
      </div>
      
      <div class="nose-dark">
        <div class="nose-light"></div>
      </div>
      
     <div class="beard">
      <div class="beard-left"></div>
      <div class="center-beard"></div>
      <div class="beard-right"></div>
       
      <div class="mouth"></div>
    </div>

      
    </div>
    
    <div class="suit">
      <div class="suit-line"></div>
      <div class="belt">
        <div class="buckle">
          <div class="buckle-belt"></div>
        </div>
      </div>
      <div class="white-suit"></div>
    </div>
    
    <div class="left-arm">
      <div class="fluff"></div>
      <div class="hand"></div>
    </div>
    <div class="right-arm">
      <div class="fluff"></div>
      <div class="hand"></div>
    </div>
    
    <div class="leg left-leg">
      <div class="fluff"></div>
      <div class="boot">
        <div class="bottom-boot"></div>
      </div>
    </div>
    <div class="leg right-leg">
      <div class="fluff"></div>
      <div class="boot">
        <div class="bottom-boot"></div>
      </div>
    </div>
    
    
  </div>

</div>

<a class="github" href="https://www.github.com/joerez" target="_blank">Follow on GitHub</a>
            
          
!

CSS

            
              body {
  height: 100vh;
  width: 100%;
  overflow-y: hidden;
  background-color:black;
  background-image:
  radial-gradient(white, rgba(255,255,255,.2) 2px, transparent 40px),
  radial-gradient(white, rgba(255,255,255,.15) 1px, transparent 30px),
  radial-gradient(white, rgba(255,255,255,.1) 2px, transparent 40px),
  radial-gradient(rgba(255,255,255,.4), rgba(255,255,255,.1) 2px, transparent 30px);
  background-size: 550px 550px, 350px 350px, 250px 250px, 150px 150px;
  background-position: 0 0, 40px 60px, 130px 270px, 70px 100px;
}

@keyframes santaMove {
  25% {
    transform: translateX(30px)
  }
  
  50% {
    transform: translateX(0px)
  }
  
  70% {
    transform: translateX(-30px)
  }
}

.santa-con {
   -webkit-animation: santaMove 7s ease-out infinite;
  position: absolute;
  left: 0;
  top: 220px;
  height: 100vh;
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: center;
  z-index: 1000000000;
}

.santa {
  -webkit-animation: jump 7s ease-out infinite;
  position: relative;
  height: 400px;
  width: 400px;
  transition: all 1s;
  z-index: 2;
}

@keyframes headRotate {
  50% {
    transform: rotate(-5deg);
  }
}

.head {
  -webkit-animation: headRotate 6s linear infinite;
  position: relative;
  top: 50px;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  height: 100px;
  width: 100px;
  border-radius: 50%;
  background: rgba(255, 234, 167,1.0);
  z-index: 105;
  border: solid 2px white;
  
}

@keyframes eyebrowAn {
  20% {
    transform: rotate(3deg);
  }
  
  40% {
    transform: rotate(-6deg)  translateY(-2px);
  }
  
  70% {
    transform: rotate(-6deg)  translateY(-2px);
  }
}

.eyebrow {
  -webkit-animation: eyebrowAn 7s linear infinite;
  position: absolute;
  top: 30px;
  left: 20px;
  height: 5px;
  width: 15px;
  border: solid 1px black;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 10px;
  border-top-left-radius: 6px;
  border-top-right-radius: 4px;
  background: white;
  transform: rotate(0deg)
}

.eyebrow-two {
   -webkit-animation: eyebrowAn 7s linear infinite;
  position: absolute;
  top: 30px;
  right: 20px;
  height: 5px;
  width: 15px;
  border: solid 1px black;
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 3px;
  border-top-left-radius: 4px;
  border-top-right-radius: 6px;
  background: white;
  transform: rotate(-2deg)
}

.eye {
  position: relative;
  top: 40px;
  left: 20px;
  height: 12px;
  width: 20px;
  background: white;
  border-radius: 50%;
  border: solid 1px black;
  display: flex;
  justify-content: center;
  align-items: center;
}

@keyframes eyes {
  0% {
    transform: translateX(0px);
  }
  50% {
    transform: translateX(2px);
  }
  
  60% {
    transform: translateX(2px);
  }
  
  75% {
    transform: translateX(-2px);
  }
  
  90% {
    transform: translateX(-2px);
  }
  
}

.pupil-color {
  -webkit-animation: eyes 4s linear infinite;
  margin-top: 1px;
  height: 7px;
  width: 7px;
  background: rgba(9, 132, 227,1.0);
  border: solid 1px black;
  border-radius: 50%;
  marin-left: 3px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.pupil {
  height: 3px;
  width: 3px;
  background: black;
  border-radius: 50%;
}

.eye-two {
  position: relative;
  top: 26px;
  left: 60px;
  height: 12px;
  width: 20px;
  background: white;
  border-radius: 50%;
  border: solid 1px black;
  display: flex;
  justify-content: center;
  align-items: center;
}

@keyframes blink {
  9 % {
    height: 0%;
  }
10% {
  height: 100%;
  }
  12% {
    height: 0%;
  }
  
}

.blink {
  top: 0;
  left: 0;
  -webkit-animation: blink 4s linear infinite;
  animation-delay: 0s;
  position: absolute;
  z-index: 100;
  height: 0%;
  width: 100%;
  background: rgba(255, 234, 167,1.0);
  border-radius: 50%;
}

.nose-dark {
  position: absolute;
  top: 60px;
  left: 37px;
  height: 20px;
  width: 25px;
  background: rgba(250, 177, 160,.5);
  border-radius: 50%;
  z-index: 60000;
}

.nose-light {
  height: 85%;
  width: 90%;
  background: rgba(253, 223, 130,1.0);
  border-radius: 50%;
  z-index: 340;
}

.beard {
  position: relative;
  height: 90px;
  width: 70px;
  z-index: 30;
  top: 39px;
  left: 15px;
  z-index: 10001;
}

.beard-left {
  border-radius: 50%;
  background: white;
  position: absolute;
  left: -20px;
  height: 70px;
  width: 70px;
}

.beard-right {
  border-radius: 50%;
  background: white;
  position: absolute;
  left: 20px;
  height: 70px;
  width: 70px;
}

.center-beard {
  border-radius: 50%;
  background: white;
  position: absolute;
  top: 20px;
  left: 0px;
  height: 70px;
  width: 70px;
  box-shadow: 0px 2px 0px 0px rgba(0,0,0,.3);
  z-index: 1001;
}

@keyframes smile {
  30% {    transform: translateX(0px);

    width: 20px}
  50% {
    transform: translateX(-5px);
    width: 30px;
  }
  
  70% {
    transform: translateX(-5px);
    width: 30px;
  }
}

.mouth {
  -webkit-animation: smile 6s linear infinite;
  border-radius: 0;
  border-bottom-right-radius: 50%;
  border-bottom-left-radius: 50%;
  background: black;
  position: absolute;
  top: 30px;
  left: 26px;
  height: 5px;
  width: 20px;
  z-index: 60000;
}

.hat {
  position: absolute;
  height: 100px;
  width: 110px;
  background: rgba(214, 48, 49,1.0);
  border-radius: 30px;
  border-top-left-radius: 50%;
  border-top-right-radius:50%;
  left: 160px;
  top: 25px;
  z-index: 104;
}

.white-hat {
  position: absolute;
  height: 20px;
  width: 110px;
  border-radius: 20px; 
  background: white;
  top: 50px;
  z-index: 30000;
  left: 145px;
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
}

.hat-ball {
  position: absolute;
  height: 35px;
  width: 35px;
  border-radius: 50%;
  background: white;
  top: 95px;
  left: 240px;
  z-index: 150;
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
}

@keyframes breath {
  50% {
    transform: translateY(-2px) scale(1.05);
  }
}

.suit {
  -webkit-animation: breath 4s linear infinite;
  animation-fill-mode: initial;
  position: relative;
  top: 30px;
  left: 100px;
  height: 200px;
  width: 200px;
  z-index: 100;
  border-top-left-radius: 50%;
  border-top-right-radius: 50%;
  background: rgba(214, 48, 49,1.0);
  border: solid 1px black;
}

.suit-line {
  position: absolute;
  height: 180px;
  width: 50px;
  background: white;
  border: solid 1px black;
  top: 20px;
  left: 75px;
}

.belt {
  position: absolute;
  background: rgba(45, 52, 54,1.0);
  width: 100%;
  height: 30px;
  top: 150px;
  display: flex;
  justify-content: center;
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
}

.buckle {
  height: 80%;
  width: 40px;
  background: gold;
  border: solid 3px black;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
}

.buckle-belt {
  height: 80%;
  width: 80%;
  background: rgba(45, 52, 54,1.0);
  border-bottom-left-radius: 10px;
  border-top-right-radius: 10px;
  border-bottom-right-radius: 6px;
  border-top-left-radius: 6px;
  border: solid 2px rgba(253, 203, 110,1.0);
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
}

.white-suit {
  position: absolute;
  top: 95%;
  width: 99%;
  height: 20px;
  background: white;
  border: solid 1px; black;
  border-bottom-left-radius: 50%;
  border-bottom-right-radius: 50%;
  z-index: 100;
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
}

@keyframes leftArm {
  
  10% {
  transform: rotate(130deg) translateY(90px) translateX(-60px);
  }
  20% {
   transform: rotate(120deg) translateY(70px) translateX(-50px);
  }
  
   30% {
  transform: rotate(130deg) translateY(90px) translateX(-60px);
  }
  40% {
   transform: rotate(40deg);
  }

}

.left-arm {
  -webkit-animation: leftArm 10s linear infinite;
  animation-fill-mode: initial;
  position: relative;
  top: -149px;
  left: 80px;
  height: 150px;
  width: 40px;
  background: rgba(214, 48, 49,1.0);
  border: solid 1px black;
  transform: rotate(40deg);
  border-top: none;
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
  z-index: 10;
}


.right-arm {
  position: relative;
  top: -299px;
  left: 280px;
  height: 150px;
  width: 40px;
  background: rgba(214, 48, 49,1.0);
  border: solid 1px black;
  transform: rotate(-40deg);
  border-top: none;
  z-index: 11;
}

.fluff {
  position: absolute;
  bottom: -5px;
  background: white;
  width: 150%;
  height: 20px;
  left: -10px;
  border: solid 1px black;
  border-radius: 7px;
  z-index: 5;
}

.hand {
  position: absolute;
  bottom: -25px;
  background: rgba(255, 234, 167,1.0);;
  width: 30px;
  height: 30px;
  left: 7px;
  border: solid 1px black;
  border-radius: 50%;
}

@keyframes leftLeg {
  
  10% {
     transform: rotate(-0deg)
  }
  
  15% {
    transform: rotate(-15deg) translateY(-3px) translateX(10px)
  }
  
  25% {
    transform: rotate(0deg)
  }
}


.left-leg {
    -webkit-animation: leftLeg 6s ease-out infinite;
    animation-fill-mode: initial;

  position: relative;
  height: 90px;
  width: 40px;
  background: rgba(214, 48, 49,1.0);
  top: -270px;
  left: 130px;
}

@keyframes rightLeg {
  10% {
    transform: rotate(-15deg) translateY(-3px) translateX(10px);
  }
  
  20% {
    transform: rotate(0deg)
  }
  
  60% {
    transform: rotate(-15deg) translateY(-3px) translateX(10px);  
  }
  
  70% {
    transform: rotate(0deg);
  }
}

.right-leg {
    -webkit-animation: rightLeg 6s ease-in-out infinite;
  animation-fill-mode: initial;
  position: relative;
  height: 90px;
  width: 40px;
  background: rgba(214, 48, 49,1.0);
  top: -360px;
  left: 230px;
}

.leg .fluff {
  left: -5px;
  height: 10px;
  width: 120%;
  box-shadow: 0px 2px 1px rgba(0,0,0,.5);
  z-index: 100;
}

.leg {
  z-index: 10;
  border: solid 1px black;
}

.boot {
  position: relative;
  height: 40px;
  width: 40px;
  background: rgba(45, 52, 54,1.0);
  bottom: -90px;
  left: 0px;
  z-index: 0;
  border: solid 1px black;
  z-index: 10;
}

.bottom-boot {
  position: absolute;
  bottom: -10px;
  width: 60px;
  height: 20px;
  background: black;
  border-radius: 30px;
  z-index: 10;
}

.puddle {
  position: absolute;
  bottom: -150px;
  width: 500px;
  height: 300px;
  border-radius: 50%;
  background: rgba(116, 185, 255,.6);
  border: solid 1px black;
  z-index: 0;
}

@keyframes jump {
  0% {
    transform: scaleY(.95);
  }
  
  10% {
    transform: scaleX(1.00) scaleY(1.00) translateY(-40px);
  }
  
  20% {
    transform: scaleX(1.0) scaleY(1.0) translateY(0px);
  }
}

.jump {
  -webkit-animation: jump 2s linear 1;
}

.city-con {
  position: absolute;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100%;
  z-index: 0;
}

.sidewalk {
  position: relative;
  top: 70%;
  height: 100px;
  width: 100%;
  background: rgba(178, 190, 195,1.0);
  z-index: 10;
}

.side-one {
  position: relative;
  left: 33%;
  height: 100%;
  width: 33%;
  border-right: solid 1px black;
  border-left: solid 1px black;
}

.snow-layer-bottom {
  position: relative;
  height: 100px;
  background: #FFFAFA;
  top: 70%;
}

.snowman-one {
  position: relative;
  width: 120px;
  height: 120px;
  background: #f9ecec;
  border: solid 1px black;
  border-radius: 50%;
  left: 50px;
}

.snowman-two {
  position: relative;
  width: 100px;
  height: 100px;
  background: #f9ecec;
  border: solid 1px black;
  border-radius: 50%;
  left: 60px;
  top: -180px;
  z-index: 15;
}

.snowman-three {
  position: relative;
  width: 80px;
  height: 80px;
  background: #f9ecec;
  border: solid 1px black;
  border-radius: 50%;
  left: 70px;
  top: -330px;
  z-index: 15;
}

.snowman-eye {
  position: absolute;
  top: 30px;
  left: 20px;
  height: 10px;
  width: 10px;
  background: rgba(0,0,0,.7);
  border-radius: 50%;
}

.snowman-eye-two {
  position: absolute;
  top: 30px;
  right: 20px;
  height: 10px;
  width: 10px;
  background: rgba(0,0,0,.7);
  border-radius: 50%;
}

.carrot {
  position: absolute;
  top: 43px;
  right: 30px;
  width: 0; 
  height: 0; 
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 20px solid orange;
}

.snowman-smile {
  -webkit-border-bottom-right-radius: 25px;
	-webkit-border-bottom-left-radius: 25px;
	-moz-border-radius-bottomright: 25px;
	-moz-border-radius-bottomleft: 25px;
	border-bottom-right-radius: 30px;
	border-bottom-left-radius: 30px;
	height: 10px;
	background-color: #000;
	position: absolute;
	width: 30px;
	left: 25px;
	top: 65px;
}

.snowman-smile-cover {
  border-bottom-right-radius: 25px;
	border-bottom-left-radius: 25px;
	height: 9px;
	background-color: #f9ecec;
	position: absolute;
	width: 28px;
	left: 26px;
	top: 65px;
}

.top-hat-rim {
  position: absolute;
  left: -5px;
  height: 20px;
  width: 90px;
  border-radius: 50%;
  background: rgba(45, 52, 54,1.0);
}

.top-hat {
  height: 60px;
  width: 50px;
  background: rgba(47, 53, 66,1.0);
  border-top-left-radius: 25px;
  border-top-right-radius: 25px;
  position: absolute;
  top: -50px;
  left: 15px;
}

.button-one {
  height: 7px;
  width: 7px;
  border-radius: 50%;
  background: rgba(0,0,0,.7);
  position: absolute;
  top: 40px;
  left: 46px;
}

.button-two {
  height: 7px;
  width: 7px;
  border-radius: 50%;
  background: rgba(0,0,0,.7);
  position: absolute;
  top: 55px;
  left: 46px;
}

.button-three {
  height: 7px;
  width: 7px;
  border-radius: 50%;
  background: rgba(0,0,0,.7);
  position: absolute;
  top: 70px;
  left: 46px;
}

.top-hat-red {
  position: absolute;
  height: 10px;
  width: 100%;
  background: rgba(192, 57, 43,1.0);
  bottom: 0;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
}

@keyframes stick {
  50% {
    transform: rotate(60deg) translateY(-20px) translateX(-20px)
  }
}

.stick {
  -webkit-animation: stick 3s linear infinite;
  width: 90px;
  height: 3px;
  background: brown;
  position: absolute;
  top: 20px;
  left: -70px;
  transform: rotate(20deg);
  border-radius: 25px;
}

@keyframes stick2 {
  50% {
    transform: rotate(-60deg) translateY(-30px) translateX(60px)
  }
}


.stick-two {
  -webkit-animation: stick2 3s linear infinite;
  width: 90px;
  height: 3px;
  background: brown;
  position: absolute;
  top: 70px;
  left: 70px;
  transform: rotate(50deg);
  border-radius: 25px;
}

.snowfall-con {
  position: relative;
  height: 100vh;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 1000000000000000;
}

@keyframes snowOne {
  100% {
    transform: translateY(1000px);
  }
}

.snowflake {
  height: 5px;
  width: 5px;
  border-radius: 50%;
  background: white;
  box-shadow: 0px 1px 1px rgba(0,0,0,.3)
}

.snowflake-one {
  -webkit-animation: snowOne 6s linear infinite;
  position: absolute;
  top: -20px;
  left: 50px;
  z-index: 1000;
}

.snowflake-two {
  -webkit-animation: snowOne 3s linear infinite;
  position: absolute;
  top: -160px;
  right: 110px;
  z-index: 1000;

}

.snowflake-three {
  -webkit-animation: snowOne 4s linear infinite;
  position: absolute;
  top: -360px;
  right: 400px;
  z-index: 1000;

}

.snowflake-four {
  -webkit-animation: snowOne 7s linear infinite;
  position: absolute;
  top: -160px;
  right: 600px;
  z-index: 1000;
}

.snowflake-five {
  -webkit-animation: snowOne 2s linear infinite;
  position: absolute;
  top: -360px;
  right: 329px;
  z-index: 1000;
}

.snowflake-six {
  -webkit-animation: snowOne 3s linear infinite;
  position: absolute;
  top: -60px;
  right: 520px;
  z-index: 1000;
}

.snowflake-seven {
  -webkit-animation: snowOne 10s linear infinite;
  position: absolute;
  top: -360px;
  right: 220px;
  z-index: 1000;
}

.snowflake-eight {
  -webkit-animation: snowOne 10s linear infinite;
  position: absolute;
  top: -160px;
  right: 20px;
  z-index: 1000;
}

.snowflake-nine {
  -webkit-animation: snowOne 9s linear infinite;
  position: absolute;
  top: -360px;
  left: 70px;
  z-index: 1000;
}

.snowflake-ten {
  -webkit-animation: snowOne 4s ease-in infinite;
  position: absolute;
  top: -10px;
  left: 220px;
  z-index: 1000;
}

.snowflake-eleven {
  -webkit-animation: snowOne 5s linear infinite;
  position: absolute;
  top: -400px;
  left: 320px;
  z-index: 1000;
}

.snowflake-twelve {
  -webkit-animation: snowOne 2s linear infinite;
  position: absolute;
  top: -110px;
  left: 420px;
  z-index: 1000;
}

.snowflake-thirteen {
  -webkit-animation: snowOne 4.6s ease-in infinite;
  position: absolute;
  top: -320px;
  right: 150px;
  z-index: 1000;
}


.house {
  position: absolute;
  height: 410px;
  width: 500px;
  top: 250px;
  left: 30px;
  z-index:15;
}

.house-front {
  position: relative;
  top: 110px;
  height: 300px;
  width: 450px;
  background: blue;
  background-color: silver;
  background-image: linear-gradient(335deg, #b00 23px, transparent 23px),
  linear-gradient(155deg, #d00 23px, transparent 23px),
  linear-gradient(335deg, #b00 23px, transparent 23px),
  linear-gradient(155deg, #d00 23px, transparent 23px);
  background-size: 58px 58px;
  background-position: 0px 2px, 4px 35px, 29px 31px, 34px 6px;
}

.roof {
  position: absolute;
  top: 30px;
  width: 0; 
  height: 0; 
  border-left: 225px solid transparent;
  border-right: 225px solid transparent;
  border-bottom: 80px solid #3d3d3d;
}

.chimney {
  position: relative;
  width: 70px;
  height: 80px;
  left: 30px;
  bottom: 20px;
  background-color: silver;
  background-image: linear-gradient(335deg, #b00 23px, transparent 23px),
  linear-gradient(155deg, #d00 23px, transparent 23px),
  linear-gradient(335deg, #b00 23px, transparent 23px),
  linear-gradient(155deg, #d00 23px, transparent 23px);
  background-size: 58px 58px;
  background-position: 0px 2px, 4px 35px, 29px 31px, 34px 6px;
}

.door {
  position: relative;
  height: 150px;
  width: 100px;
  background: #ff4d4d;
  top: 150px;
  left: 130px;
  border: solid 1px black;
}

.nob {
  position: absolute;
  top: 90px;
  right: 10px;
  height: 10px;
  width: 10px;
  border-radius: 50%;
  background: gold;
  border: solid 1px black;
  box-shadow: 0px 1px 2px rgba(0,0,0,.3)
}

@keyframes lightFlicker {
  
  15% {
    background: black;
  }
  
  20% {
    background: gold;
    box-shadow: 0px 0px 20px rgba(255,255,0,1);
  }
  
  60% {
    background: gold;
    box-shadow: 0px 0px 60px 10px rgba(255,255,0,1);
  }
  
  65% {
    background: black;
    box-shadow: none;
  }
}

.house-window {
  -webkit-animation: lightFlicker 9.6s ease-in infinite;
  animation-delay: 4.5s;
  position: absolute;
  height: 50px;
  width: 50px;
  background: black;
  top: 170px;
  left: 40px;
  box-shadow: 1px 1px rgba(0,0,0,.3)
}



.house-window-two {
  -webkit-animation: lightFlicker 9.6s ease-in infinite;
  position: absolute;
  height: 50px;
  width: 50px;
  background: black;
  top: 70px;
  left: 40px;
}


.house-window-three {
  -webkit-animation: lightFlicker 35.6s ease-in infinite;
  animation-delay: 2s;
  position: absolute;
  height: 50px;
  width: 50px;
  background: black;
  top: 70px;
  left: 160px;

}

.tree {
  position: absolute;
  right: 30px;
  top: 300px;
  height: 360px;
  width: 200px;
  z-index: 15;
}

.tree-trunk {
  position: absolute;
  bottom: 0;
  left: 50px;
  height: 100px;
  width: 100px;
  background: #8B4513;
  z-index: 2;
}

.tree-leaves {
  position: absolute;
  top: 15px;
  width: 0; 
  height: 0; 
  border-left: 100px solid transparent;
  border-right: 100px solid transparent;
  border-bottom: 300px solid green;
  z-index: 3;
}

.github {
  position: absolute;
  top: 10px;
  left: 10px;
  background: rgba(155, 89, 182,1.0);
  padding: 9px 20px 9px 20px;
  color: white;
  text-decoration: none;
  font-family: sans-serif;
  border-radius: 20px;
  cursor: pointer;
  z-index: 1000000000000;
  font-size: 10px;
}
            
          
!

JS

            
              // Santa Claus is coming to town by Joe Rezendes

// Merry Christmas and happy holidays!

// www.joerezendes.com
// www.github.com/joerez

            
          
!
999px

Console