Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URLs added here will be added as <link>s in order, and before the CSS in the editor. You can use the CSS from another Pen by using its URL and the proper URL extension.

+ add another resource

JavaScript

Babel includes JSX processing.

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

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Auto Save

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.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

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

Visit your global Editor Settings.

HTML

              
                <div class="ground"></div>
<div class="mountain-one">
  <div class="mountain-left"></div>
  <div class="mountain-right"></div>
</div>
<div class="mountain-two">
  <div class="mountain-left"></div>
  <div class="mountain-right"></div>
</div>
<div class="tree-one">
  <div class="trunk"></div>
  <div class="shrub shrub-one"></div>
  <div class="shrub shrub-two"></div>
  <div class="shrub shrub-three"></div>
</div>
<div class="tree-two">
  <div class="trunk"></div>
  <div class="shrub shrub-one"></div>
  <div class="shrub shrub-two"></div>
  <div class="shrub shrub-three"></div>
</div>
<div class="tree-three">
  <div class="trunk"></div>
  <div class="shrub shrub-one"></div>
  <div class="shrub shrub-two"></div>
  <div class="shrub shrub-three"></div>
</div>
<div class="tree-four">
  <div class="trunk"></div>
  <div class="shrub shrub-one"></div>
  <div class="shrub shrub-two"></div>
  <div class="shrub shrub-three"></div>
  <div class="water"></div>
</div>
<div class="porygon-wrapper">
  <div class="tail-wrapper">
    <div class="tail-top"></div>
    <div class="tail-bottom"></div>
  </div>
  <div class="leg-wrapper left-leg">
    <div class="leg-side"></div>
    <div class="leg-top"></div>
    <div class="leg-front"></div>
  </div>
  <div class="body-wrapper">
    <div class="neck"></div>
    <div class="body-back-bottom"></div>
    <div class="body-back-top"></div>
    <div class="body-front-highlight"></div>
    <div class="body-front-top"></div>
    <div class="body-front-bottom"></div>
  </div>
  <div class="head-wrapper">
    <div class="back-head-line"></div>
    <div class="back-head-bottom"></div>
    <div class="back-head-top"></div>
    <div class="eye eye-left"></div>
    <div class="bottom-head"></div>
    <div class="side-head"></div>
    <div class="mid-head"></div>
    <div class="nose"></div>
    <div class="eye eye-right">
      <span class="eye-ball"></span>
    </div>
  </div>
  <div class="leg-wrapper right-leg">
    <div class="leg-side"></div>
    <div class="leg-top"></div>
    <div class="leg-front"></div>
  </div>
</div>

              
            
!

CSS

              
                :root {
  --black: #111;
  --white: #fff;
  --sky: skyblue;
  --grass-top: #85b92f;
  --grass: #99ce86;

  --mountain-left: #86cd29;
  --mountain-right: #5db231;

  --shrub: #2f9228;
  --shrub-shade: #285f24;
  --trunk: #61483e;
  --trunk-shade: #503b33;
  --water: #9097cc;

  --pink-one: #f897ab;
  --pink-two: #f97d88;
  --pink-three: #d87478;
  --pink-four: #ce6d7a;
  --neck: #c3737e;

  --blue-one: #c3e1ec;
  --blue-two: #95d3cd;
  --blue-three: #8db7b8;
  --blue-four: #769995;
  --blue-five: #536866;
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100vh;
  background-color: var(--sky);
  background: linear-gradient(to bottom, var(--sky) 0%, var(--white)100%);
}

.ground {
  display: block;
  width: 100%;
  height: calc(65vh + 1px);
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  background: linear-gradient(to bottom, var(--grass-top) 0%, var(--grass)100%);
}

.mountain-one {
  position: absolute;
  bottom: 65vh;
  right: 120vh;
  transform: scaleY(0.7);
  transform-origin: 50% 100%;
}

.mountain-two {
  position: absolute;
  bottom: 65vh;
  right: 90vh;
}

.mountain-left {
  border-bottom: 180px solid var(--mountain-left);
  border-left: 260px inset transparent;
  border-right: 260px inset transparent;
}

