Микрофронты: на чём я попался

Первый модульный микрофронтовый проект. Есть требования по минимизации трафика от сервера до клиента, создаваемого фронтом. Говоря проще: фронт должен тащить как можно меньше, кешировать как можно больше.

Я архитектор фронтовой части и ведущий разработчик. Есть время и место для маневров на эксперименты. Я не очень люблю писать стили, т.к. это либо оверхед именований, либо помойка тавтологий, либо высокая когнитивная нагрузка. Особенно, когда scoped нельзя (помним про минимизацию и кеширование). Что приходит нам на помощь? Правильно - какая-то css-либа. Первично дедушка текущего проекта писался с помощью Bulma. Неплохо, но раздражающая меня семантика и длинные имена классов. Надо что-то новое. Tailwind - модное, шумное странное: ну вы совсем куку стали писать класами? Чем это от style отличает... Ах вон оно как...

В общем я пал жертвой утилитарных классов. Это реально как горький шоколад и маслины: нужно дорасти и попробовать. Это не панацея и безусловно создаёт свои проблемы, но это удобно. Как минимум - это удобно на верстки форм и страниц.

В общем перенёс я все на TW. Красиво, удобно... Но не обеспечивает переиспользование. Ну т.е. каждый модуль системы тащит свою пачку стилей. В том числе повторяющихся. Не может из коробки TW делать стили инкреметными или объединенными. Один модуль - одна пачка стилей. Так же он очень неохотно размещает в бандл запасные стили. Ну и вести список всего, что там могут понаиспользовать разработчики...

В общем TW, микрофронты и объединение стилей - это больно. По крайней мере три года назад было больно.

Так и родился проект статичных утилитарных стилей, похожий на TW, но умеющий работать с микрофронтами. Да - тащит за тобой всю либу всегда - это дикий оверхед классов относительно того, что используется. Но это кешируется и модули успешно это используют.

Скоро допилю доку на vitepress и можно будет красиво посмотреть как и что там делается.

https://github.com/yudinmaxim/ustatic-css