Pen Settings

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. If you link to another Pen, it will include the CSS from that Pen. If the preprocessor matches, it will attempt to combine them before processing.

+ add another resource

You're using npm packages, so we've auto-selected Babel for you here, which we require to process imports and make it all work. If you need to use a different JavaScript preprocessor, remove the packages in the npm tab.

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

Use npm Packages

We can make npm packages available for you to use in your JavaScript. We use webpack to prepare them and make them available to import. We'll also process your JavaScript with Babel.

⚠️ This feature can only be used by logged in users.

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.

HTML Settings

Here you can Sed posuere consectetur est at lobortis. Donec ullamcorper nulla non metus auctor fringilla. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec id elit non mi porta gravida at eget metus. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

            
              <canvas></canvas>
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAABhCAYAAABszJxzAAAACXBIWXMAAAsTAAALEwEAmpwYAAA7X2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMjEgNzkuMTU1NzcyLCAyMDE0LzAxLzEzLTE5OjQ0OjAwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTYtMDctMTVUMTQ6Mzg6MjQrMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0wNy0xNlQxMDoyODoxOSswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDctMTZUMTA6Mjg6MTkrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6Yzk0YzMxY2UtNWIyZS00MGJlLWE0M2EtMzhmNjgyOGY3NmYyPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjEyN0Q2RkZBNDI3QjExRTY5OUYyQTUwOERGRTE0NkJDPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjEyN0Q2RkY3NDI3QjExRTY5OUYyQTUwOERGRTE0NkJDPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjEyN0Q2RkY4NDI3QjExRTY5OUYyQTUwOERGRTE0NkJDPC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICA8L3htcE1NOkRlcml2ZWRGcm9tPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MTI3RDZGRkE0MjdCMTFFNjk5RjJBNTA4REZFMTQ2QkM8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjU0NGZmNDE0LTg0YzktNDhkMS1hN2NhLWFhZjY5ZjgzNmJkMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wNy0xNVQxNDo0MjoxMSswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmM5NGMzMWNlLTViMmUtNDBiZS1hNDNhLTM4ZjY4MjhmNzZmMjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wNy0xNlQxMDoyODoxOSswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjMwMDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj45NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+zMfhPQAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6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" alt="" class="logo" />
            
          
!
            
              body { background: #000; }
img{
  position: fixed;
  left: 50%;
  top: 50%;
    margin-left: -150px;
    margin-top: -50px;
    opacity: 0;
  //transform: translate(-50%,-50%);
}
            
          
!
            
              //Forked by https://codepen.io/gnauhca/pen/vKpZBL
function Particle(x, y, color) {
    this.finished = false;
    this.color = color;
    this.des = { x: x, y: y };
    this.init = { x: 0, y: 0 };
    this.offset = { x: 0, y: 0 };
    this.current = { x: 0, y: 0 };
    this.prev = { x: 0, y: 0 };

    this.started = false;
    this.percent = 0;
    this.timePass = 0;
    this.dur = 2000 + Math.random() * 4000;

    this.easing = function(t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
    };
}

Particle.prototype = {
    update: function(delta) {
        if (!this.started && !this.finished) return;
        this.timePass += delta;

        this.percent = this.easing(this.timePass, 0, 1, this.dur);
        this.prev = this.current;
        this.current = {
            x: this.init.x + this.offset.x * this.percent,
            y: this.init.y + this.offset.y * this.percent
        };
        
        if (this.percent >= 1) {
            this.percent = 1;
            this.finished = true;
            this.current.x = this.des.x;
            this.current.y = this.des.y;
        }
    },
    getCrood: function() {
        return this.current;
    },
    start: function(startX, startY) {
        var width = window.innerWidth * 5;
        var height = window.innerHeight * 5;
        var angle = Math.PI * 2 * Math.random();
        var radius = Math.sqrt(width*width + height*height)/2;
        
        startX = startX || (Math.cos(angle) * radius) + window.innerWidth/2;
        startY = startY || (Math.sin(angle) * radius) + window.innerHeight/2;
        
        this.started = true;
        this.timePass = 0;
        this.finished = false;
        this.init = {x: startX, y: startY};
        // this.init = { x: this.des.x, y: this.des.y + 400 };
        // this.init = {x: startX, y: startY};
        this.current = this.prev = this.init;
        this.offset = { x: this.des.x - this.init.x, y: this.des.y - this.init.y }
    },
    reset: function(x, y) {
        this.timePass = 0;
        // this.started = false;
        this.finished = false;
        this.percent = 0;
        this.timePass = 0;
        this.dur = 4000 + Math.random() * 6000;
        //this.des = {x: x, y: y}
        this.current = this.prev = this.init;
        this.offset = { x: this.des.x - this.init.x, y: this.des.y - this.init.y }
    }
}


function Ani() {
    this.particles = [];
    this.wrap = document.querySelector('body');
    this.cvs;
    this.ctx;
    this.offlineCtx;
    this.offlineCvs;
    this.background = '#000000';
    this.img;
    this.imgPos;

    this.mouse = { x: 0, y: 0 };
    this.screen = { width: window.innerWidth, height: window.innerHeight };
    this.T;
    this.init();
}

Ani.prototype = {
    init: function() {
        var that = this;
        var img = new Image();
        this.img = document.querySelector('.logo');

        img.src = document.querySelector('.logo').src;
        img.onload = function() {
            that.create();
            that.wrap.addEventListener('mousemove', that.mouseHandle());
            that.tick();
        }
        window.addEventListener('resize', this.resize())
    },

    mouseHandle: function() {
        var that = this;

        function mouseHandle(e) {
            that.mouse.x = e.offsetX;
            that.mouse.y = e.offsetY;
        }
        that.mouseHandle = mouseHandle;
        return mouseHandle;
    },

    resize: function() {
        var that = this;

        function resize() {
            that.screen = { width: window.innerWidth, height: window.innerHeight };
            that.cvs.width = that.screen.width;
            that.cvs.height = that.screen.height;
            that.offlineCvs.width = that.screen.width;
            that.offlineCvs.height = that.screen.height;

            var lastImgPos = that.imgPos;
            that.imgPos = that.img.getBoundingClientRect();
            that.imgPos = { top: that.img.offsetTop, left: that.img.getBoundingClientRect().left };

            var imgPosOffset = {
                left: that.imgPos.left - lastImgPos.left,
                top: that.imgPos.top - lastImgPos.top
            };

            that.particles.forEach(function(particle) {
                particle.des.x += imgPosOffset.left;
                particle.des.y += imgPosOffset.top;
            });
        }
        this.resize = resize;
        return resize;
    },

    create: function() {
        var imgPos = { top: this.img.offsetTop, left: this.img.getBoundingClientRect().left };

        this.imgPos = imgPos;

        // this.cvs = document.createElement('canvas');
        //this.wrap.app//endChild(this.cvs);
        this.cvs = this.wrap.querySelector('canvas');
        this.offlineCvs = document.createElement('canvas');
        this.resize();
        this.ctx = this.cvs.getContext('2d');
        this.offlineCtx = this.offlineCvs.getContext('2d');


        // 从canvas 读取颜色信息,创建粒子
        var imgData = [];
        var imgCvs = document.createElement('canvas');
        imgCvs.width = this.img.width;
        imgCvs.height = this.img.height;
        var imgCtx = imgCvs.getContext('2d');
        imgCtx.drawImage(this.img, 0, 0);
        var pixs = imgCtx.getImageData(0, 0, this.img.width, this.img.height).data;

        for (var i = 0; i < pixs.length; i += 4) {
            var r = pixs[i],
                g = pixs[i + 1],
                b = pixs[i + 2],
                a = pixs[i + 3];

            if (a > 0) {
                var x = (i % (4 * this.img.width)) / 4;
                var y = parseInt(i / (4 * this.img.width));

                this.particles.push(new Particle(imgPos.left + x, imgPos.top + y, 'rgba(' + r + ', ' + g + ', ' + b + ', ' + a + ')'));
                // this.particles.push(new Particle(imgPos.left + x, imgPos.top + y, `rgba(${255*Math.random() | 0}, ${255*Math.random() | 0}, ${255*Math.random() | 0})`));
            }
        }
    },

    tick: function() {
        var that = this;

        var start = 3;
        var startCount = 0;

        var now = (new Date()).getTime();
        var last = now;
        var delta;
        var reset = false;

        function _tick() {
            now = (new Date()).getTime();
            delta = now - last;
            delta = delta > 50 ? 16 : delta;
            that.cvs.innerHTML = delta;
            last = now;
            startCount = 0;

            if (!that.particles.length) { that.finish();
                return; }
            that.particles.forEach(function(particle) {
                if (!particle.started && startCount < start && Math.random() > 0.5) {
                    startCount++;
                    particle.start(/* that.mouse.x, that.mouse.y */); // no mouse ...
                } else {
                    particle.update(delta);
                }
            });

            that.draw();
            if (!reset && that.particles.every(function(particle) {
                    return particle.finished })) { 
                //that.finish();
                var tmp;
                
                reset = true;
                setTimeout(function() {
                    reset = false;
                    that.particles.forEach(function(particle) {
                        tmp = particle.des;
                        particle.des = particle.init;
                        particle.init = tmp;
                        particle.reset();
                    });                    
                }, 1000);

                //return; 
            }
            window.requestAnimationFrame(_tick);
        }

        _tick();
    },

    draw: function() {
        var particle;
        var color = this.particles[3].color;
        var r = 1;

        //this.offlineCtx.globalAlpha = 0.5;
        this.offlineCtx.save();
        this.offlineCtx.globalCompositeOperation = 'destination-in';
        this.offlineCtx.globalAlpha = 0.8;
        this.offlineCtx.strokeStyle = this.offlineCtx.fillStyle = '#ffffff';
        this.offlineCtx.fillRect(0, 0, this.screen.width, this.screen.height);
        this.offlineCtx.restore();

        this.offlineCtx.save();
        // this.offlineCtx.globalCompositeOperation = 'lighter';
        this.offlineCtx.beginPath();
        // this.offlineCtx.strokeStyle = this.offlineCtx.fillStyle = '#00c3f5';
        this.offlineCtx.lineWidth = r;
        this.offlineCtx.lineCap = this.offlineCtx.lineJoin = 'round';
        for (var i = 0; i < this.particles.length; i++) {
            particle = this.particles[i];
            // r = 5 * (1.3-particle.percent);
            this.offlineCtx.beginPath();
            this.offlineCtx.lineWidth = r;
            this.offlineCtx.moveTo(particle.current.x, particle.current.y);
            this.offlineCtx.lineTo(particle.prev.x, particle.prev.y);
            this.offlineCtx.strokeStyle = particle.color;
        this.offlineCtx.stroke();
            // console.log(particle.color);
        }
        // this.offlineCtx.stroke();

        // this.offlineCtx.beginPath();
//         for (var i = 0; i < this.particles.length; i++) {
//             particle = this.particles[i];
//             if (particle.started) {
//                 var pCrood = particle.getCrood();
//                 r = 1;
//                 // r = 5 * (1.3-particle.percent);
//                 //console.log(~~pCrood.x, ~~pCrood.y);
//                 this.offlineCtx.beginPath();
//                 this.offlineCtx.fillStyle = particle.color;
//                 this.offlineCtx.fillRect(pCrood.x-r/2, pCrood.y-r/2, r, r);
                
//                 //this.offlineCtx.moveTo(pCrood.x, pCrood.y);
//                 //this.offlineCtx.arc(pCrood.x, pCrood.y, r, 0, Math.PI * 2, false);
//             }
//         }
        //this.offlineCtx.fill();
        this.offlineCtx.restore();

        this.ctx.fillStyle = this.background;
        this.ctx.fillRect(0, 0, this.screen.width, this.screen.height);

        this.ctx.drawImage(this.offlineCvs, 0, 0);
    },

    finish: function() {
        this.wrap.removeEventListener('mousemove', this.mouseHandle);
        window.removeEventListener('resize', this.resize);
        window.cancelAnimationFrame(this.T);
    }

}


new Ani
            
          
!
999px
🕑 One or more of the npm packages you are using needs to be built. You're the first person to ever need it! We're building it right now and your preview will start updating again when it's ready.

Console