The WICG HTML in Canvas proposal lets you draw real, live, styled HTML directly into a <canvas>. No screenshots, no html2canvas, no invisible DOM overlay that you have to keep in sync by hand. All of this is implemented behind a flag in Chromium and can be enabled at chrome://flags/#canvas-draw-element.
The moment I understood what that meant, I knew where I wanted to take it. I am building Desktop Mode, a WordPress plugin that turns /wp-admin into a desktop operating system with real windows, drag and drop, a dock and widgets. And a window is just a rectangle of HTML. What if that rectangle could also be a piece of cloth?
First attempt: a wall, and then a thread
A month ago I did a first exploration. I never published it, because it did not work. Desktop Mode uses Web Components, and nothing rendered.
My first reaction was the usual one: I must be doing something wrong. It took me a while to accept the other possibility, which is that the API itself was not ready. So I opened the repository, found the issue about Slots, Shadow DOM and Web Components, and I asked for help. It turned out that Google engineers were already working on it.
Yesterday I suddenly remembered the thread and went to check. The fix had landed in Chromium and had been deployed to Canary two or three days earlier.
Eight hours later, my windows were made of pixels.
What happens when a window becomes a canvas
Once drawElementImage renders a live admin window into a canvas, that window stops being a fixed box on a page and becomes material you can work with. The DOM keeps doing what it does well: layout, text, accessibility, form controls. The canvas takes that result and does whatever it wants with it.
Windows as cloth. A window can bend, wave and fold, because it is a texture now.
Disintegration. Closing a window can be the Thanos snap. The window breaks into thousands of particles that drift away and disappear.
Recomposition. The particles can come back. Reopen the window and it reassembles itself.
A different render pipeline. I swapped the whole output through a shader so the entire desktop looks like an old CRT television, with scanlines, curvature and that soft glow tube screens had.
The posts list is still the posts list. The buttons are still buttons. They just happen to be made of dust, or displayed on a cathode ray tube.
None of this is a new idea, by the way. Anyone who ran Linux around 2007 remembers Compiz on Kubuntu: the rotating desktop cube, the wobbly windows, the windows that burned away when you closed them. This post from 2007 captures the feeling perfectly, and it is honest about the point of it all, which is that desktop effects are not practical at all, they are simply fun. Nearly twenty years later I am doing the same thing, except the desktop is /wp-admin and the window manager is a browser.
Try it yourself: the experimental branch lives here: GitHub
You will need Chrome Canary with chrome://flags/#canvas-draw-element enabled. Go and break it. Fork it, make something stranger than what I made, and tell me about it.
Is this as big as CSS3?
I keep going back and forth on this one. CSS3 changed every website on the internet, and the reasonable objection is that HTML in Canvas will not. It is behind a flag, it is only in Chromium so far, and most sites will never need it.
But this technology has not even left the experimentation phase, and judging its ceiling by the first few months of demos is historically a terrible way to predict anything. There is also one difference that makes me lean the other way: CSS3 gave us more expressive power inside a model we already had. HTML in Canvas removes a wall between two models that have been separated for twenty years. It is a new primitive, and there are things you can do with it that have no CSS equivalent at all.
Eight hours
That number is the real story here.
Eight hours is not enough time to read an experimental specification, understand a shadow DOM bug at the compositor level, write a particle system, write a CRT shader, and wire all of it into a plugin with more than one hundred thousand lines of code. Not for one person, not five years ago.
What changed is that AI tools removed most of the distance between having an idea and being able to test it. They help you synthesise: to hold a scattered set of half formed intuitions, a specification you read once, an error message and a vague visual memory of how a CRT screen looked, and turn all of that into something you can run. The creativity is still yours. Nobody suggested to me that a WordPress window should disintegrate like Thanos snapped his fingers. What the tools give you is permission to follow the strange idea instead of abandoning it because it would cost you three weekends.
About Desktop Mode
Desktop Mode is a WordPress plugin with more than one hundred thousand lines of code. It uses the state of the art of what the web platform can do today, it is in continuous development, and it gets better every day thanks to the feedback of the people who use it.
Thanks to Automattic and to Matt for always pushing at the frontier of what is possible. Work like this only happens when someone keeps the door open to experiments that have no guaranteed answer.