一直用 clj(s) 写程序, 就差 css 没有用 clojure 了, 有谁在实际项目中使用过
garden 吗? 体验如何, 有什么好处?
使用 Garden 写 CSS 有什么好处?
xhh
#2
感觉跟 hiccup => HTML 的情况差不多。使用 hiccup/garden 就是在写 Clojure 代码,所以 Clojure 的功能都可以用。
对于 hiccup,使用 for
, 函数参数和调用比其他模版工具要灵活很多。
对于 garden,定义常量(例如按钮颜色值)和 garden 提供的一些工具是纯 CSS 做不到的,但是像 SASS, LESS 这些 CSS 预处理器可以做到。
garden 对于一般的 Web 设计师和前端开发者应该不那么容易接受,用基于 Node.js 的工具可能更亲切。如果熟悉 Clojure 我觉得完全可以用,只要你能驾驭的了(能说服自己和其他团队成员花时间和精力熟悉用法)
isaac
#3
我的意思就是他跟 sass, stylus 之类的比较, 而不是 css 本身。
我唯一可以想到的好处就是, (margin-right 42) 给我自动生成一个 margin-right-42 的class。
g770728y
#4
感觉garden不如less等预处理器清晰(重点是:原本熟悉的css语法,在garden中又要从头学一遍,视觉上也没有less那样有熟悉感)。
另外,可以关注一下https://github.com/mhallin/forest,基于css module,有效解决命名冲突问题。不过有些css特性不支持,例如 :active :disabled :hover
等,所以应该更适合一些补充性的场景(所谓补充性的场景示例:以bootstrap css为主,局部样式以forest补充)。
DogLooksGood
#6
可以使用高阶函数,从一些比较抽象的角度来写css。
我觉得语法本身不是关键,sexp倒不比css写着简洁。
(comp (正文版面)
(横版布局)
(图片嵌入 :style :环绕))
(defn 正文版面 [options]
(fn [next-step]
(fn [style]
)))