Old /* Multiple style() blocks */
see modern →
Old window.addEventListener(
Modern @container scroll-state(
see modern →
Old // JS reading dataset
see modern →
Old // JavaScript toggling
see modern →
Old // Sass function
Modern @function --fluid(
see modern →
Old .card {
see modern →
Old .shape {
see modern →
Old const observer = new
Modern nav a:target-current {
see modern →
Old .full {
see modern →
Old li:nth-child(1) { --i: 0; }
see modern →
Old // Swiper.js or Slick carousel
Modern .carousel::scroll-button(right) {
see modern →
Old .btn {
see modern →
Old // JS: mouseenter + mouseleave
Modern <button interestfor="tip">Hover me</button>
see modern →
Old <button onclick="
Modern <button commandfor="dlg"
see modern →
Old // JS: listen for click on ::backdrop
Modern <dialog closedby="any">
see modern →
Old // Select2 or Choices.js
see modern →
Old .hero {
see modern →
Old /* Sass: lighten($brand, 20%), darken($brand, 10%) */
see modern →
Old /* JS: slice text by chars/words, add "..." */
see modern →
Old .drop-cap::first-letter {
Modern .drop-cap::first-letter {
see modern →
Old .overlay {
see modern →
Old // JS IntersectionObserver
see modern →
Old .menu { display: none; }
Modern button[popovertarget=menu] { }
see modern →
Old /* Popper.js / Floating UI: compute rect,
Modern .trigger { anchor-name: --tip; }
see modern →
Old // BEM: .card__title, .card__body
see modern →
Old // --hue was a string, no animation
see modern →
Old .icon { transform: translateX(10px) rotate(45deg) scale(1.2); }
see modern →
Old // wait for transitionend then display:none
Modern .panel { transition: opacity .2s, overlay .2s;
see modern →
Old // add class after paint
Modern .card { transition: opacity .3s, transform .3s; }
see modern →
Old // Barba.js or React Transition Group
Modern document.startViewTransition(() => updateDOM());
see modern →
Old // Slick, Swiper, or scroll/touch JS
Modern .carousel { scroll-snap-type: x mandatory; }
see modern →
Old // manual <br> or Balance-Text.js
see modern →
Old @font-face { ... }
see modern →
Old @font-face { font-weight: 400; }
see modern →
Old @media (prefers-color-scheme: dark) {
see modern →
Old @media (prefers-color-scheme: dark) {
Modern color: light-dark(#111, #eee);
see modern →
Old .reset ul, .reset ol { ... }
see modern →
Old margin-left: 1rem;
Modern margin-inline-start: 1rem;
see modern →
Old float: left; /* clearfix, margins */
see modern →
Old .child-grid {
see modern →
Old .overlay { position: fixed; z-index: 999; }
see modern →
Old appearance: none;
Modern input[type="checkbox"],
see modern →
Old .card h1, .card h2, .card h3, .card h4 {
Modern .card :is(h1, h2, h3, h4) {
see modern →
Old :focus { outline: 2px solid blue; }
see modern →
Old .card .title { ... }
Modern @layer base, components, utilities;
see modern →
Old // Sass: $primary: #7c3aed;
see modern →
Old h1 { font-size: 1rem; }
see modern →
Old .grid > * { margin-right: 16px; }
see modern →
Old .wrapper { padding-top: 56.25%; position: relative; }
see modern →
Old // JS: scroll listener + getBoundingClientRect
see modern →
Old // JS + IntersectionObserver
Modern animation-timeline: view();
see modern →
Old // requires Sass compiler
see modern →
Old @media (max-width: 768px) {
Modern @container (width < 400px) {
see modern →
Old // Sass required
Modern background: color-mix(
see modern →
Old // JavaScript required
see modern →
Old position: absolute;
see modern →