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

              
                <aside>
  <button id="change">change background-color</button>
</aside>

<h3>Clicking the button above will change the background-color of this box.</h3>
<main>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec arcu mi, luctus id vehicula vitae, blandit in velit. Donec malesuada non mi id posuere. Ut tincidunt enim id nisl condimentum fermentum. Cras id libero eu dolor dapibus suscipit. Duis porta fermentum sagittis. Sed a arcu viverra, laoreet lorem a, euismod sem. Ut lacinia facilisis dolor sed vestibulum. Nunc sodales massa vitae nulla vestibulum, sit amet posuere lacus imperdiet.</p>
  <p>Aliquam scelerisque tortor vel elementum malesuada. Etiam tellus nulla, bibendum dapibus pharetra eget, aliquet ac purus. Duis fringilla arcu massa, ac tempor nisi egestas et. Mauris fringilla, risus at feugiat rutrum, nibh nisl auctor turpis, a iaculis metus felis eu metus. Vestibulum sed congue purus, ac scelerisque augue. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam accumsan porta lacus eu tristique.</p>
  <p>Cras tempor condimentum ligula non rhoncus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas id dignissim mauris. Etiam placerat cursus elementum. Praesent malesuada mi quis libero rutrum efficitur. Cras efficitur vitae lorem ut pharetra. Aenean pulvinar libero magna, vel finibus nisl pellentesque in. Nullam semper mi nec enim maximus, sed laoreet enim sollicitudin. Nullam sit amet odio auctor, ornare turpis et, pellentesque arcu. Donec hendrerit ornare porta. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse blandit nibh nec nibh convallis ultricies. Donec mauris mi, imperdiet quis ultricies eu, feugiat eu massa. Curabitur vulputate dolor vel urna bibendum lobortis. Praesent et lorem lectus.</p>
  <p>Aenean condimentum felis purus, sit amet varius tortor tempor nec. Proin sit amet bibendum dolor, ut tempor nisi. Nam a fringilla leo, et feugiat justo. Aenean posuere quam non erat efficitur ultrices. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec sed turpis eget risus interdum vehicula et sed magna. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae nulla consequat, euismod magna eu, auctor enim. Integer pretium orci a metus volutpat, sed pretium massa facilisis. Vestibulum id lacus vitae justo efficitur rhoncus eu eu arcu.</p>
  <p>Nam mattis tincidunt massa at porttitor. Donec ac aliquam ligula. In ullamcorper leo vitae neque tempor, vel eleifend justo commodo. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed ornare diam justo, ut venenatis arcu pharetra vitae. Nulla id sodales dui, vitae interdum magna. Vivamus gravida est massa, in convallis nulla rutrum eu. In eget lectus sed ipsum bibendum vestibulum cursus sit amet erat. Aenean mi justo, luctus at est et, varius vulputate ante. Cras ac diam erat. Morbi nec urna sem. Curabitur facilisis vehicula faucibus. Mauris nec lectus eget dui mollis fringilla in elementum massa. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut efficitur, risus ut sagittis vestibulum, dui nibh pulvinar neque, eu vehicula tellus ex lobortis mauris. Sed consectetur luctus massa quis sollicitudin.</p>
</main>

<h3>If the background-color is transparent then the containment isn't applied. Once a background-color is present then containment is applied.</h3>
              
            
!

CSS

              
                @import url('https://fonts.googleapis.com/css?family=Open+Sans&display=swap');

html {
  font-family: 'Open Sans', sans-serif;
  height: 100%;
  overflow: hidden;
}
body {
  align-items: center;
  background-color: #1d1e22;
  color: white;
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: center;
  margin: 0;
  padding: 0;
}
aside {
  left: 0;
  margin: 20px;
  position: fixed;
  top: 50px;
}

main {
  background-color: transparent;
  border: 3px solid rebeccapurple;
  contain: content;
  height: 50vh;
  overflow: auto;
  width: 50vw;
}
main.change {
  background-color: #1d1e22;
}
main p {
  margin: 20px;
}
              
            
!

JS

              
                const changeBtn = document.querySelector('#change');
const main = document.querySelector('main');

change.addEventListener('click', function () {
  main.classList.toggle('change');
});
              
            
!
999px

Console