Спойлер.
Это вы видите normalize.css в самом конце вывода CSS:

И, ну, это тоже я, я был этим удивленным желтым парнем.
Как мы туда попали?

Наш текущий стек приложений включает Webpack, React и некоторые другие современные навороты. Каждый презентационный компонент React (тупой компонент) импортирует соответствующий файл CSS через конвейер SASS - PostCSS:

В корневой каталог «app.js» мы импортировали наш основной CSS следующим образом:

main-style.scss - это набор дополнительных стилей @imports и основных стилей, который выглядит следующим образом:

В один прекрасный день я запутался, получив цвет / размер шрифта / любой другой элемент заголовка, который, естественно, отличался от ожидаемого.

Копнув глубже, я пришел к вышеупомянутому открытию, которое меня поразило. Примерно пару месяцев мы используем основные стили, а также утилиты. Не только это, но и весь ожидаемый порядок CSS был полностью изменен. Организмы прежде, чем молекулы, прежде чем атомы, если вы понимаете, о чем я.

Самое интересное, что это просто сработало! благодаря продуманной архитектуре CSS, БЭМ и Styleguide.

Но в любом случае это была ошибка, и ее нужно было исправить.

Внимательный читатель мог заметить зависимость router, используемую в app.js. В принципе, это может быть что угодно, мы используем React Router.
Как это связано?

Проблема с Webpack:



И решение:



Последний просто говорит поместить импорт CSS перед маршрутизатором. Это решает проблему, ура! Мы тоже. Спасибо за чтение.

Есть что-то еще? Абсолютно!

Зная, что CSS, импортированный после Router, всегда будет в конце вывода, мы скорректировали включение стилей, чтобы утилиты могли занять нужное место:

Хотите узнать больше о сложной архитектуре CSS?
Следите за обновлениями;)