6 extraits CSS que tout développeur front-end devrait connaître en 2023

Un CSS puissant, stable et digne de votre boîte à outils que vous pouvez utiliser dès aujourd'hui.

Je pense que chaque développeur frontend devrait savoir comment utiliser les requêtes de conteneur, créer une expérience de alignement sur le défilement, éviter position: absolute avec grid, créer rapidement un cercle, utiliser les calques en cascade et toucher plus de monde avec moins de ressources grâce aux propriétés logiques. Voici un aperçu rapide de chacune de ces attentes.

1. Requête de conteneur

La fonctionnalité CSS la plus demandée depuis 10 ans est désormais stable dans tous les navigateurs et disponible pour les requêtes de largeur en 2023.

.panel {
  container: layers-panel / inline-size;
}

.card {
  padding: 1rem;
}

@container layers-panel (min-width: 20rem) {
  .card {
    padding: 2rem;
  }
}
@container

Browser Support

  • Chrome: 105.
  • Edge: 105.
  • Firefox: 110.
  • Safari: 16.

Source

container

Browser Support

  • Chrome: 105.
  • Edge: 105.
  • Firefox: 110.
  • Safari: 16.

Source

2. Scroll-snap

Les expériences de défilement bien orchestrées vous permettent de vous démarquer. Le scroll snap est le moyen idéal d'adapter l'UX de défilement du système tout en fournissant des points d'arrêt pertinents.

.snaps {
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
}

.snap-target {
  scroll-snap-align: center;
}

.snap-force-stop {
  scroll-snap-stop: always;
}

Découvrez le potentiel de cette fonctionnalité CSS dans cette vaste et inspirante collection Codepen d'environ 25 démos.

scroll-snap-type

Browser Support

  • Chrome: 69.
  • Edge: 79.
  • Firefox: 99.
  • Safari: 11.

Source

scroll-snap-align

Browser Support

  • Chrome: 69.
  • Edge: 79.
  • Firefox: 68.
  • Safari: 11.

Source

scroll-snap-stop

Browser Support

  • Chrome: 75.
  • Edge: 79.
  • Firefox: 103.
  • Safari: 15.

Source

overscroll-behavior

Browser Support

  • Chrome: 144.
  • Edge: 18.
  • Firefox: 150.
  • Safari: 16.

Source

3. Pile en grille

Évitez le positionnement absolu avec une grille CSS à une seule cellule. Une fois les éléments empilés les uns sur les autres, utilisez les propriétés d'alignement et de justification pour les positionner.

.pile {
  display: grid;
  place-content: center;
}

.pile > * {
  grid-area: 1/1;
}
grid

Browser Support

  • Chrome: 57.
  • Edge: 16.
  • Firefox: 52.
  • Safari: 10.1.

Source

4. Cercle rapide

Il existe de nombreuses façons de créer des cercles en CSS, mais celle-ci est sans aucun doute la plus minimaliste.

.circle {
  inline-size: 25ch;
  aspect-ratio: 1;
  border-radius: 50%;
}
aspect-ratio

Browser Support

  • Chrome: 88.
  • Edge: 88.
  • Firefox: 89.
  • Safari: 15.

Source

5. Contrôler les variantes avec @layer

Les calques en cascade peuvent aider à insérer les variantes découvertes ou créées ultérieurement au bon endroit dans la cascade avec l'ensemble de variantes d'origine.

/* file buttons.css */
@layer components.buttons {
  .btn.primary {
    
  }
}

Ensuite, dans un fichier complètement différent, chargé à un autre moment aléatoire, ajoutez une nouvelle variante au calque du bouton comme si elle était là avec le reste depuis le début.

/* file video-player.css */
@layer components.buttons {
  .btn.player-icon {
    
  }
}
@layer

Browser Support

  • Chrome: 99.
  • Edge: 99.
  • Firefox: 97.
  • Safari: 15.4.

Source

6. Mémorisez moins et atteignez plus avec les propriétés logiques

Mémorisez ce nouveau modèle de boîte et ne vous inquiétez plus de devoir modifier la marge intérieure ou extérieure à gauche et à droite pour les modes d'écriture et les sens de lecture internationaux. Passez des propriétés physiques à des propriétés logiques comme padding-inline, margin-inline et inset-inline, et le navigateur se chargera des ajustements.

button {
  padding-inline: 2ch;
  padding-block: 1ch;
}

article > p {
  text-align: start;
  margin-block: 2ch;
}

.something::before {
  inset-inline: auto 0;
}
padding-inline

Browser Support

  • Chrome: 87.
  • Edge: 87.
  • Firefox: 66.
  • Safari: 14.1.

Source

margin-block

Browser Support

  • Chrome: 87.
  • Edge: 87.
  • Firefox: 66.
  • Safari: 14.1.

Source

inset-inline

Browser Support

  • Chrome: 87.
  • Edge: 87.
  • Firefox: 63.
  • Safari: 14.1.

Source