The way that banner is rendered is really bland. That animation performance is lackluster to say the least. Maybe you're still unsatisfied with grid. CSS has always suffered from a slow-paced evolution but it's probably coming to an end. Houdini is a project that aims to expose the internals of CSS engines to developers, in order to create new and performant ways to extend CSS. We'll see the current state-of-the-art and some neat examples, to conclude with a glance to what the future holds for us.
26. geometry has just two numeric properties:
↔ width and ↕ height
properties is a Map of the CSS properties
given by inputProperties
27. Where can I use it?
background-image
border-image
mask-image
list-style-image
::before and ::after
… possibly anything that can accept a url()
❌except cursor
31. What usually happens
constconst widthwidth == someComputationsomeComputation(());;
elementelement..stylestyle..widthwidth == ``${${widthwidth}}px`px`;;
number ➡ string ➡ CSS parse ➡ CSS value
32. What happens with Typed OM
constconst widthwidth == someComputationsomeComputation(());;
elementelement..attributeStyleMapattributeStyleMap..setset(('width''width',, CSSCSS..pxpx((widthwidth))));;
number ➡ ➡ ➡ CSS valuestring CSS parse
47. Set the type of a custom property
CSSCSS..registerPropertyregisterProperty(({{
namename:: '--box-width''--box-width',,
syntaxsyntax:: '<length>''<length>',,
initialValueinitialValue:: CSSCSS..pxpx((00)),,
inheritsinherits:: falsefalse
}}));;
48. All the syntaxes
<color> <length>
<percentage> <length-percentage>
<number> <integer>
<angle> <time>
<url> <image>
<transform-list> <transform-function>
<resolution> <custom-ident>
53. Paint API
Draw images fast in a worklet
⚡Typed OM
Fast and less error-prone values for CSS
Properties and Values
Making custom properties rst class citizens