.mountain-right {
  position: absolute;
  top: 0;
  right: 76px;
  border-bottom: 180px solid var(--mountain-right);
  border-left: 0 inset transparent;
  border-right: 104px inset transparent;
  transform: skew(42deg);
}

.tree-one {
  position: absolute;
  bottom: 60vh;
  right: 23vh;
  transform-origin: 50% 100%;
}

.tree-two {
  position: absolute;
  bottom: 55vh;
  right: 42vh;
  z-index: 5;
  transform: scaleY(1.2);
  transform-origin: 50% 100%;
}

.tree-three {
  position: absolute;
  bottom: 60vh;
  right: 55vh;
  transform: scale(0.8);
  transform-origin: 50% 100%;
}

.tree-four {
  position: absolute;
  bottom: 50vh;
  left: 0;
  transform: scale(2);
  transform-origin: 50% 100%;
}

.trunk {
  width: 25px;
  height: 100px;
  position: relative;
  right: 6px;
  background-color: var(--trunk);
}

.trunk:after {
  content: '';
  width: 6px;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  background-color: var(--trunk-shade);
}

.shrub {
  position: absolute;
  border-bottom: 60px solid var(--shrub);
  border-left: 80px inset transparent;
  border-right: 80px inset transparent;
}

.shrub:after {
  content: '';
  position: absolute;
  top: 0;
  right: -25px;
  border-bottom: 50px solid var(--shrub-shade);
  border-left: 10px inset transparent;
  border-right: 10px inset transparent;
  transform: skewX(30deg);
}

.shrub-one {
  top: -28px;
  right: -62px;
}

.shrub-one:after {
  right: -41px;
  border-bottom-width: 60px;
  border-left-width: 28px;
  border-right-width: 0px;
  transform: skewX(52deg);
}

.shrub-two {
  top: -68px;
  right: -42px;
  border-left-width: 60px;
  border-right-width: 60px;
}

.shrub-two:after {
  right: -35px;
  border-bottom-width: 60px;
  border-left-width: 16px;
  transform: skewX(40deg);
}

.shrub-three {
  top: -98px;
  right: -22px;
  border-bottom-width: 50px;
  border-left-width: 40px;
  border-right-width: 40px;
}

.water {
  position: absolute;
  top: 105px;
  left: -215px;
  width: 380px;
  height: 50px;
  border-radius: 50%;
  background-color: var(--water);
}

.water:after {
  content: '';
  width: 55px;
  height: 28px;
  position: absolute;
  bottom: -18px;
  right: 137px;
  border-radius: 50% 0;
  transform: skew(-79deg);
  background-color: var(--water);
}

.porygon-wrapper {
  display: block;
  width: 660px;
  height: 520px;
  position: relative;
  z-index: 50;
  cursor: pointer;
}

.porygon-wrapper:hover .tail-wrapper,
.porygon-wrapper:hover .head-wrapper,
.porygon-wrapper:hover .leg-wrapper{
  animation-play-state: running;
}

.porygon-wrapper:hover .eye-ball {
  border-bottom: 4px solid var(--black);
  border-right: 4px solid var(--black);
  width: 15px;
  height: 15px;
  border-radius: 0;
  transform: rotate(-111deg);
  background-color: transparent;
}

.head-wrapper {
  position: absolute;
  top: 38px;
  right: 272px;
  transform: rotate(-13deg);
  will-change: transform;
  animation: head-bounce 0.5s linear;
  animation-direction: alternate-reverse;
  animation-iteration-count: infinite;
  animation-play-state: paused;
  animation-fill-mode: forwards;
}

.mid-head {
  position: absolute;
  top: -5px;
  left: -204px;
  transform: rotate(-34deg) skew(30deg);
  width: 235px;
  height: 54px;
  background-color: var(--pink-one);
}

.mid-head:after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 90px;
  height: 100%;
  background-color: var(--blue-one);
}

.back-head-line {
  position: absolute;
  top: -23px;
  right: -27px;
  width: 147px;
  height: 4px;
  transform: rotate(26deg);
  background-color: var(--pink-two);
}

