# HTML custom elements and reinventing Processing.js
- `<graphics-element>`
- BaseAPI + GraphicsAPI
- `<fallback-image>
- generate snapshot of first frame
- canvas in Node!
- image filename hashed based on file-content
- store in images/chapter/... or images/news/...
- lazy loading for if there is no JS
- if JS, IntersectionObserver on the graphics element
- Styling: `:defined` to the rescue
- Why not `extends HTMLCanvasElement`?
- node + browser