Media-queries et breakpoints


Adaptation progressive

Les points d'arrêt sont des variables indispensables pour la conception réactive de vos applications. Utilisez-les pour structurer vos propriétés CSS, afin de contrôler quand votre mise en page peut être adaptée à une taille de fenêtre ou d'appareil particulière.

Les "breakpoints" disponibles

Breakpoint Prefix de classe Dimensions
Petit Mobile Aucun <400px
Mobile m: ≥400px & <600px
Tablette portrait t: ≥600px & <900px
Moyen (Tablette paysage) md: ≥900px & <1200px
Desktop d: ≥1200px & <1440px
Desktop moyen dm: ≥1440px & <1600px
Desktop large lg: ≥1600px & <1800px
Desktop extra large xl: ≥1800px & <2560px
Desktop extra extra large xxl: ≥2560px

Certaine classes de Sass Swing comme les grilles utilisent les media-queries. Pour les utiliser dans le code source HTML, il suffit de faire précéder le nom de la classe avec le préfixe adéquat.

Outils SASS

La version SASS de Sass Swing fournit un mixins @mixins mq(displayType, mode="mf"), qui vous permettra de contrôler la mise en place de vos classes CSS pour les différents points d'arrêts facilement.

Il vous suffit d'importer le fichier ./abstracts/_mixins.scss dans votre fichier. Puis d'utiliser @mixins mq.

Le premier paramètre, défini pour quelle surface d'affichage appliquer les règles.
Les valeurs de ce paramètre sont :
mobile, tablet, tablet-medium, desktop, desktop-medium, desktop-lg, desktop-xlg et desktop-xxlg.

Le deuxième paramètre, défini le mode. mf correspond à mobile-first (valeur par défaut) tout autre valeur correspondra à desktop-first.

Sass Swing fournit d'autres mixins pour contrôler les points d'arrêts :

  • @mixins mq-up(MinWidthInPixel)
  • @mixins mq-down(MaxWidthInPixel)
  • @mixins mq-between(MinWidthInPixel, MaxWidthInPixel)

Exemple :

@use "./vendors/sass-swing/abstracts/mixins" as *;

@include mq(desktop-medium) {
  body > main {
    margin-right: 3vw;
    margin-left: 2vw;
  }
}

@include mq(desktop-lg) {
  body > main {
    margin-right: 8vw;
    margin-left: 6vw;
  }
}

@include mq(desktop-xlg) {
  body > main {
    margin-right: 13vw;
    margin-left: 11vw;
  }
}