.back-head-bottom {
  position: absolute;
  top: 77px;
  right: -18px;
  width: 61px;
  height: 83px;
  transform: rotate(-73deg) skew(39deg);
  background-color: var(--pink-four);

}

.back-head-bottom:after {
  content: '';
  position: absolute;
  width: 100%;
  top: -10px;
  right: -34px;
  height: 100%;
  transform: rotate(40deg);
  background-color: var(--pink-four);
}

.back-head-top {
  height: 100%;
  position: absolute;
  top: -51px;
  left: 61px;
  border-top: 45px inset transparent;
  border-bottom: 42px inset transparent;
  border-right: 53px solid var(--pink-two);
  transform: rotate(-250deg);
}

.side-head {
  position: absolute;
  top: 16px;
  left: -175px;
  transform: rotate(-25deg);
  width: 0;
  height: 0;
  border-top: 40px inset transparent;
  border-bottom: 40px inset transparent;
  border-right: 230px solid var(--pink-two);
}

.side-head:after {
  content: '';
  position: absolute;
  top: -20px;
  left: -2px;
  border-top: 19px inset transparent;
  border-bottom: 19px inset transparent;
  border-right: 100px solid var(--blue-two);
}

.bottom-head {
  position: absolute;
  height: 18%;
  top: 32px;
  left: -159px;
  border-top: 72px inset transparent;
  border-bottom: 54px inset transparent;
  border-right: 217px solid var(--pink-three);
  transform: rotate(0deg) skew(-23deg);
}

.bottom-head:after {
  content: '';
  height: 100%;
  position: absolute;
  top: -84px;
  left: 4px;
  border-top: 86px inset transparent;
  border-bottom: 20px inset transparent;
  border-right: 78px solid var(--blue-three);
}

.nose {
  width: 65px;
  height: 20px;
  position: absolute;
  top: 87px;
  left: -213px;
  transform: rotate(22deg) skew(26deg);
  background-color: var(--blue-four);
}

.eye {
  position: relative;
  width: 100px;
  height: 57.74px;
  background-color: var(--white);
  transform: skew(12deg);
  box-sizing: border-box;
}

.eye-left {
  position: absolute;
  top: -29px;
  left: -58px;
}

.eye-ball {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  position: absolute;
  top: 25px;
  left: 30px;
  z-index: 5;
  background-color: var(--black);
}

.eye:before,
.eye:after {
  content: '';
  position: absolute;
  width: 0;
  border-left: 50px inset transparent;
  border-right: 50px inset transparent;
}

.eye:before {
  bottom: 100%;
  border-bottom: 28.87px solid var(--white);
}

.eye:after {
  top: 100%;
  width: 0;
  border-top: 28.87px solid var(--white);
}

.neck {
  position: absolute;
  top: 194px;
  right: 267px;
  border-top: 38px solid var(--neck);
  border-left: 113px inset transparent;
  border-right: 62px inset transparent;
  transform: rotate(-2deg);
}

.body-back-bottom {
  position: absolute;
  width: 120px;
  top: 338px;
  right: 149px;
  transform: rotate(-17deg) skew(-15deg);
  border-top: 70px solid var(--pink-four);
  border-left: 35px inset transparent;
  border-right: 64px inset transparent;
}

.body-back-top {
  position: absolute;
  width: 130px;
  top: 206px;
  right: 191px;
  transform: rotate(-17deg) skew(17deg);
  border-bottom: 142px solid var(--pink-one);
  border-left: 66px inset transparent;
  border-right: 30px inset transparent;
}

.body-front-highlight {
  position: absolute;
  top: 216px;
  right: 317px;
  transform: skew(-2deg);
  border-left: 42px solid var(--blue-two);
  border-top: 72px inset transparent;
  border-bottom: 81px inset transparent;
}

.body-front-top {
  position: absolute;
  width: 91px;
  top: 203px;
  right: 341px;
  transform: rotate(13deg) skew(-1deg);
  border-bottom: 150px solid var(--blue-one);
  border-left: 51px inset transparent;
  border-right: 30px inset transparent;
}

