cssAudio - Activefile-genericCSS - ActiveGeneric - ActiveHTML - ActiveImage - ActiveJS - ActiveSVG - ActiveText - Activefile-genericVideo - Activehtmlicon-personicon-teamoctocatpop-outspinnerstartv

Pen Settings

CSS Base

Vendor Prefixing

Add External CSS

These stylesheets will be added in this order and before the code you write in the CSS editor. You can also add another Pen here, and it will pull the CSS from it. Try typing "font" or "ribbon" below.

Quick-add: + add another resource

Add External JavaScript

These scripts will run in this order and before the code in the JavaScript editor. You can also link to another Pen here, and it will run the JavaScript from it. Also try typing the name of any popular library.

Quick-add: + add another resource

Code Indentation

     

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.

            
              <link href='https://fonts.googleapis.com/css?family=Cabin+Sketch:700|Short+Stack' rel='stylesheet' type='text/css'>

<h1>
  <svg width="500px" height="500px" viewBox="0 0 500 500" version="1.1" xmlns="http://www.w3.org/2000/svg">
    <defs>
      <path d="M1,402 C0.99999128,177 148,1 401,1" id="tPath"></path>
    </defs>
    <g id="page-title" stroke="none" stroke-width="1" fill="none" transform="translate(50, 50)">
      <text id="My-Summer-Vacation" font-family="Cabin Sketch" font-size="64" font-weight="700" fill="#000000">
        <textPath xlink:href = "#tPath">My Summer Vacation</textPath>
      </text>
    </g>
  </svg>
</h1>
  <aside class="smurfabunch"></aside>
  <aside class="ribbon"></aside>
  <p>This summer I went to Camp Smurfabunch. I was there for 2 weeks and had mega fun times. I was the fastest kayaker in the whole camp and won a first place ribbon. I learned to tie knots, dive off a pier, and lick toads.</p>
  
  <aside class="picture"></aside>
  <p>I met new friends Ketchel, Caleb, and Sarah. I hope they come visit me later this summer but even if they can't &mdash; I'll see them next summer.</p>

