Spec-Zone.ru › CSS

CSS-функция `paint()`

Baseline Ограниченная доступность

Эта функция не входит в Baseline, поскольку не работает в некоторых наиболее широко используемых браузерах.

paint() — это CSS-функция, которая определяет значение <image>, созданное с помощью PaintWorklet.

Синтаксис

paint(workletName, ...parameters)

где:

workletName
Имя зарегистрированного worklet.
parameters Необязательно
Необязательные дополнительные параметры, передаваемые в paintWorklet

Формальный синтаксис

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

Примеры

Базовое использование CSS-функции paint()

Пусть у нас есть следующий HTML:

<ul>
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
  <li>item 4</li>
  <li>item 5</li>
  <li>item 6</li>
  <li>item 7</li>
  <li>item 8</li>
  <li>item 9</li>
  <li>item 10</li>
  <li>item N</li>
</ul>

В JavaScript регистрируем paint worklet:

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

В CSS мы определяем background-image как тип paint() с именем worklet, boxbg, а также с любыми переменными (например, --box-color и --width-subtractor), которые будет использовать worklet:

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;
}

CSS-функция paint() с параметрами

В CSS-функцию paint() можно передать необязательные аргументы. В этом примере мы передали два аргумента, которые определяют, будет ли background-image у группы элементов списка filled или иметь stroke контур, а также задают width этого контура:

<ul>
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
  <li>item 4</li>
  <li>item 5</li>
  <li>item 6</li>
  <li>item 7</li>
  <li>item 8</li>
  <li>item 9</li>
  <li>item 10</li>
  <li>item N</li>
</ul>
CSS.paintWorklet.addModule(
  "https://mdn.github.io/houdini-examples/cssPaint/intro/worklets/hilite.js",
);
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);
}

Мы добавили пользовательское свойство в блок селектора, задав boxColor. PaintWorklet может обращаться к пользовательским свойствам.

Спецификации

Спецификация
CSS Painting API Level 1
# paint-notation

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet WebView для Android WebView на iOS
paint
65
79
Нет
52
Нет
65
Нет
47
Нет
9.2
65
Нет
additional_parameters
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет

См. также

  • PaintWorkletGlobalScope
  • CSS Painting API
  • Использование CSS Painting API
  • <image>
  • Canvas API

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/image/paint

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API