Урок 49. Справочник: Оптимизация и производительность

📁 Раздел: Качество вёрстки ⏱️ Время изучения: ~85 мин 🎯 Сложность: Продвинутая
#loading #picture #font-display #will-change

⚡ Кратко

Инструменты урока: Critical CSS, минификация, PurgeCSS, Lighthouse, Core Web Vitals (LCP/CLS/INP), loading="lazy", font-display, will-change и понимание reflow/repaint.

Дёшево vs дорого: какие свойства анимировать

Главное правило плавных анимаций — трогать только дешёвые свойства (этап Composite). Вот карта стоимости:

✅ Дёшево (Composite, GPU) • transform: translate / scale / rotate • opacity Не вызывают reflow и repaint — держат 60 FPS даже на мобильном ⚠️ Дорого (Layout / Paint) • width, height, top, left, margin • color, background, box-shadow Запускают reflow (геометрия) или repaint (пиксели) на каждом кадре
Анимируй левую колонку. Если нужен эффект движения/размера — используй transform вместо top/width.

Справочник урока

Приём / инструментЗачем нуженМини-пример
Critical CSSCSS первого экрана инлайн — рендер не ждёт всей таблицы стилей<style>.hero{padding:2rem}</style>
минификацияТот же CSS без пробелов/переносов — меньше байтовstyles.min.css
PurgeCSSУдаляет неиспользуемые селекторыpurgecss --css styles.css --content "*.html"
loading="lazy"Откладывает загрузку картинок ниже сгиба<img loading="lazy">
<picture> / WebP / AVIFСовременные форматы — меньше вес при том же качестве<source type="image/avif">
font-displayПоказать текст сразу, не дожидаясь шрифтаfont-display: swap;
will-changeПодсказка браузеру вынести элемент на слой (применять точечно!)will-change: transform;
LighthouseАудит производительностиDevTools → Lighthouse → Analyze
Core Web VitalsРеальные метрики UX: LCP, CLS, INPweb.dev/vitals
reflowПерерасчёт раскладки (дорого)width, height, top, margin
repaintПерерисовка без перераскладкиcolor, background, box-shadow
will-change осторожно: не вешай на десятки элементов «про запас» — каждый слой ест видеопамять. Ставь только на то, что реально анимируется, и по возможности убирай после.

Навигация