WEBASSEMLBY IN HOUDINI CSS
IS IT POSSIBLE?
Oleksandr Skachkov @alSkachkov
ABOUT ME
• Itera’s FrontEnd Tech Lead
• WebKit contributor
• WebAssembly enthusiast
• Twitter: @alSkachkov
• Early days of CSS
• Houdini CSS
• WebAssembly
• Houdini CSS & WebAssembly together
Web is one of the most popular platform
What was before
WebAssembly in Houdini CSS, is it possible?
Browsers
with own stylesheet language
WebAssembly in Houdini CSS, is it possible?
CSS was born
Håkon Wium Lie
Bert Bos
WebAssembly in Houdini CSS, is it possible?
WebAssembly in Houdini CSS, is it possible?
WebAssembly in Houdini CSS, is it possible?
CSS with Pre-Processors
WebAssembly in Houdini CSS, is it possible?
CSS3
WebAssembly in Houdini CSS, is it possible?
WebAssembly in Houdini CSS, is it possible?
Can we evolve CSS farther?
YES WE CAN, BUT
CHALLENGES
• Too many CSS properties 373 (https://meiert.com/en/indices/css-properties/)
• Adding new features might take too long
CSS conic-gradient case
CSS CONIC-GRADIENT
CSS CONIC-GRADIENT
CSS CONIC-GRADIENT
CSS CONIC-GRADIENT
https://twitter.com/anatudor/status/611659012212441088
CSS CONIC-GRADIENT
How long it takes to land in browsers:
• Chrome – 2 years (delivered)
• WebKit/Safari – 3 years (delivered recently)
• Firefox – not started
• Microsoft Edge – not started
CHALLENGES
• Too many CSS properties 373 (https://meiert.com/en/indices/css-properties/)
• Adding new features might take too long:
• conic-gradient – 3 years
• grid layout – 5 years
• flex– 7 years
• It is impossible to extend CSS properties by self
Can solve this?
WebAssembly in Houdini CSS, is it possible?
The Extensibility Web Manifesto
The web platform should expose low-level
capabilities that … , such as HTML and CSS,
allowing authors to understand and replicate
them.
HOW IT IS DONE IN A WEB
• HTML – Shadow DOM and Web Components
• JS + Event Loop + WEB API – FrameWorks, Libraries and Modules
• CSS - ?
a new set of APIs that will give developers the power to extend CSS itself
Houdini CSS
https://drafts.css-houdini.org/
RENDERING PIPLINE
HOUDINI CSS
WORKLET
Worklet is a lightweight version of Web Workers
addPromise = worklet.addModule(moduleURL);
CSS.paintWorklet.addModule(“Worklet.js”)
CSS LAYOUT API WORKLET
CSS LAYOUT API WORKLET
DEMO
CSS PAINT API WORKLET
CSS PAINT API WORKLET
CSS PAINT API WORKLET
CSS PAINT API WORKLET
CSS PAINT API WORKLET
CSS PAINT API WORKLET
CSS PAINT CONTEXT
PaintRenderingContext2D limited subset of CanvasRenderingContext2D
• not implement :
• CanvasImageData
• CanvasText
• Implements draw operations:
• drawImage()
• fillRect()
CSS CUSTOM PROPERTY
CSS CUSTOM PROPERTY
CSS CUSTOM PROPERTY
CSS CUSTOM PROPERTY
• <color>
• <image>
• <url>
• <integer>
• …
DEMO
https://github.com/gskachkov/houdini-css-wasm
CAN WE USE HOUDINI CSS?
PROS
• Gives you the freedom to create your own visual effects
• Doesn’t rely on adding extra elements or pseudo-elements to the DOM
• Provide abstraction and modularization for visual logic within a paint worklet
• Allow developers to use new features before browsers implement them
CONS
• Still in development
• Browsers have to load a worklet before use it
Paint something complicated
FRACTALS
Can we render faster?
WebAssembly in Houdini CSS, is it possible?
if we use WebAssembly
WebAssembly in Houdini CSS, is it possible?
• Announced in 17 June 2015
• Supported by major Browsers
• Developed by WebAssembly Working
Group (W3C)
• Draft specific published 15 Feb 2018
WebAssembly – New Hope
What is WebAssembly (aka WASM)?
WebAssembly is build target
WebAssembly in Houdini CSS, is it possible?
safe, portable, low-level code format designed for efficient execution
and compact representation
https://webassembly.github.io/spec/intro
C - Source code
RUST - Source code
S - Expression
S - Expression
fast to load
Byte code
WebAssembly in Houdini CSS, is it possible?
Will WebAssembly replace JavaScript?
Will WebAssembly replace JavaScript?
Not now ☺
but WebAssembly will transform web
WASM WILL BRING TO WEB
•New languages
•Predictable high performance
WEBASSEMBLY RIGHT NOW
CAN WE USE WEBASSEMBLY?
Yes we can
BUILD TARGET FOR
• C/C++
• Rust
• C# - Mono and CoreRT
• Go
• BrainFuck
• Even more: https://github.com/appcypher/awesome-wasm-langs
WEBASSEMBLY & HUIDINI CSS
Can we use WebAssembly in Worklets?
YES WE CAN, BUT
CHALLENGES
• How to load WebAssembly module within Worklets?
• How to run it within Worklet?
WEBASSEBLY IN WORKLET
• encode WebAssembly to BASE64 and decode during Worklet load
• load webassembly and inline it to tag by:
const src = urlFromTag("script[language='javascript+layout’]”);
CSS.paintWorklet.addModule(src);
DEMO
https://github.com/gskachkov/houdini-css-wasm
PERFORMANCE WITH WEBASSEMLY
SUMMARY
SUMMARY
• WebAssembly provide good performance improvements
• Access to ‘Canvas’ from WebAssembly really fast
• Size of worklet with WebAssembly might be bigger to pure js
• ‘Canvas’ object in Worklet is very limited to usual canvas
• CSS Houdini API is very promising technology
• CSS Houdini API still in development
RESOURCES ABOUT WEBASSEMBLY
• Articles:
• https://hacks.mozilla.org/category/webassembly/
• https://pspdfkit.com/blog/
• Site: http://webassembly.org/
• Github: https://github.com/WebAssembly/
• Twitter: @WasmWeekly - WebAssemblyWeekly
RESOURCES ABOUT HOUDINY CSS
• Spec - https://drafts.css-houdini.org/css-paint-api-1
• Articles:
• Interactive Introduction to CSS Houdini, Sam Richard
• Houdini: Maybe The Most Exciting Development In CSS You’ve Never Heard Of, Philip
Walton
• What Houdini Means for Animating Transforms, Ana Tudor
• The CSS Paint API, Ruth John
RESOURCES ABOUT HOUDINY CSS
• Demos:
• Interactive Introduction to CSS Houdini, Sam Richard
• https://css-houdini.rocks
• https://googlechromelabs.github.io/houdini-samples/
THANKS!
QUESTIONS?

More Related Content

PDF
WebAssembly vs JavaScript: What is faster?
PDF
WebAssembly Overview
PPTX
WebAssembly overview. KievJS meetup
PPTX
WebAssembly WASM Introduction Presentation
PPTX
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
PPT
Bootstrapping angular js with bower grunt yeoman
PPTX
MEAN stack
PPTX
Introduction to mean stack
WebAssembly vs JavaScript: What is faster?
WebAssembly Overview
WebAssembly overview. KievJS meetup
WebAssembly WASM Introduction Presentation
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
Bootstrapping angular js with bower grunt yeoman
MEAN stack
Introduction to mean stack

What's hot (20)

PPTX
Single Page Application Development with backbone.js and Simple.Web
PPTX
Breaking the eggshell: From .NET to Node.js
PPTX
Web assembly: a brief overview
PPTX
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
PPT
Get MEAN! Node.js and the MEAN stack
PPTX
PHP Indonesia - Nodejs Web Development
PDF
Isomorphic JavaScript: #DevBeat Master Class
PDF
Mean Stack - An Overview
PDF
The MEAN Stack
PDF
NodeSummit - MEAN Stack
PDF
Building Isomorphic JavaScript Apps - NDC 2015
PDF
Nuxt로 사내서비스 구현하면서 얻은 경험 공유
PDF
AWS, is it interesting?
PPTX
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
PPTX
PPTX
Build fast word press site in react in 30 mins with frontity
PDF
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
PPTX
MEAN Stack
PPT
Nodejs - Building a RESTful API
Single Page Application Development with backbone.js and Simple.Web
Breaking the eggshell: From .NET to Node.js
Web assembly: a brief overview
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
Get MEAN! Node.js and the MEAN stack
PHP Indonesia - Nodejs Web Development
Isomorphic JavaScript: #DevBeat Master Class
Mean Stack - An Overview
The MEAN Stack
NodeSummit - MEAN Stack
Building Isomorphic JavaScript Apps - NDC 2015
Nuxt로 사내서비스 구현하면서 얻은 경험 공유
AWS, is it interesting?
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
Build fast word press site in react in 30 mins with frontity
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
MEAN Stack
Nodejs - Building a RESTful API
Ad

Similar to WebAssembly in Houdini CSS, is it possible? (20)

PDF
Vue 淺談前端建置工具
PPTX
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
PPTX
Css framework
PPTX
Css framework
PPTX
How to develop a CSS Framework
KEY
Getting started with CSS frameworks using Zurb foundation
PPTX
Webpack and Web Performance Optimization
PDF
WordPress Theme Structure
PDF
20111129 modernizr
PPTX
SASS - CSS with Superpower
PDF
CSS vs. JavaScript - Trust vs. Control
PDF
Tailwind CSS - KanpurJS
PPTX
Untangling the web - fall2017 - class 4
PPTX
New Elements & Features in CSS3
PDF
Death of a Themer
PDF
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
PPTX
Blazor.pptx
PDF
Webpack Encore - Asset Management for the rest of us
KEY
It's a Mod World - A Practical Guide to Rocking Modernizr
PDF
Create SASSY Web Parts - SPSMilan
Vue 淺談前端建置工具
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Css framework
Css framework
How to develop a CSS Framework
Getting started with CSS frameworks using Zurb foundation
Webpack and Web Performance Optimization
WordPress Theme Structure
20111129 modernizr
SASS - CSS with Superpower
CSS vs. JavaScript - Trust vs. Control
Tailwind CSS - KanpurJS
Untangling the web - fall2017 - class 4
New Elements & Features in CSS3
Death of a Themer
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Blazor.pptx
Webpack Encore - Asset Management for the rest of us
It's a Mod World - A Practical Guide to Rocking Modernizr
Create SASSY Web Parts - SPSMilan
Ad

Recently uploaded (20)

PDF
C language slides for c programming book by ANSI
PPTX
Bandicam Screen Recorder 8.2.1 Build 2529 Crack
PDF
MaterialX Virtual Town Hall - August 2025
PPTX
Greedy best-first search algorithm always selects the path which appears best...
PDF
How to Write Automated Test Scripts Using Selenium.pdf
PPTX
Post-Migration Optimization Playbook: Getting the Most Out of Your New Adobe ...
PPTX
Foundations of Marketo Engage: Nurturing
PDF
Top 10 Project Management Software for Small Teams in 2025.pdf
PDF
OpenAssetIO Virtual Town Hall - August 2025.pdf
PPTX
Comprehensive Guide to Digital Image Processing Concepts and Applications
PDF
How to Set Realistic Project Milestones and Deadlines
PDF
Coding with GPT-5- What’s New in GPT 5 That Benefits Developers.pdf
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
PDF
solman-7.0-ehp1-sp21-incident-management
PDF
10 Mistakes Agile Project Managers Still Make
PPTX
UNIT II: Software design, software .pptx
PPTX
Beige and Black Minimalist Project Deck Presentation (1).pptx
PDF
Multiverse AI Review 2025_ The Ultimate All-in-One AI Platform.pdf
PDF
Mobile App for Guard Tour and Reporting.pdf
PPTX
Lesson-3-Operation-System-Support.pptx-I
C language slides for c programming book by ANSI
Bandicam Screen Recorder 8.2.1 Build 2529 Crack
MaterialX Virtual Town Hall - August 2025
Greedy best-first search algorithm always selects the path which appears best...
How to Write Automated Test Scripts Using Selenium.pdf
Post-Migration Optimization Playbook: Getting the Most Out of Your New Adobe ...
Foundations of Marketo Engage: Nurturing
Top 10 Project Management Software for Small Teams in 2025.pdf
OpenAssetIO Virtual Town Hall - August 2025.pdf
Comprehensive Guide to Digital Image Processing Concepts and Applications
How to Set Realistic Project Milestones and Deadlines
Coding with GPT-5- What’s New in GPT 5 That Benefits Developers.pdf
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
solman-7.0-ehp1-sp21-incident-management
10 Mistakes Agile Project Managers Still Make
UNIT II: Software design, software .pptx
Beige and Black Minimalist Project Deck Presentation (1).pptx
Multiverse AI Review 2025_ The Ultimate All-in-One AI Platform.pdf
Mobile App for Guard Tour and Reporting.pdf
Lesson-3-Operation-System-Support.pptx-I

WebAssembly in Houdini CSS, is it possible?