Внедрение критических стилей и разделение CSS по шаблонам
Текущая ситуация
Есть глобальный файл
style.css, который содержит все стили сайта.Реализована возможность инлайнить критические стили (
critcss) в HTML.Весь CSS грузится на всех страницах, даже если значительная часть стилей не используется.
Что нужно сделать
Выделить глобальные критические стили
Создать
global-critcss.cssс минимальным набором стилей для базовых элементов, видимых на первом экране (header, общая сетка, базовая типографика).Этот файл инлайнится на всех страницах.
Выделить критические стили для разных шаблонов
Для каждого шаблона (главная, статья, каталог и т.д.) сделать свой файл критических стилей:
template-home-critcss.csstemplate-article-critcss.csstemplate-catalog-critcss.css
Эти файлы будут инлайнится после
global-critcss.cssв зависимости от шаблона.
Разделить полный CSS на базовый и шаблонные файлы
Сохранить
style.cssкак базовый файл с общими стилями, которые используются на всех страницах:базовая типографика,
глобальные сетки и layout,
общие UI-элементы,
header, footer, навигация, формы, переменные, сквозные блоки
Создать отдельные CSS для уникальных стилей каждого шаблона:
template-home.csstemplate-article.csstemplate-catalog.css
В шаблонных файлах только уникальные стили блоков, которые не используются на других страницах.
Логика подключения
При генерации HTML:
Inline:
global-critcss.cssInline:
template-XXX-critcss.css(если есть для шаблона)Async preload:
style.cssAsync preload:
template-XXX.css(если есть для шаблона)





