Documentation

Dégradés

Des classes de dégradé composables — un applicateur qui dessine, des setters qui l'alimentent en couleurs, direction, zoom et animation.

Un dégradé, dans EVA, ce n'est pas une classe mais une petite pile : un applicateur qui le dessine, et des setters qui l'alimentent. Tout transite par trois custom properties, donc chaque partie peut être surchargée n'importe où.

html
<body class="current-theme theme-eva all-grads">
  <div class="grad-linear from-brand to-accent d-br">…</div>
</body>

Les trois variables#

VariableDéfautPosée par
--current-from-colorvar(--brand)from-*
--current-to-colorvar(--accent)to-*
--current-angle90degd-* et a-*

Posez-les à la main quand le vocabulaire de classes ne suffit pas :

css
.hero {
  --current-from-color: oklch(70% 0.2 300);
  --current-to-color: var(--extra___);
  --current-angle: 17deg;
}

Applicateurs#

ClasseDessine
grad-linearDégradé linéaire en fond
grad-radialDégradé radial depuis le centre
grad-linear-textDégradé linéaire découpé sur le texte
grad-radial-textDégradé radial découpé sur le texte
grad-linear-borderDégradé linéaire en border-image
grad-radial-borderDégradé radial en border-image

Les variantes -text posent background-clip: text et un remplissage transparent. Les variantes -border passent par border-image : l'élément a donc besoin d'un border-style et d'un border-width pour que quoi que ce soit apparaisse.

Setters de couleur#

from-* et to-* acceptent tous les rôles de couleur et toutes leurs variantes — le même vocabulaire que le système de couleurs.

html
<div class="grad-linear from-brand to-accent">…</div>
<div class="grad-linear from-brand_ to-extra-d">…</div>
<div class="grad-radial from-accent to-transparent">…</div>
MotifExempleRésultat
from-<rôle>from-brandDépart sur le rôle
from-<rôle>_from-brand_Départ à 65 % d'opacité
from-<rôle>-dfrom-extra-dDépart sur le cran assombri
to-transparentto-transparentFondu sortant
from-transparentfrom-transparentFondu entrant

Comme les extrémités sont des variables de thème, un dégradé se recompose tout seul au changement de thème et en mode sombre. Rien à redéclarer.

Direction#

Huit raccourcis, et le contrôle d'angle complet au besoin.

ClasseDirection
d-tvers le haut
d-bvers le bas
d-lvers la gauche
d-rvers la droite
d-tlvers le haut-gauche
d-trvers le haut-droite
d-blvers le bas-gauche
d-brvers le bas-droite

a-0 à a-360 par pas de 5° — 73 classes : a-45, a-90, a-135, a-215, a-360.

html
<h1 class="grad-linear-text from-brand to-accent a-135">En biais</h1>

Zoom et position#

Agrandir la boîte du dégradé, c'est ce qui rend l'animation lisible — un dégradé à 100 % n'a nulle part où aller.

Classebackground-size
bg-size150 %
bg-size_200 %
bg-size__300 %
Classebackground-position
bg-centercentre
bg-top / bg-bottomhaut / bas
bg-left / bg-rightgauche / droite

Animation#

ClasseDurée
animated3 s
animated-slow6 s
animated-fast1 s

Les trois jouent les mêmes keyframes gradient-shift, qui déplacent la position du fond. Associez-les à une classe bg-size*, sinon rien ne semblera bouger.

html
<div class="grad-radial from-extra to-transparent bg-size_ animated">…</div>

Tout assembler#

html
<!-- diagonale, marque fondue vers un accent assombri -->
<div class="grad-linear from-brand_ to-accent-d d-br br-12 p-32">Carte</div>

<!-- titre en dégradé -->
<h1 class="grad-linear-text from-brand to-accent d-r fs-52">Texte en dégradé</h1>

<!-- halo radial animé lentement -->
<div class="grad-radial from-extra to-transparent bg-size__ animated-slow">Halo</div>

<!-- bordure en dégradé, noter le border-style -->
<div class="grad-linear-border from-brand to-extra" style="border: 2px solid">Encadré</div>

La page Gradients propose tout le vocabulaire sous forme de terrain de jeu.

Suite : Classes utilitaires.