Saturday, 8 April, 2023 UTC


Summary

Yesterday Google Chrome announced the support for native CSS nesting:
The native CSS selector nesting is very similar to what you would have before in CSS processors such as SASS or LESS:
.header {
    .logo { background-color: orangered; }

    .nav-item { color: blue}
}
The & special character matches the nearest parent selector:
.header {
    /* & points to  .header */
    &:hover {
    }
    .logo {
        /* & points to  .logo*/
    }
}
While & is not needed for selectors such as classes or ID's it is mandatory for raw tag selectors:
.header {
    /* ⛔️ invalid */
    span {
    }

    /* ✅ valid */
    & span {
    }
}
We can also include media queries directly in the nesting loop:
.header {
    @media (max-width: 600px) {
        align-items: left;
    }
}
Currently, this feature is fully supported in Chrome, Safari Technology Preview (both for web and iPhone) and very soon will be available on Edge. For full compatibility, you can use the Post CSS nesting plugin.
The post Native CSS selector nesting is here appeared first on Js Craft.