workspaces). Хочу переписать shared ui библиотеки на Tailwind. Настроил content в конфиге чтобы Tailwind видел классы в установленом пакете. Проблема в том что я не пойму как настроить префиксы. Я не хочу чтобы случались конфиликты (то есть проект использует свой префикс, библиотека свой, также планируется shared префикс один для всех). Как я могу это реализовать?
Никак. Зачем тебе префиксы?
В монорепе все просто до опупения - просто наследуешь конфиг и в content указываешь как сурсы ui либы, так и сурсы приложения. Не надо ничего собирать, это путь в никуда (как собранные классы подклеивать к приложению?)
мне нужны префиксы для изоляции стилей) у приложения может быть своя дизайн система, я не хочу чтобы компоненты насоедовали от нее значения а собранные классы можно подклеить через обычный импорт стилей либы по идее проблема в том ято действительно для просто шаред юай либы этого и не нужно, но у меня их насколько, для разных групп проектов и не нужно чтобы они конфликтовали и ты все очень прям чётко предугадал на самом деле, прям по порядку все к чему я шел) и да я пока пришёл к сборке отдельной либы и импорта стилей итоговых, но думаю у этого есть проблемы, у меня вопрос не радует ли это в два раза размер стилей, пока ещё не понял на счет разработки в деве не беда, просто также запускается дев для либы где вотчатся изменения и при изменениях происходит перебилд либы, все очень быстро так как либа обычная и модно использовать любой мега быстрый маленький инструмент для бандлинга уверен это все можно как-то обыграть, но вот как :)
Это Маня-изоляция, не ломай себе DX. Ну и у приложения не может быть своей дизайн-системы, это всегда отнаследованная от общей. Либо без изменений, либо изменения везде. Иначе кринж. Дизайн система есть дизайн-система, твоя юай либа ее реализует, дальше наследуешься и танцуешь. Если у приложения другая дизайн-система - ну, твоей либы там просто не будет. Два вотча - поломанный DX и не нужны. Со временем это будет все больнее. Нужно не эмулирование маня-внешней библиотеки, а интеграция исходников
Про стили - любая маня-изоляция - дублирование, без дублирования не обойдешься. Без дублирования только отсутствие этой изоляции. Есть layers, но они не то и не про то, твоим хотелкам маня-изоляции не поможет
может использоваться две дизайн системы, в моем кейсе у меня как-бы превью сайта рендерится на сайте (визуальный редактор сайта) у самого редактора общие дизайн токены для продуктов, а для самого настраиваемого сайта другие, кастомные, генеративные, плюс есть также общие компоненты для этого редактируемого сайта на своих дизайн токенах короче нужно избегать конфликтов чтобы условно в редакторе превью сайта, использующее свои дизацн токены не пересекались с самим редактором а в целом все дизайн токены просто перебираются и вставляются в дом в виде ЦСС (с кастомным хешем) переменных, а также испоьзуются в настройке темы tailwind
и окей а что мне делать если я захочу вообще вынести ui либу в пакет, как мне это все связывать
Так сделай реальную изоляцию :) Shadow dom / iframe / четоеще
Это точно поддается автоматизации, лучше потрать на это время, чем руками префиксы дрочить
Еще куда можешь копнуть - таилвинд работает на ксс переменных. Наверняка есть какой-то способ просто переопределять эти переменные на каком-то блоке
Ну, не руками месить, а как-то полуавтоматически
не с ними слишком много ньансов
Я таки преисполнился. Да, у тебя два разных приложения с разной дизайн системой, тебе нужно делать дизайн-систему конструктора по-другому, на ксс ин жс (панда ксс как пример нормальной тулзы). Я бы делал не на таилвинде, он форсит единую систему и это слишком дорого обходить. Физическая изоляция хз возможна ли, хз че с переменными, хз как подрубать и дружить 2 системы и прочее. Про префиксы молчу - кринж
Да и вообще сам конструктор выносить как отдельную внешнюю хрень. Не вижу других адекватных вариантов, кроме ксс ин жс. Но мб кто-то другой жонглировал и таки понял, как можно на два стула сесть
я уже СЕЛ походу нашел решение все очень хорошо получилось не знаю нормально ли но гуд и по DX и по размеру стилей все отпад и префиксы работают
CSS in JS был, с него и переписыаю не подходит
можно писать статью пхпххп потому-что реально инфы нольб пришлось куча исходников либ перекопать разных
Можешь :) Тема интересная имхо
не имхо, а объективно!
Обсуждают сегодня