This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-05-29
Channels
- # aleph (4)
- # architecture (12)
- # bangalore-clj (1)
- # beginners (87)
- # boot (3)
- # cider (19)
- # cljs-dev (84)
- # clojars (10)
- # clojure (76)
- # clojure-italy (7)
- # clojure-nl (19)
- # clojure-russia (10)
- # clojure-spec (9)
- # clojure-uk (55)
- # clojurescript (64)
- # core-async (7)
- # core-typed (4)
- # cursive (7)
- # data-science (2)
- # datomic (8)
- # devcards (6)
- # docs (1)
- # duct (5)
- # fulcro (117)
- # graphql (1)
- # instaparse (1)
- # leiningen (13)
- # lumo (103)
- # nyc (3)
- # off-topic (54)
- # om (9)
- # onyx (1)
- # pedestal (6)
- # planck (3)
- # portkey (7)
- # re-frame (26)
- # reagent (20)
- # ring-swagger (14)
- # shadow-cljs (164)
- # sql (11)
- # tools-deps (25)
- # yada (1)
Всем привет! Может подскажете решение по cljss. Суть проблемы: мы юзаем для нашего UI на реагенте реактовую либу material-ui. Соответственно, кое-что приходится кастомизировать посредством cljss/defstyles. Логика такая, что cljss для наших стилей создает уникальные css классы, которые собираются в один тег <style> и инжектятся head страницы. Ровно то же самое делает и material-ui, то есть для каждого компонента генерит <style> и пихает его в head. И получается так, сначала идет наш тег style, а потом mui и стили material-ui перекрывают наши. Короче говоря эффект обратный…
Чаще всего в ui-фрейворках миллионы классов/поклассов - поэтому в прошлом проекте мы переписывали через !important
Это только кажется что !important - так себе. На самом деле !important так себе если свои стили ты этим перетираешь, потому что структуры нет никакой.
можно конечно повторить классы .my-class.my-class.my-class
чтобы повысить специфичность - но это та самая безструктурность
А так надо пытаться оборачивать компоненты в свои див-ы, и туда прописывать cljss. Если не получается - спускаться до !important
Правильней всего - использовать theming: обычно можно добыть сорцы в SCSS/Stylus, и они экспозят свои переменные, и собирать это через вебпак(например). Но у меня сейчас в проекте shadow-cljs, без вебпака (думаю что надо будет прикрутить), поэтому ручками переписываю стили фреймкорка в main.css. А, material-ui, оказывается можно в js theming прописывать. Если годится для задачи, то надо их апи использовать