@mixin --center {
display: flex;
align-items: center;
justify-content: center;
}
.card { @apply --center; }
💡
Use case
Replace Sass/PostCSS mixins with native CSS. Share layout patterns, theme tokens, and responsive utilities across components without a build step.
Status
Editor's Draft
Shipped
Chrome 146 (expected)
Browsers
Chrome
Edge
Spec
CSS Mixins
@view-transition {
navigation: auto;
}
::view-transition-old(root) {
animation: fade-out 0.3s;
}
::view-transition-new(root) {
animation: fade-in 0.3s;
}
💡
Use case
Add smooth page-to-page transitions in multi-page apps without JavaScript frameworks. Works with standard links and form navigations.
Status
Working Draft
Shipped
Chrome 134, Safari 18.2
Browsers
Chrome
Safari
Edge
Spec
CSS View Transitions Level 2
.grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 20px;
column-rule: 1px solid #ccc;
row-rule: 1px dashed #eee;
}
💡
Use case
Add separators between grid items — like table borders or card dividers — without pseudo-elements or wrapper elements. Supports all border-style values.
Status
Editor's Draft
Shipped
Chrome 147 (expected)
Browsers
Chrome
Edge
Spec
CSS Gap Decorations
.flex-nav {
display: flex;
flex-direction: row-reverse;
reading-flow: flex-visual;
}
.grid-layout {
display: grid;
reading-flow: grid-rows;
}
💡
Use case
Fix accessibility issues where visual order differs from DOM order. Ensures keyboard and assistive technology users navigate in the visually expected order.
Status
Editor's Draft
Shipped
Chrome 137
Browsers
Chrome
Edge
Spec
CSS Display Level 4
.reveal {
animation: fade-in linear;
animation-timeline: view();
animation-range: entry 0% entry 100%;
}
@keyframes fade-in {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
💡
Use case
Create scroll-triggered reveal effects, progress bars, parallax, and scroll-linked transforms without JavaScript IntersectionObserver or scroll event listeners.
Status
Working Draft
Shipped
Baseline 2026 (expected)
Browsers
Chrome
Firefox
Edge
Safari
Spec
Scroll-driven Animations
.gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
grid-template-rows: masonry;
gap: 16px;
}
💡
Use case
Build Pinterest-style image galleries, card feeds, and blog layouts where items have varying heights. No need for Masonry.js or manual column calculation.
Status
Editor's Draft
Shipped
Firefox 140 (behind flag), Chrome (in development)
Browsers
Firefox
Chrome
Spec
CSS Grid Layout Level 3
:root { --brand: oklch(65% 0.25 260); }
.lighter {
color: oklch(from var(--brand) calc(l + 0.2) c h);
}
.muted {
color: oklch(from var(--brand) l calc(c * 0.5) h);
}
💡
Use case
Generate entire color palettes from a single brand color. Lighten, darken, desaturate, or shift hue without Sass functions or hardcoded hex values.
Status
Working Draft
Shipped
Baseline 2026
Browsers
Chrome
Firefox
Safari
Edge
Spec
CSS Color Level 5
dialog[open] {
opacity: 1;
transform: scale(1);
transition: opacity 0.3s, transform 0.3s;
}
@starting-style {
dialog[open] {
opacity: 0;
transform: scale(0.95);
}
}
💡
Use case
Animate dialogs, popovers, and conditionally-rendered elements on first display. No more requestAnimationFrame hacks to trigger entry transitions.
Status
Working Draft
Shipped
Baseline 2026
Browsers
Chrome
Firefox
Safari
Edge
Spec
CSS Transitions Level 2
/* JavaScript: create ranges */
const range = new Range();
range.setStart(node, 0);
range.setEnd(node, 5);
CSS.highlights.set('search', new Highlight(range));
/* CSS: style the highlight */
::highlight(search) {
background: oklch(85% 0.15 90);
color: black;
}
💡
Use case
Build find-and-replace, code syntax highlighting, spell-check underlines, and collaborative cursors without wrapping text in <span> elements.
Status
Working Draft
Shipped
Chrome 137, Firefox (in development)
Browsers
Chrome
Edge
Firefox
Spec
CSS Custom Highlight API Level 1
@scope (.card) to (.card-content) {
:scope {
border: 1px solid #ddd;
border-radius: 12px;
}
h2 { font-size: 1.2rem; }
p { color: gray; }
}
💡
Use case
Scope styles to a component without class-name conventions or build tools. The 'to' boundary prevents styles from leaking into nested sub-components.
Status
Working Draft
Shipped
Chrome 134, Firefox (in development)
Browsers
Chrome
Edge
Firefox
Safari
Spec
CSS Cascading and Inheritance Level 6