Spec-Zone.ru › Web APIs

Houdini API

Houdini — это набор API низкого уровня, предоставляющий доступ к частям движка CSS, давая разработчикам возможность расширять CSS, подключившись к процессу форматирования и макета рендеринга движка браузера. Houdini — это группа API, предоставляющая разработчикам прямой доступ к объектной модели CSS (CSSOM), позволяя им писать код, который браузер может распознавать как CSS, создавая новые возможности CSS без ожидания их реализации в браузерах.

Преимущества Houdini

Houdini обеспечивает более быстрые времена парсинга по сравнению с использованием JavaScript HTMLElement.style для изменения стилей. Браузеры парсят CSSOM — включая процессы макета, отрисовки и композиции — перед применением любых обновлений стиля, найденных в скриптах. Кроме того, процессы макета, отрисовки и композиции повторяются для обновлений стиля JavaScript. Код Houdini не ожидает завершения первого цикла рендеринга. Вместо этого он включается в этот первый цикл — создавая рендерируемые и понятные стили. Houdini предоставляет объектно-ориентированный API для работы со значениями CSS в JavaScript.

API CSS Typed Object Model Houdini — это объектная модель CSS с типами и методами, представляющая значения в виде JavaScript-объектов, что делает манипуляции со стилями CSS более интуитивными по сравнению с предыдущими методами манипулирования на основе строк HTMLElement.style. Каждый элемент и правило таблицы стилей имеют карту стилей, доступ к которой можно получить через её StylePropertyMap.

Функцией CSS Houdini является Worklet. С помощью worklet вы можете создавать модульный CSS, требующий единственной строки JavaScript для импорта настраиваемых компонентов: без необходимости в препроцессорах, постпроцессорах или JavaScript-фреймворках.

CSS.paintWorklet.addModule("css-component.js");

Этот добавленный модуль содержит PaintWorkletGlobalScope.registerPaint функции, которые регистрируют полностью настраиваемые worklet.

Примечание: Вы можете написать собственные worklet или установить компоненты, созданные другими людьми. Сайт Houdini.how содержит коллекцию worklet с инструкциями по их использованию.

Функция CSS paint() — это дополнительная функция, поддерживаемая типом <image>. Она принимает параметры, включающие имя worklet и дополнительные параметры, необходимые для worklet. Worklet также имеет доступ к пользовательским свойствам элемента: их не нужно передавать в качестве аргументов функции.

В следующем примере функции paint() передается worklet под названием myComponent.

li {
  background-image: paint(myComponent, stroke, 10px);
  --highlights: blue;
  --theme: green;
}

Примечание: С большой силой приходит большая ответственность! С помощью Houdini вы могли бы изобрести собственную реализацию макета, сетки или областей, но это не обязательно лучшая идея. Рабочая группа CSS прилагает много усилий, чтобы гарантировать, что каждая функция обладает производительностью, обрабатывает все граничные случаи и учитывает безопасность, конфиденциальность и доступность. При расширении CSS с помощью Houdini помните об этих аспектах и начинайте с малого, прежде чем переходить к более амбициозным проектам.

API Houdini

Ниже вы найдёте ссылки на основные страницы справки, посвященные API, относящимся к Houdini, а также ссылки на руководства, которые помогут вам в изучении их использования.

API свойств и значений CSS

Определяет API для регистрации новых свойств CSS. Свойства, зарегистрированные с помощью этого API, снабжены синтаксисом парсинга, определяющим тип, поведение наследования и начальное значение.

  • Справочник по API свойств и значений CSS
  • Руководство по API свойств и значений CSS
  • Умные пользовательские свойства с новым API Houdini

CSS Typed OM

Преобразование строк значений CSSOM в осмысленные типизированные представления JavaScript и обратно может вызвать значительные накладные расходы на производительность. CSS Typed OM предоставляет значения CSS в виде типизированных JavaScript-объектов для их эффективной обработки.

  • Справочник по CSS Typed OM
  • Руководство по CSS Typed OM
  • Работа с новой объектной моделью CSS Typed Object Model

API отрисовки CSS

Разработанный для повышения расширяемости CSS, API отрисовки позволяет разработчикам писать JavaScript-функции, которые могут непосредственно отрисовывать фон, границу или содержимое элемента с помощью функции paint() CSS.

  • Справочник по API отрисовки CSS
  • Руководство по API отрисовки CSS
  • API отрисовки CSS
  • API отрисовки CSS
  • Имитация теней с помощью API отрисовки CSS
  • API отрисовки CSS, предсказуемо случайный

Worklet

API для запуска скриптов на различных этапах конвейера рендеринга независимо от основной среды выполнения JavaScript. Worklet концептуально похожи на Web Workers и вызываются и расширяют движок рендеринга.

  • Справочник по Worklet

API макета CSS

Разработанный для повышения расширяемости CSS, этот API позволяет разработчикам создавать собственные алгоритмы макета, такие как макеты или привязка к строкам.

Этот API частично поддерживается в Chrome Canary. Он пока не документирован на MDN.

API парсера CSS

API, обеспечивающий более прямой доступ к парсеру CSS для парсинга произвольных языков, похожих на CSS, в слабо типизированное представление.

Этот API в настоящее время является предложением и не имеет реализаций в браузерах или документации на MDN.

  • Предложение

API метрик шрифтов

API, предоставляющий доступ к метрикам шрифтов и позволяющий получить результаты типографского макета.

Этот API в настоящее время является предложением и не имеет реализаций в браузерах или документации на MDN.

  • Предложение

См. также

  • Библиотека Worklet для примеров и кода.
  • Интерактивное введение в Houdini
  • Houdini готов?

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Houdini_APIs

Spec-Zone.ru

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