.body-front-bottom {
  position: absolute;
  width: 128px;
  top: 359px;
  right: 328px;
  transform: rotate(13deg) skew(56deg);
  border-top: 52px solid var(--blue-four);
  border-left: 14px inset transparent;
  border-right: 30px inset transparent;
}

.leg-wrapper {
  will-change: transform;
  animation: leg-bounce 0.5s linear;
  animation-direction: alternate;
  animation-iteration-count: infinite;
  animation-play-state: paused;
  animation-fill-mode: forwards;
}

.left-leg {
  position: relative;
  top: 0;
  left: -265px;
  transform-origin: 461px 387px;
}

.right-leg {
  transform: rotate(-14deg);
  transform-origin: 486px 422px;
  animation-direction: alternate-reverse;
}

.left-leg .leg-top,
.right-leg .leg-top {
  position: absolute;
  top: 308px;
  right: 169px;
  transform: rotate(-28deg) skew(41deg);
  width: 125px;
  height: 50px;
  background-color: var(--blue-one);
}

.left-leg .leg-front,
.right-leg .leg-front {
  width: 68px;
  height: 30px;
  position: absolute;
  top: 360px;
  right: 257px;
  transform: rotate(20deg) skew(-2deg);
  background-color: var(--blue-two);
}

.left-leg .leg-side,
.right-leg .leg-side {
  position: absolute;
  width: 155px;
  height: 45px;
  top: 384px;
  right: 109px;
  background-color: var(--blue-three);
  transform: rotate(21deg) skew(5deg);
}

.left-leg .leg-side:after,
.right-leg .leg-side:after {
  content: '';
  width: 69px;
  position: absolute;
  top: -77px;
  left: -32px;
  border-bottom: 78px solid var(--blue-three);
  border-left: 67px inset transparent;
  border-right: 51px inset transparent;
}


.right-leg .leg-top {
  position: absolute;
  top: 308px;
  right: 169px;
  transform: rotate(-28deg) skew(41deg);
  width: 125px;
  height: 50px;
  background-color: var(--blue-one);
}

.tail-wrapper {
  will-change: transform;
  animation: head-bounce 0.5s linear;
  animation-direction: alternate-reverse;
  animation-iteration-count: infinite;
  transform-origin: 653px 283px;
  animation-play-state: paused;
  animation-fill-mode: forwards;
}

.tail-top {
  position: absolute;
  width: 8px;
  top: 111px;
  right: 139px;
  transform: rotate(31deg) skew(-5deg);
  border-bottom: 166px solid var(--blue-one);
  border-left: 26px inset transparent;
  border-right: 26px inset transparent;
}

.tail-bottom {
  position: absolute;
  width: 8px;
  top: 130px;
  right: 124px;
  transform: rotate(52deg) skew(25deg);
  border-bottom: 160px solid var(--blue-three);
  border-left: 26px inset transparent;
  border-right: 26px inset transparent;
}


@keyframes leg-bounce {
  0% {
    transform: translate3d(0px,0px,0px) rotate(-10deg);

  }

  100% {
    transform: translate3d(0px,0px,0px) rotate(10deg);
  }
}

@keyframes head-bounce {
  0% {
    transform: translate3d(0px,0px,0px) rotate(-10deg);

  }

  100% {
    transform: translate3d(0px,0px,0px) rotate(-18deg);
  }
}

/* Responsive */
@media screen and (max-height: 770px) {
  .porygon-wrapper {
    transform: scale(0.8) translateY(50px);
    transform-origin: 300px;
  }
}

@media screen and (max-width: 1450px) {
  .tree-four {
    display: none;
  }
}

@media screen and (max-width: 700px) {
  body {
    overflow: hidden;
  }

  .porygon-wrapper {
    transform: scale(0.4) translateY(150px);
    transform-origin: 300px;
  }

  .tail-wrapper {
    transform-origin: 286px 311px;
  }

  .right-leg {
    transform-origin: 94px 249px;
  }
}

              
            
!

JS

              
                
              
            
!
999px

Console