Install
Nothing to configure. The tag registers itself.
All 30 elements
Every tile below is live WebGL, not a video. Click one to open the playground.
Playground
plasma-orb
Why it is built this way
Three decisions you would otherwise hit later.
One GL context, thirty elements
Browsers cap live WebGL contexts at around 16. A page of components blows past that and starts killing the oldest ones. aura renders every instance through a single shared context and blits, so the page above works with all 30 running at once.
Off-screen means off
Each element watches itself with an IntersectionObserver. Scroll it out of view and it stops costing you a frame. Device pixel ratio is capped at 2, because nobody can see the fourth sample on an orb.
Respects the system
prefers-reduced-motion freezes every effect on a composed still frame instead of disabling it. Text effects stay real text: selectable, searchable, readable by a screen reader. No WebGL2 gets a CSS gradient, not an empty box.