hi all
Recently we have been very active at taking ideas from Tailwind and porting them in Clojure via some custom libraries. Those are the libraries I am aware of: • https://github.com/HealthSamurai/macrocss • https://github.com/wilkerlucio/tailwind-garden • https://github.com/green-coder/girouette • https://github.com/mrmcc3/tailwind-clj • https://github.com/mikepjb/sail That’s a pretty good news, as it means that we have • a need for this “utility first” css approach • a lot of like minded developers sharing a purpose • a lot of choice when wanting to use the Tailwind classes
sounds promising ;)
The idea that I had was to coordinate our plans for the future, so that we can collectively improve each of those libraries by discussing design ideas, or eventually to work together on shared projects which could be either extending existing libraries or creating a new one if necessary. I personally love diversity and love to have designs in disagreement with each other as it nurture choice for the end user. That being said, there are also things on which people will agree, and this common discussion is for enabling this later part.
let's discuss details!
if we agree on key decisions - probably it would be better to have one library
we wrote macrocss, because it was missed
absolutely no ambitious to drive this project :)
I suggest that we compile information about each of the libraries in a small description so we can all know in the same way how they all work without having each of us digging in the source code of each of them. After this is done, we may schedule an online meeting to casually discuss about what to do next. We may follow up with a slow and async way to communicate, for instance via a Clojuverse forum.
This kind of information will also be valuable in the project’s “information card” in preparation of our online meeting.
I might not have time to prepare things this week, but that’s the main lines of what I have in mind.
Any feedback is welcome, please join the organization of our meeting actively if you want.
It would be also useful to discuss what could be done to improve how the Tailwind-like libraries can be composed with non-Tailwind-like libraries. I am think for example about using together Ornement and the garden-generating libraries.
[I am offline for the day]
https://github.com/HealthSamurai/macrocss - provides macro (c ....), which generates a class name and integrated with shadow and figwheel. We decided to use data for rules - w-10 => [:w 10]. Each rule is multimethod producing garden. There is rule to pass raw garden: (c [:w 10] {:box-shadow "...}). Instead of hover/focus prefixes you can compose rules like [:hover [:bg ...] [:text ...]]
We decided not to hook into sablono or hiccup - little bit more to write - but no deps from templating
there is no dep from tailwind - user is free to create its own rules
There was idea to use symbols instead of keywords in rules for autocomplete in ide
class names may be based on file/line (good for dev env) or hash from resulting garden (auto-minimization and dedup)
@olimsaidov ping