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. You can use the CSS from another Pen by using it's URL and the proper URL extention.

+ 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.

Details

Privacy

Go PRO Window blinds lowered to protect code. Code Editor with window blinds (raised) and a light blub turned on.

Keep it secret; keep it safe.

Private Pens are hidden everywhere on CodePen, except to you. You can still share them and other people can see them, they just can't find them through searching or browsing.

Upgrade to PRO

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.

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.

Template

Make Template?

Templates are Pens that can be used to start other Pens quickly from the create menu. The new Pen will copy all the code and settings from the template and make a new Pen (that is not a fork). You can view all of your templates, or learn more in the documentation.

Template URL

Any Pen can act as a template (even if you don't flip the toggle above) with a special URL you can use yourself or share with others. Here's this Pen's template URL:

Screenshot

Screenshot or Custom Thumbnail

Screenshots of Pens are shown in mobile browsers, RSS feeds, to users who chose images instead of iframes, and in social media sharing.

This Pen is using the default Screenshot, generated by CodePen. Upgrade to PRO to upload your own thumbnail that will be displayed on previews of this pen throughout the site and when sharing to social media.

Upgrade to PRO

HTML

              
                <canvas id="canv" />

<!-- Data URI used for crossdomain reasons -->
<image id="img" src="data:image/jpeg;base64,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
              
            
!

CSS

              
                @import "compass/css3";

@import "compass/css3/transform";
  
$size: 100px;

@mixin animation($value) {
	-webkit-animation: unquote($value);
	   -moz-animation: unquote($value);
	     -o-animation: unquote($value);
	        animation: unquote($value);
}
 
@mixin animation-property($property, $value) {
	-webkit-animation-#{$property}: unquote($value);
	   -moz-animation-#{$property}: unquote($value);
	     -o-animation-#{$property}: unquote($value);
	        animation-#{$property}: unquote($value);
}
 
@mixin keyframes($name) {
	@-webkit-keyframes #{$name} { @content; }
	   @-moz-keyframes #{$name} { @content; }
	     @-o-keyframes #{$name} { @content; }
	        @keyframes #{$name} { @content; }
}


html, body {
  height: 100%;
  overflow: hidden;
}
body {
  @include background-image(
    radial-gradient(
      center center, 
      #bada55, 
      mix(#bada55, black, 0.5) $size
    )
  );
  background-size: $size $size;
  background-repeat: repeat;
}

@include keyframes(move) {
	from {
		@include translate(0, 0);
	}
	to {
		@include translate(200px, 200px);
	}
}

canvas {
  @include animation(move 1s ease-in-out alternate infinite);
}

              
            
!

JS

              
                $ ->
  
  getPixel = (imageData, x, y) ->
    # get the correct starting index in the imageData-array
    # pixels are organized row-wise with 4 bytes per pixel
    index = 4 * (x + y * imageData.width)
    rgba = (imageData.data[i] for i in [index..index+3])
    rgba # return
    
  setPixel = (imageData, x, y, rgba) ->
    index = 4 * (x + y * imageData.width)
    imageData.data[index..index+3] = rgba
    null
    
  makeAHole = (imageData, top, left, width, height, alpha=0) ->
    # loop through the selected area
    for x in [left..left+width-1]
      for y in [top..top+height-1]
        # get the pixel
        rgba = getPixel imageData, x, y
        # update its alpha value
        rgba[3] = alpha
        # put the pixel back
        setPixel imageData, x, y, rgba
    null

  #return
    
  # find canvas
  canvas = $("#canv")[0]
  # find image
  img = $("#img")[0]
  # read the width and height of the image
  width = img.width
  height = img.height
  # and resize the canvas
  canvas.width = width
  canvas.height = height
    
  # get the drawing context
  context = canvas.getContext "2d"
  # draw the image onto the canvas
  context.drawImage img, 0, 0
  # get the pixel data
  imageData = context.getImageData 0, 0, width, height
  # manipulate it
  makeAHole imageData, 30, 30, width-60, height-60, 128
  # draw back onto the canvas
  context.putImageData imageData, 0, 0    
    
              
            
!
999px
Keep friends close and formatters closer.

Console