All utilities

Breakpoints

Dans le fichier breakpoints.sass on retrouve les media queries (dans des variables) correspondants aux breakpoints qu'on utilise sur le site.

$breakpoint-larger-than-sm-768px: "only screen and (min-width: 768px)"
$breakpoint-smaller-than-sm-768px: "only screen and (max-width: 767px)"

$breakpoint-larger-than-md-992px: "only screen and (min-width: 992px)"
$breakpoint-smaller-than-md-992px: "only screen and (max-width: 991px)"

$breakpoint-larger-than-lg-1200px: "only screen and (min-width: 1200px)"
$breakpoint-smaller-than-lg-1200px: "only screen and (max-width: 1199px)"

$breakpoint-larger-than-xl-1600px: "only screen and (min-width: 1600px)"
$breakpoint-smaller-than-xl-1600px: "only screen and (max-width: 1599px)"

Pour la gestion du responsive, on a favorisé une approche mobile first : on déclare les styles pour les petits écrans et on les surcharge si besoin pour les plus grands écrans avec une variable de type $breakpoint-larger-than-…

.sidebar-nav
  display: flex
  justify-content: space-between

@media #{$breakpoint-larger-than-sm-768px} .sidebar-nav flex-direction: column

Flexbox grid

Sur le site on utilise la grille Flexbox Grid il est donc possible de consulter la documentation directement sur le site

On a un peu customisé la grille pour ajouter du padding sur le container afin d'avoir des gouttières qui suivent nos breakpoints.


Grid

Pour respecter le design sur l'ECPPP, on utilise un display: grid qui nous permet de maitriser le nombre de lignes et de colonnes qu'occupe une box.

Pour l'instant cette grille est assez rigide, elle ne fonctionne que pour un cas avec 5 box dont une au milieu qui prend 2 rangées de hauteur. Il faudra voir selon les besoins si cette grille a besoin d'évoluer pour devenir plus générique et plus flexible.

.grid
  .grid-1.mb-3 style= "background: #eee"
  .grid-2.mb-3 style= "background: #eee"
  .grid-3.mb-3 style= "background: #eee"
  .grid-4.mb-3 style= "background: #eee"
  .grid-5.mb-3 style= "background: #eee"

Positioning

On utilise des classes génériques pour les besoins de positionnement qui se trouve dans le fichier positioning.sass

Pour gérer les margin et les padding on a un systeme de nommage qui se base sur les spacers (définit dans le fichier spacers.scss), allant de 0 à 13.

.mt-0 // margin-top: 0
.mt-13 // margin-top: $spacer(13)

.pb-0 // padding-bottom: 0
.pb-13 // padding-bottom: $spacer(13)

On a également des classes génériques pour gérer les éléments en flex.

.flex-align-center
.flex-space-between
…

Text

Les classes génériques qui s'appliquent à du texte sont placés dans le fichier text.sass

.truncate // ajouter une ellipse sur du texte
.align-center // centrer le texte
.rouge // mettre en rouge le texte

Visibility

On utilise des classes génériques pour masquer ou rendre visible des éléments dans le html. Ces classes sont déclinées en fonction des breakpoints afin de gérer le responsive.

.visible
.hidden

.hidden-xs
.hidden-unless-xs
…
.hidden-lg
.hidden-unless-lg