Skip to content

pantoken / flatten-property

flatten-property

Бета

@pantoken/plugin-flatten-property — преобразует at‑правила @property в простые объявления пользовательских свойств declarations.

@property at‑rules регистрируют типизированные CSS‑пользовательские свойства с помощью дескрипторов syntax, inherits и initial-value. Они вносят значительную накладную по байтам — ~60 байт служебного кода на свойство — и не нужны, когда таблица стилей является автономным бандлом, в котором регистрация типов не даёт никаких преимуществ во время выполнения. Этот плагин заменяет каждый блок @property на простое объявление --name: value внутри выбранного селектора, возвращая всю эту накладную.

Семантическая заметка: удаление @property лишает CSS регистрации типов. От него зависят типизированные переходы/анимации, @starting-style и CSS Typed OM. Применяйте только к бандлам, где эти семантики не требуются.

Пример

ts
import postcss from "postcss";
import { flattenProperty } from "@pantoken/plugin-flatten-property";
const out = postcss([flattenProperty()]).process(css, { from: undefined }).css;

Интерфейсы

Переменные