slides = [...Specs, ...Tools]
From risky and never in your browser
to stable and across many browsers!
.animated {
motion-rendering: blur;
motion-shutter-angle: 180deg;
}
learn more
@scroll-timeline
@scroll-timeline feature-timeline {
source: selector(#feature-carousel);
}
#feature-scrollspy {
animation-timeline: feature-timeline;
}
learn more | demo | polyfill
p {
leading-trim: both;
}
learn more | draft
@layer reset {
* { box-sizing: border-box; }
body { margin: 0; }
}
...
@layer reset { /* add more later */ }
learn more
[spellcheck]::spelling-error {
text-decoration: wavy underline var(--neon-red);
}
[spellcheck]::grammar-error {
text-decoration: wavy underline var(--neon-blue);
}
Will allow a limited set of allowable styles
::cue()
::cue {
color: white;
background-color: hsl(0 0% 0% / 90%);
}
Will allow a limited set of allowable styles
:target-within
article:target-within {
background-color: hsl(var(--surfaceHSL) / 10%);
}
learn more
& >
and @nest
article {
& > p { ... }
@nest section > & { ... }
}
learn more
p {
margin: 1cap 1lh 1rlh;
padding: 1vi 1vb;
}
learn more | demo
.colour {
--fn-notation: hsl(2rad 50% 50% / 80%);
--neon-pink: color(display-p3 1 0 1);
--gray: lch(50% 0 0);
--fallback: color(lab 25 25 25, display-p3 1 0 1, #ccc);
}
learn more
.colour {
--pink: color-mix(red, white);
--halfpink: color(var(--pink) / 50%);
--halfred: rgb(from #f00 / 50%);
--darkred: hsl(from red h s calc(l * .25));
}
learn more
@media (dynamic-range: high) {
.neon-pink {
--neon-glow: color(display-p3 1 0 1);
}
}
Beat Saber |
Best display-p3
Neon Colors
::marker
li::marker {
color: var(--neon-pink);
}
learn more |
sandbox
:focus-visible
button:focus:not(:focus-visible) {
box-shadow: 0 10px 25px -10px hsl(0 0% 0% / 25%);
}
Browser provided hook into focus heuristics
learn more
p {
max-inline-size: 40ch;
margin-block: 1ch;
padding-inline: 1ch;
text-align: end;
}
learn more |
sandbox
element.animate(
[{transform: `translate(${x}px, ${y}px)`}],
{composite: 'add'},
})
learn more
@media (prefers-reduced-data: reduce) {
header {
background-image: url(/grunge.avif);
}
}
learn more
<type>
Componentscolor()
pickerHear it hot 👉 @argyleink