Agrupar con :is() y :where() — CSS más limpio y predecible

Explicación:
  • :is() agrupa varios selectores y aplica el mismo estilo: aquí coloreamos de azul todos los <h1>, <h2> y <h3> sin repetir reglas.
  • :where() también agrupa, pero con peso cero de especificidad. Así podemos dar estilos base a <p> y <li> sin que interfieran en prioridades más altas.
  • El resultado: un CSS más compacto, menos repetitivo y con jerarquía clara.

Título de sección

Este párrafo recibe estilo gracias a :where().
  • Elemento de lista uno
  • Elemento de lista dos
HTML
<div class="demo">
  <h2>Título de sección</h2>
  <p>Este párrafo recibe estilo gracias a <code>:where()</code></p>
  <ul>
    <li>Elemento de lista uno</li>
    <li>Elemento de lista dos</li>
  </ul>
</div>

CSS
.demo {
  display: grid;
  gap: 1rem;
  padding: 1.5rem;
  background: #f9f9f9;
  border-radius: .5rem;
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
}

.demo :is(h1,h2,h3) {
  color: #3498db;
  font-family: sans-serif;
  margin: 0;
}

.demo :where(p,li) {
  color: #555;
  line-height: 1.5;
}

.demo ul {
  padding-left: 1.2rem;
}

.demo li::before {
  content: "✔ ";
  color: #2ecc71;
}