klaytonfaria
12/19/2013 - 5:08 PM

A Pen by Klayton Faria.

A Pen by Klayton Faria.

@import "compass";
$eyes-color: #303030;
$head-color: #F16F5C;
$face-color: #F3D4BA;

.scene {
    position: fixed;
    width:100%;
    height: 100%;
    bottom:0;
    padding-top: 20%;
    background: #259ad1;
    background: -moz-linear-gradient(top,  #259ad1 -24%, #FFF 123%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#259ad1), color-stop(100%,#FFF));
    background: -webkit-linear-gradient(top,  #259ad1 -24%,#FFF 123%);
    background: linear-gradient(to bottom,  #259ad1 -24%,#FFF 123%);    
}
.mushroom {
   position: absolute;
   width: 200px;
   height: 155px;
   z-index: 2;
  bottom: 112px;
   * { 
       Box-sizing: Border-box;
    }
  
  .head {
    width: 100%;
    height: 100%;
    overflow:hidden;
    border-radius: 100% 100% 90% 90%;
    background: -webkit-radial-gradient(100px 50px, circle, $head-color, ($head-color - 100));
    background: -moz-radial-gradient(100px 50px, circle, $head-color, ($head-color - 100));
    background: radial-gradient(100px 50px, circle, $head-color, ($head-color - 100));
        .ball {
            position: relative;
            width: 47%;
            height: 47%;
            background-color: rgba(255, 255, 255, 0.85);
            margin: 0 auto;
            border-radius: 100%;
            top: 10px;
            box-shadow: inset 0px -11px 24px -2px rgba(241, 111, 92, 0.44);
            
            &:before {
                content: "";
                position: relative;
                display: block;
                width: 50%;
                height: 80%;
                background-color: rgba(255, 255, 255, 0.85);
                margin: 0 auto;
                border-radius: 100%;
                top: 10px;
                left: -100px;
            }
            &:after {
                content: "";
                position: relative;
                display: block;
                width: 50%;
                height: 80%;
                background-color: rgba(255, 255, 255, 0.85);
                margin: 0 auto;
                border-radius: 100%;
                top: -20px;
                left: 100px;
            }
        }
  }
    
  .face {
    position: relative;
    bottom: 40%;
    margin: 0 auto;
    width: 50%;
    height: 50%;
    background-color: $face-color;
    border-radius: 50% 50% 41% 41%;
    box-shadow: inset 1px -6px 22px -7px rgba(0, 0, 0, .74), 
            inset 0px 7px 24px -7px rgba(207, 139, 53, 0.5),
            inset 0px -28px 24px -7px rgba(207, 139, 53, 0.5);
    border-top: 2px solid #7A121A;   
  }
  .eyes {
    position: absolute;
    top: 10px;
    left: 0;
    width: 100%;
    padding: 10% 33% 0  33%;
        
    > div {
        display: block;
        height: 25px;
        width: 10px;
        background-color: $eyes-color;
        border-radius: 20px;
        &:before {
            content:"";
            display: block;
            position: relative;
            left: 2px;
            top: 2px;
            height: 10px;
            width: 6px;
            background-color: rgba(255, 255, 255, 0.5);
            border-radius: 20px;
        }
        
        &.left {
            float: left;             
        }
        &.right {
            float: right;
        }
      }
    }    
}

.tube, .top-tube {
    position: absolute;
    bottom: 95px;
    right:7%;
    width:150px;
    height:200px;
    display:block;
    background: #1B991B;
    background: -webkit-gradient(linear, left top, right top, color-stop(0%,#1B991B), color-stop(17%, rgba(149, 233, 149, 0.82)), color-stop(28%,#52b152), color-stop(49%,#008a00), color-stop(74%,#005700));
    background: -webkit-linear-gradient(left,  #1B991B 0%, rgba(149, 233, 149, 0.82) 17%,#52b152 28%,#008a00 49%,#005700 74%);
    background: linear-gradient(to right,  #1B991B 0%, rgba(149, 233, 149, 0.82) 17%,#52b152 28%,#008a00 49%,#005700 74%);
}

.tube {
    box-shadow:inset 0px 3px 1px 0px #165816, inset 0px -36px 54px 6px rgba(32, 83, 32, 0.27);
}

.top-tube {
    width: 180px;
    height: 50px;
    top: -50px;
    margin-right: -25px;
    border-radius: 3px;
    box-shadow: inset 0 4px 2px -2px rgba(39, 165, 39, 0.46), 
        inset 0 3px 2px 1px rgba(12, 85, 12, .74), 
        inset 0 1px 2px 1px rgba(39, 165, 39, 0.74);
    
}


.floor {
    position:absolute;
    bottom: 0;
    border-radius: 3px;
    border: 1px solid #7E5E2E;
    background-color: #9E7537 ;
background-image: linear-gradient(45deg, #916B33 25%, transparent 25%, transparent 75%, #916B33 75%, #916B33), 
    linear-gradient(45deg, #916B33 25%, transparent 25%, transparent 75%, #916B33 75%, #916B33);
background-size:70px 70px;
background-position: 0 0, 35px 35px;
    
    width:100%;
    height: 80px;
    box-shadow: inset 0 2px 1px 2px #C09149, 
    inset 0 -31px 27px 5px rgba(109, 82, 42, 0.32);
    z-index:1;
    
    &:before {
        content:"";
        width:100%;
        height: 15px;
        position: relative;
        top: -15px;
        left:-1px;
        display: block;
        border-radius: 3px;
        border: 1px solid #7E5E2E;
        background-color: #9C773D;
        box-shadow: inset 0 4px 1px 2px #C09149;
    }
}
 
/* Animations */

@mixin animation-name($name) {
  -webkit-animation-name: $name;
  -moz-animation-name: $name;
  -ms-animation-name: $name;
  animation-name: $name;
}
 
@mixin animation-duration($name) {
  -webkit-animation-duration: $name;
  -moz-animation-duration: $name;
  -ms-animation-duration: $name;
  animation-duration: $name;
}
 
@mixin animation-timing-function($name) {
  -webkit-animation-timing-function: $name;
  -moz-animation-timing-function: $name;
  -ms-animation-timing-function: $name;
  animation-timing-function: $name;
}
 
@mixin animation-iteration-count($name) {
  -webkit-animation-iteration-count: $name;
  -moz-animation-iteration-count: $name;
  -ms-animation-iteration-count: $name;
  animation-iteration-count: $name;
}
 
@mixin animation-direction($name) {
  -webkit-animation-direction: $name;
  -moz-animation-direction: $name;
  -ms-animation-direction: $name;
  animation-direction: $name;
}
 
@mixin animation-delay($name) {
  -webkit-animation-delay: $name;
  -moz-animation-delay: $name;
  -ms-animation-delay: $name;
  animation-delay: $name;
}
 
@mixin animation-play-state($name) {
  -webkit-animation-play-state: $name;
  -moz-animation-play-state: $name;
  -ms-animation-play-state: $name;
  animation-play-state: $name;
}
 
@mixin animation-fill-mode($name) {
  -webkit-animation-fill-mode: $name;
  -moz-animation-fill-mode: $name;
  -ms-animation-fill-mode: $name;
  animation-fill-mode: $name;
}
 
@mixin keyframes($name) {
  @-webkit-keyframes $name { @content; }
  @-moz-keyframes $name { @content; }
  @-ms-keyframes $name { @content; }
  @keyframes $name { @content; }
}
  
@include keyframes (walk) {
  from {
    left:0%;
  }
  to {
    left:100%;
    margin-left: -436px;
  }
}


.walking {
    @include animation-direction(alternate);
    @include animation-fill-mode(forwards);
    @include animation-name(walk);
    @include animation-duration(3s);
    @include animation-timing-function (linear);
    @include animation-iteration-count (infinite);
}
    
<div class="scene">
    <div class="mushroom walking">
        <div class="head">
            <div class="ball"></div>
        </div>
        <div class="face">
            <div class="eyes">
                <div class="left"></div>
                <div class="right"></div>
            </div>
        </div>
    </div>
    <div class="floor">
        <div class="tube">
            <div class="top-tube"></div>
        </div>
    </div>
</div>

Mushroom animation

Mushroom and scene like Mario w/ css and html, WITHOUT any images!

;)

A Pen by Klayton Faria on CodePen.

License.