From Stephanie Eckles @5t3ph - author of ModernCSS.dev and 11ty.Rocks.
This worklet was produced using Eleventy as the server environment.
The very simple worklet that is included in this generator can be viewed in this CodePen demo.
The demo shows how to include the required polyfill and then require the worklet within a script tag, and how to modify it's display attributes via CSS custom properties.
CSS Houdini worklets require a server to run. While there are many ways to create an envirnoment for developing and testing your worklet. As a static site generator, Eleventy provides a slim way to get setup and testing quickly so you can focus on creating your worklet!
Before you begin - be sure to update the package.json
details to your own!
The following are all within src
which is your working directory
_includes/base.njk
- a simple HTML5 template that includes the (currently required) polyfill for the CSS Houdini Paint API, as well as the CSS.paintWorklet.addModule
pointing to the worklet's location on the local server
css/style.css
- the local server styles, this is where you add your worklet to your test elements
index.md
- produces the index content, and can be swapped to another one of 11ty's supported templating languages
worklet.js
- the critical file that creates and registers your worklet class
npm start
- will run the project locally by launching Eleventy in watch mode and include a localhost server with hot reload provided by Browsersync.
The recommendation from Houdini.How is to publish your worklet as an npm package so that it can be imported and used by accessing it on a CDN such as unpkg.
This is because of the requirement of running via HTTPS, so unpkg makes it easy to share and include elsewhere such as CodePen.
To publish via npm, you will first need to set up an account.
Then within your local project, run npm publish
.
The included
prepublish
command will ensure Eleventy has been freshly run to ensure the latest version of your worklet is available.
Within a few minutes you will see your package added to your npm account, and then it will also be available at https://unpkg.com/your-package-name
Review the CodePen Demo to see how to then include it outside of your local project.
If you make changes to your worklet, use the included bump
command to easily increment your package number, ex: npm run bump patch
, then proceed to run npm publish
.
Your changes will be available within a few minutes.