One interesting thing you could do, given both Garden and ClojureScript, is package CSS frameworks like Twitter Bootstrap or Zurb Foundation as a Clojure library. I am sorely tempted to give this a try.
On Thu, Apr 25, 2013 at 6:12 PM, Joel Holdbrooks <cjholdbro...@gmail.com> wrote: > Murtaza, > > Thanks for having a look at the library. I'll try to answer you questions as > best as I can. > > > How does Garden compare to other pre processors such as sass and less? > > There are some similarities with Garden and other CSS preprocessors. I've > tried to bring over the ones I found most useful when using them. Nested > selectors and declarations, parent selector references, and unit arithmetic > are all currently available to stylesheet authors. > > The big difference and, in my opinion, the big win is you can build your > stylesheets with regular Clojure. This gives you a lot of power and freedom > you won't find anywhere else (AFAIK). To name just a few benefits: > > There's no file parsing or interpretation step. It's just data > transformation. > There's no need for any sort of special @mixin syntax or macros, you can use > Clojure function. > There's no need for an @include directive thanks to clojure namespaces. This > can help you organize your stylesheet in ways (I think) are much cleaner and > less surprising than SASS and other preprocessors. > Thanks to Clojure, Garden (potentially) has clearer syntax than CSS which, > if you look closely, can be pretty random in some places. > > WIth regard to the third point, if you've ever tried using the SMACSS > approach to stylesheet authoring with a preprocessor like SASS, you can end > up with an explosion of files and tons of @include directives. It's not fun, > it's hard to manage, and it's difficult to see where code is coming from - > especially when using 3rd-party libraries. > > Also can I use it in my clojurescript projects ? I mean does it have any > java lib dependencies that would prevent it? > > It does have one small dependency on java.net.URI but I need some time to > think about whether or not it would be worth dropping. As far as using it > from a ClojureScript project, what sort of use case are you considering? > > What is the workflow when using Garden? > > My experience using Garden is probably close to others at this point. It's > kind of funny in that regard. I'm building a tool and at the same time am > learning how to use it. Personally, I create a namespace for my "core" > stylesheets and separate namespaces for things like utilities and so forth > (ie. (ns me.css (:require [me.css.button :as button])) . Then I have a call > to function that compiles and saves the stylesheet at the bottom of the > "core" stylesheets. Since I develop with Emacs and nREPL this means all I > have to do is reload the file and the CSS is "refreshed". > > It isn't the best approach, but Garden is still very young and I haven't > thought about how a standardize the build process. But I would definitely be > open to any thoughts regarding that. A Leiningen plugin would be awesome! > > > I hope these answers are helpful. Please continue to experiment with the > library and express your thoughts! > > Thanks, > > Joel > > > On Wed, Apr 24, 2013 at 6:44 PM, Murtaza Husain > <murtaza.hus...@sevenolives.com> wrote: >> >> Joel, >> >> Thanks for the lib. Its great and I plan to use it in my projects. >> >> How does Garden compare to other pre processors such as sass and less ? >> >> Also can I use it in my clojurescript projects ? I mean does it have any >> java lib dependencies that would prevent it? >> >> What is the workflow when using Garden ? If I am using Sass, I would >> create a .scss file, and the sass daemon would watch over any changes to the >> file and compile it to .css. >> >> As I understand garden is generating css when called with the fn/macro >> (css [...]). Would it make sense to have a similar workflow like above; >> where a leiningen plugin watches for any .garden files and compiles them to >> .css files ? Or is there a better workflow that I am missing? >> >> Thanks, >> Murtaza >> >> >> On Tuesday, April 23, 2013 2:42:55 AM UTC+5:30, Joel Holdbrooks wrote: >>> >>> As of today, Garden is officially out of alpha and in to beta! >>> >>> The library now sports media queries (via meta data) and parent selector >>> references (ie. "&hover"). With these new features it is now possible to >>> build more sophisticated stylesheets bringing us a step closer to having a >>> viable CSS alternative in Clojure. >>> >>> Over the course of the next few weeks, I plan to continue improving the >>> library by adding "missing" features and functions to make the library as >>> powerful as possible when it's release as 0.1.0 stable. >>> >>> Now more than ever, I would like to encourage others in the community to >>> reach out with suggestions and code review. This my first "real" Clojure >>> library and after only six months with the language I'm sure it could >>> benefit greatly from both of these things. >> >> -- >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "Clojure" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/clojure/xbFU2prTxlY/unsubscribe?hl=en. >> To unsubscribe from this group and all its topics, send an email to >> clojure+unsubscr...@googlegroups.com. >> >> For more options, visit https://groups.google.com/groups/opt_out. >> >> > > > > > -- > > Joel > > -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.