<hr class="camp">

  <p>Later that summer I got to go to Wisconsin Dells with my family. We stayed at The Wilderness which has both inside and outside water parks. My mom was scared to go down the four-person funnel ride, but she did anyway and ended up liking it.</p>

  <aside class="zeus"></aside>
  <p>We went go karting at Mt. Zeus (or something, I can't remember the name but there was an old god dude holding a lightning bolt as the logo). I beat my brother and dad on the first 2 laps but dad pulled ahead and beat me on the last lap.</p>

<hr class="slide">

  <aside class="trapper"></aside>
  <p>The last thing I did this summer was go shopping for school clothes and supplies. I got a Trapper Keeper with KISS on it. And like fifty erasers because I make mistakes a lot lololol.</p>

<hr class="bus">

  <p>I don't want to go back to school but I know once I get used to it, it will be fine again. I'd rather just go down waterslides all day.</p>


<h2>
  <svg width="500px" height="300px" viewBox="0 0 500 300" version="1.1" xmlns="http://www.w3.org/2000/svg">
    <defs>
      <path d="M-1,400 C199.5,400.000031 400,219 400,-1" id="tPath2"></path>
    </defs>
    <g id="page-title" stroke="none" stroke-width="1" fill="none" transform="translate(150, -120)">
      <text id="My-Summer-Vacation" font-family="Cabin Sketch" font-size="64" font-weight="700" fill="#000000">
        <textPath xlink:href = "#tPath2">by Chris Coyier</textPath>
      </text>
    </g>
  </svg>
</h2>
            
          
!
            
              @-webkit-keyframes sunshine {
  from { background-position: 0 0; }
  to { background-position: 0 -900px; }
}
@-moz-keyframes sunshine {
  from { background-position: 0 0; }
  to { background-position: 0 -900px; }
}
@-o-keyframes sunshine {
  from { background-position: 0 0; }
  to { background-position: 0 -900px; }
}
@keyframes sunshine {
  from { background-position: 0 0; }
  to { background-position: 0 -900px; }
}

@-webkit-keyframes flag {
  from { background-position: 0 0; }
  to { background-position: 0 -325px; }
}

@-webkit-keyframes ribbon-wave {
  0% { background-position: 0 0; }
  30% { background-position: -125px 0; }
}
@-moz-keyframes ribbon-wave {
  0% { background-position: 0 0; }
  30% { background-position: -125px 0; }
}
@-o-keyframes ribbon-wave {
  0% { background-position: 0 0; }
  30% { background-position: -125px 0; }
}
@keyframes ribbon-wave {
  0% { background-position: 0 0; }
  30% { background-position: -125px 0; }
}

@-webkit-keyframes girl-wave {
  from { background-position: 0 0; }
  to { background-position: -450px 0; }
}
@-moz-keyframes girl-wave {
  from { background-position: 0 0; }
  to { background-position: -450px 0; }
}
@-o-keyframes girl-wave {
  from { background-position: 0 0; }
  to { background-position: -450px 0; }
}
@keyframes girl-wave {
  from { background-position: 0 0; }
  to { background-position: -450px 0; }
}

@-webkit-keyframes wave1-wave {
  from { background-position: 0 0; }
  to { background-position: -339px 0px }
}
@-moz-keyframes wave1-wave {
  from { background-position: 0 0; }
  to { background-position: -339px 0px }
}
@-o-keyframes wave1-wave {
  from { background-position: 0 0; }
  to { background-position: -339px 0px }
}
@keyframes wave1-wave {
  from { background-position: 0 0; }
  to { background-position: -339px 0px }
}

@-webkit-keyframes kayak-paddle {
  0% { background-position: 0 0; }
  20% { background-position: 0 -100px; }
  40% { background-position: 0 -200px; }
  60% { background-position: 0 -300px; }
  80% { background-position: 0 -400px; }
  100% { background-position: 0 -500px; }
}
@-moz-keyframes kayak-paddle {
  0% { background-position: 0 0; }
  20% { background-position: 0 -100px; }
  40% { background-position: 0 -200px; }
  60% { background-position: 0 -300px; }
  80% { background-position: 0 -400px; }
  100% { background-position: 0 -500px; }
}
@-o-keyframes kayak-paddle {
  0% { background-position: 0 0; }
  20% { background-position: 0 -100px; }
  40% { background-position: 0 -200px; }
  60% { background-position: 0 -300px; }
  80% { background-position: 0 -400px; }
  100% { background-position: 0 -500px; }
}
@keyframes kayak-paddle {
  0% { background-position: 0 0; }
  20% { background-position: 0 -100px; }
  40% { background-position: 0 -200px; }
  60% { background-position: 0 -300px; }
  80% { background-position: 0 -400px; }
  100% { background-position: 0 -500px; }
}

@-webkit-keyframes kayak-move {
  from { left: 0px; }
  to { left: 303px; }
}
@-moz-keyframes kayak-move {
  from { left: 0px; }
  to { left: 303px; }
}
@-o-keyframes kayak-move {
  from { left: 0px; }
  to { left: 303px; }
}
@keyframes kayak-move {
  from { left: 0px; }
  to { left: 303px; }
}

@-webkit-keyframes bus-erase {
  from { background-position: 0 0 }
  to { background-position: 0 -2000px; }
}

@-webkit-keyframes eraser-erase {
  0% { top: 85px; left: 0; }
  3% { top: 65px; left: 10px; }
  6% { top: 85px; left: 10px; }
  10% { top: 65px; left: 40px; }
  13% { top: 85px; left: 50px; }
  16% { top: 65px; left: 65px; }
  20% { top: 85px; left: 80px; }
  23% { top: 65px; left: 90px; }
  26% { top: 85px; left: 110px; }
  28% { top: 65px; left: 130px; }
  30% { top: 85px; left: 170px; }
  33% { top: 0px; left: 200px; }
  40% { top: 85px; left: 200px; }
  50% { top: -10px; left: 300px; }
  60% { top: 85px; left: 300px; }
  70% { top: -10px; left: 400px; }
  80% { top: 85px; left: 400px; }
  90% { top: 0px; left: 500px; }
  100% { top: 85px; left: 500px; }
}

@-webkit-keyframes zeus-bolt {
  0%, 50% { background-position: 0 0 }
  25%, 75%, 100% { background-position: 0 -141px; }
}
@-moz-keyframes zeus-bolt {
  0%, 50% { background-position: 0 0 }
  25%, 75%, 100% { background-position: 0 -141px; }
}
@-o-keyframes zeus-bolt {
  0%, 50% { background-position: 0 0 }
  25%, 75%, 100% { background-position: 0 -141px; }
}
@keyframes zeus-bolt {
  0%, 50% { background-position: 0 0 }
  25%, 75%, 100% { background-position: 0 -141px; }
}

@-webkit-keyframes trapper-sparkle {
  0% { top: 0px; left: -20px; -webkit-transform: rotate(0deg); }
  50% { top: -30px; left: 30px; }
  80% { top: 30px; left: 80px; -webkit-transform: rotate(360deg); }
  100% { top: 30px; left: 80px; -webkit-transform: rotate(720deg); }
}

body {
  font-family: "Short Stack";
  padding: 0.25rem;
  max-width: 500px;
  margin: 0 auto;
}

h1 {
  font-family: 'Cabin Sketch';
  font-weight: 700;
  font-size: 4em;
  margin-left: -150px;
  margin-bottom: -350px;
}
h1:before {
  display: block;
  position: relative;
  content: " ";
  width: 286px;
  height: 300px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/sun2.png) no-repeat 0 0;
  margin-bottom: -310px;
  margin-left: -60px;
  -webkit-animation: sunshine .9s steps(3, end) 6 alternate;
}
h2 {
  font-family: 'Cabin Sketch';
  font-weight: 700;
  font-size: 4em;
  margin-left: 150px;
  margin-right: -150px;
  margin-top: -175px;
}
h2 svg {

}

