Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

paint()

Limited availability

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

Le type de données CSS paint() définit une valeur de type <image> générée avec un PaintWorklet.

Syntaxe

css
paint(workletName, ...parameters)

Paramètres

workletName

Le nom du worklet enregistré.

parameters Facultatif

Des paramètres supplémentaires, optionnels, à passer à paintWorklet.

Syntaxe formelle

<paint()> = 
paint( <ident> , <declaration-value>? )

Exemples

Utilisation simple de paint()

A partir du HTML suivant :

html
<ul>
  <li>Élément 1</li>
  <li>Élément 2</li>
  <li>Élément 3</li>
  <li>Élément 4</li>
  <li>Élément 5</li>
  <li>Élément 6</li>
  <li>Élément 7</li>
  <li>Élément 8</li>
  <li>Élément 9</li>
  <li>Élément 10</li>
  <li>Élément N</li>
</ul>

Avec JavaScript, nous enregistrons le paint worklet :

js
CSS.paintWorklet.addModule(
  "https://mdn.github.io/houdini-examples/cssPaint/intro/worklets/boxbg.js",
);

Dans le CSS, on définit la propriété background-image comme un type paint() avec le nom du worklet, boxbg, ainsi que toutes les variables (par ex. : --box-color et --width-subtractor) que le worklet utilisera :

css
body {
  font: 1.2em / 1.2 sans-serif;
}
li {
  background-image: paint(boxbg);
  --box-color: hsl(55 90% 60%);
}

li:nth-of-type(3n) {
  --box-color: hsl(155 90% 60%);
  --width-subtractor: 20;
}

li:nth-of-type(3n + 1) {
  --box-color: hsl(255 90% 60%);
  --width-subtractor: 40;
}

Utilisation de paint() avec paramètres

Vous pouvez passer des arguments optionnels à la fonction CSS paint(). Dans cet exemple, nous passons deux arguments qui contrôlent si le background-image d'un groupe d'éléments de liste est « rempli » ou possède un contour (« stroke »), ainsi que la largeur de ce contour :

css
body {
  font: 1.2em / 1.2 sans-serif;
}

li {
  --box-color: hsl(55 90% 60% / 100%);
  background-image: paint(hollow-highlights, stroke, 2px);
}

li:nth-of-type(3n) {
  --box-color: hsl(155 90% 60% / 100%);
  background-image: paint(hollow-highlights, filled, 3px);
}

li:nth-of-type(3n + 1) {
  --box-color: hsl(255 90% 60% / 100%);
  background-image: paint(hollow-highlights, stroke, 1px);
}

On a inclus une propriété personnalisée dans le bloc du sélecteur définissant une couleur de boîte (boxColor). Les propriétés personnalisées sont accessibles au PaintWorklet.

Spécifications

Specification
CSS Painting API Level 1
# paint-notation

Compatibilité des navigateurs

Voir aussi