DEV Community

Cover image for Goodbye Sass & Less, Hello CSS Innovations in 2024!
Exousia KASEKA
Exousia KASEKA

Posted on

Goodbye Sass & Less, Hello CSS Innovations in 2024!

The year 2024 witnesses a true renaissance in the world of web development. CSS preprocessors such as Sass and Less, once indispensable, are fading away in favor of more advanced and intuitive native CSS features. Let’s dive into the reasons why we should move away from these tools and embrace CSS innovations with enthusiasm.

Farewell to Sass and Less

Sass and Less have long been the cornerstones of structure and development speed thanks to their utility class systems and predefined components. But these tools, while useful, also have their limitations: they can hinder creativity and weigh down code maintenance. Today, CSS advancements free us from these constraints, offering customization and design finesse that render Sass and Less obsolete.

Hello to CSS Innovations in 2024

The CSS advancements in 2024 are a true ode to creative and technical freedom, far surpassing what traditional preprocessors could offer. Here’s a glimpse of the revolutionary features:

1. Container Queries

Imagine web components that adapt harmoniously to their environment, like a chameleon. This is now possible thanks to container queries, which mark a major evolution in responsive design. These queries allow elements to adjust according to the size of their parent container, rather than the size of the viewing window.

This means you can create components that fit seamlessly into a sidebar, main content area or other container, without the need for separate media queries for each one.

Code Example:

.card {
  container-type: inline-size;
  container-name: card;
}

@container card (max-width: 30em) {
  .card-title {
    font-size: 2rem;
  }
}
Enter fullscreen mode Exit fullscreen mode

In this example, a .card element becomes an intelligent container, capable of modifying the .card-title font size based on its own width.

Image Container Queries gif


2. Advanced Color Systems (LCH, LAB, HWB)

The new LCH, LAB and HWB color palettes transform the way we interact with color. They offer a more natural and intuitive approach, enabling us to manipulate contrast and color harmony with unrivalled precision.

LCH (Lightness, Chroma, Hue) lets you specify color properties in a more natural way, approximating the way humans perceive color. LAB(lightness a* b*) is similar, but focuses on brightness and color opposites. HWB (Hue, Whiteness, Blackness) is a user-friendly way of defining colors by mixing a hue with varying amounts of white and black.

Code Example:

:root {
  --primary-color: lch(50% 40 130);
}

.button {
  background-color: var(--primary-color);
  border: 1px solid hwb(130 10% 10%);
}
Enter fullscreen mode Exit fullscreen mode

Here, the primary color is defined with the LCH system, while the button’s border uses the HWB system for optimal contrast.

Image Advanced Color Systems (LCH, LAB, HWB)


3. Enhanced CSS Variables

CSS variables have become the superheroes of web design. They enable us to create dynamic themes and scalable design systems with disconcerting ease.

CSS variables, also known as custom properties, allow you to store values that can be reused in your stylesheet. This makes it easier to maintain consistency and adapt your design with a minimum of changes.

Code Example:

:root {
  --main-bg-color: #222;
  --main-text-color: #eee;
}

body {
  background-color: var(--main-bg-color);
  color: var(--main-text-color);
}

.theme-light {
  --main-bg-color: #eee;
  --main-text-color: #222;
}
Enter fullscreen mode Exit fullscreen mode

Switching themes is as simple as applying the .theme-light class to change the background and text colors.


4. Subgrid

Subgrid is an extension of the CSS Grid layout that allows nested grids to participate in the sizing of their parent grid.

Subgrid simplifies complex layouts by allowing nested grid items to align directly with the parent grid’s tracks. This removes the need to set up individual grid definitions for nested elements.

Code Example:

.grid {
  display: grid;
  grid-template-columns: subgrid;
}

.item {
  grid-column: span 2;
}
Enter fullscreen mode Exit fullscreen mode

In this example, .item elements will span two columns of the parent .grid, which uses subgrid to align its columns.

Image Subgrid gif

These CSS features in 2024 will empower developers to create more responsive, maintainable, and visually appealing websites with ease. The code examples provided should give you a starting point to experiment with these new capabilities in your projects.



Related posts

Top comments (0)