Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про CSS: vanilla, extract

Что такое Vanilla Extract и чем он отличается от CSS-in-JS?

Вопрос проверяет, понимаешь ли ты современные подходы к стилизации и разницу между runtime- и build-time CSS.

Короткий ответ

Vanilla Extract — это инструмент для написания CSS с помощью TypeScript, который генерирует обычный CSS на этапе сборки. В отличие от классического CSS-in-JS, стили не создаются в рантайме и не требуют выполнения JS в браузере. Это даёт лучшую производительность и типизацию, но меньше гибкости для динамических стилей. По сути, это “типизированный CSS”, а не стили, живущие в JS во время выполнения.

Длинный ответ

Vanilla Extract появился как реакция на проблемы runtime CSS-in-JS.

Определение

Определение: Vanilla Extract — это build-time библиотека, позволяющая писать стили на TypeScript, которые компилируются в статический CSS.

Как работает Vanilla Extract

  1. Стили пишутся в .css.ts файлах

  2. Используются обычные JS/TS-объекты

  3. На этапе сборки:

    • генерируются CSS-файлы

    • в код попадают только className

Пример

// styles.css.ts
import { style } from "@vanilla-extract/css";

export const button = style({
  padding: "8px 12px",
  borderRadius: "6px",
});
<button className={button}>Click</button>

Отличия от классического CSS-in-JS

  1. Время выполнения

    • Vanilla Extract: build-time

    • CSS-in-JS: runtime

  2. Производительность

    • Нет генерации стилей в браузере

    • Нет зависимости от порядка рендеринга

  3. Типизация

    • Полноценный TypeScript

    • Ошибки ловятся при сборке

  4. Динамика

    • Подходит для тем, токенов, вариантов

    • Не подходит для стилей, зависящих от runtime-данных (scroll, размеры DOM)

Вывод

Vanilla Extract — хороший выбор для дизайн-систем и крупных приложений, где важны производительность, предсказуемость и типизация, а не максимальная динамичность стилей.

Уровень

  • Рейтинг:

    3

  • Сложность:

    7

Навыки

  • CSS

    CSS

Ключевые слова

#vanilla

#extract

Подпишись на React Developer в телеграм