hr {
  position: relative;
  width: 100%;
  clear: both;
  margin: 3em 0;
  border: none;
}
article {
  /*border: 1px red solid;
  overflow: auto;*/
}

p {
  margin: 1.5em 0;
}
aside {
  margin: .5em;
}

p:nth-of-type(odd):first-letter {
  float: left;
  line-height: .33em;
  padding-top: .25em;
  padding-right: .0625em;
  font-family: 'Cabin Sketch';
  font-weight: 700;
  font-size: 3em;
  -webkit-transform: rotate(-5deg);
  -moz-transform: rotate(-5deg);
  -ms-transform: rotate(-5deg);
  -o-transform: rotate(-5deg);
  transform: rotate(-5deg);
}
p:nth-of-type(3n+3):first-letter {
  -webkit-transform: rotate(8deg);
  -moz-transform: rotate(8deg);
  -ms-transform: rotate(8eg);
  -o-transform: rotate(8deg);
  transform: rotate(8deg);
}

.smurfabunch {
  display: block;
  position: relative;
  content: " ";
  width: 400px;
  height: 245px;
  top: -150px;
  margin-left: 100px;
  margin-bottom: -140px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/tents2.png) no-repeat 0 0;
}
.smurfabunch:after {
  display: block;
  position: relative;
  content: " ";
  width: 90px;
  height: 65px;
  left: 245px;
  margin-left: 100px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/flag.png) no-repeat 0 0;
  -webkit-animation: flag .4s .5s steps(5, end) 7 alternate;
}
.ribbon {
  position: relative;
  width: 125px;
  height: 216px;
  float: right;
  margin-right: -25px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/ribbon-sprite.png) no-repeat 0 0;
  -webkit-animation: ribbon-wave .3s 10s steps(1, end) 4 alternate;
  -moz-animation: ribbon-wave .3s 10s steps(1, end) 4 alternate;
  -o-animation: ribbon-wave .3s 10s steps(1, end) 4 alternate;
  animation: ribbon-wave .3s 10s steps(1, end) 4 alternate;
}
.picture {
  position: relative;
  width: 150px;
  height: 130px;
  float: left;
  margin-left: -25px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/photograph.png) no-repeat 0 0;
  -webkit-animation: girl-wave .6s 14s steps(3, end) 3;
  -moz-animation: girl-wave .6s 14s steps(3, end) 3;
  -o-animation: girl-wave .6s 14s steps(3, end) 3;
  animation: girl-wave .6s 14s steps(3, end) 3;
}

.camp {
  height: 50px;
  margin-top: 70px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/waves2.png) no-repeat 0 0px;
  -webkit-animation: wave1-wave 12s 3s 1;
     -moz-animation: wave1-wave 12s 3s 1;
       -o-animation: wave1-wave 12s 3s 1;
          animation: wave1-wave 12s 3s 1;
}
.camp:before {
  display: block;
  position: relative;
  content: " ";
  top: -40px;
  left: -0;
  width: 202px;
  height: 100px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/kayak3.png) no-repeat 0 0;
  -webkit-animation: kayak-paddle 1s 3s steps(1) 10,
                    kayak-move 12s 3s 1 both;
     -moz-animation: kayak-paddle 3s 1s steps(1) 10,
                    kayak-move 12s 3s 1 both;
       -o-animation: kayak-paddle 3s 1s steps(1) 10,
                    kayak-move 12s 3s 1 both;
          animation: kayak-paddle 3s 1s steps(1) 10,
                    kayak-move 12s 3s 1 both;
}
.zeus {
  position: relative;
  width: 200px;
  height: 141px;
  float: left;
  margin-left: -75px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/zeus2.png) no-repeat 0 0;
  -webkit-animation: zeus-bolt .3s 22s steps(1, end) 5 both;
}
.bus {
  height: 100px;
  width: 500px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/bus.png) no-repeat 0 0px;
  -webkit-animation: bus-erase 3s 28s steps(20, end) 1 both;
}
.bus:after {
  display: block;
  position: relative;
  content: " ";
  width: 50px;
  height: 23px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/eraser.png) no-repeat 0 0;
  -webkit-animation: eraser-erase 3s 28s 1 both;
}

.trapper {
  position: relative;
  width: 150px;
  height: 150px;
  float: right;
  margin-right: -30px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/kisstrapper.png) no-repeat 0 0;
}
.trapper:after {
  position: relative;
  display: block;
  content: " ";
  /*border: 1px red solid;*/
  width: 60px;
  height: 70px;
  top: 0px;
  left: -20px;
  background: url(http://patriciakruep.com/InteractiveLab/doodles/star.png) no-repeat 0 0;
  -webkit-animation: trapper-sparkle 3s 30s 1 both;
}
            
          
!
999px
Close

Asset uploading is a PRO feature.

As a PRO member, you can drag-and-drop upload files here to use as resources. Images, Libraries, JSON data... anything you want. You can even edit them anytime, like any other code on CodePen.

Go PRO

Loading ..................

Console