Что производительнее: CSS-модули или CSS-in-JS

«Что производительнее: CSS-модули или CSS-in-JS» — вопрос из категории CSS, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

CSS Module обычно загружается быстрее, чем CSS-in-JS.

Причины:

  1. CSS Module генерирует обычный .css файл, который браузер парсит и применяет сразу после загрузки.
  2. CSS-in-JS требует выполнения JavaScript для генерации стилей, что добавляет задержку (FOUC — Flash of Unstyled Content).

Пример:

/* styles.module.css */
.button {
  background: blue;
}
// Component.js
import styles from './styles.module.css';
const Button = () => <button className={styles.button}>Click</button>;

В CSS-in-JS (например, styled-components):

const Button = styled.button`
  background: blue;
`;

Здесь стили применяются только после выполнения JS.

Итог: CSS Module быстрее, особенно на слабых устройствах.