[ClojureScript] Re: ClojureScript CSS-in-JS Solutions

2017-04-20 Thread rgdelato
styled-classnames has now been merged into CLJSJS and is up on Clojars:

https://github.com/rgdelato/styled-classnames
https://clojars.org/cljsjs/styled-classnames

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: ClojureScript CSS-in-JS Solutions

2017-03-18 Thread Dan Vingo
I'd also recommend checking out radium:

https://github.com/FormidableLabs/radium

It's an inline style higher-order component for react.

It supports media queries, pseudo-selectors like :hover, keyframe animations, 
does vendor prefixing for you, and supports server side rendering. It will also 
merge an array of objects intelligently, as well as filtering any falsy 
elements so you can easily compose styles based on the component's state.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: ClojureScript CSS-in-JS Solutions

2017-03-17 Thread rgdelato
I definitely agree with your last point: `styled-components` includes PostCSS 
and is huge as a result. (I might be wrong, but I remember it being larger than 
20KB gzipped.) They're switching to a smaller parser for v2, but at the moment, 
it's a lot.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: ClojureScript CSS-in-JS Solutions

2017-03-17 Thread Thomas Heller
On Thursday, March 16, 2017 at 6:55:44 PM UTC+1, rgde...@gmail.com wrote:
> Thanks for pointing me to your library and to the other thread, I'll take a 
> look!
> 
> In general, I disagree that a string-based solution is strictly worse than a 
> map-based solution, since using strings can help the library remain 
> evergreen. If the library can inject strings that use "real" CSS with little 
> or no parsing, it means that it'll be more likely to support new CSS syntax 
> without needing any updates.
> 
> It also means that current CSS syntax weirdnesses such as pseudoclasses 
> (:hover, etc) and queries (@media, @supports) work how you'd expected them to.

It makes more sense to use strings in JS since you can't achieve what I'm doing 
without more work there. JS doesn't have keywords so it can't differentiate 
between properties and selectors in objects as easily.

You will still use strings for selectors so media queries or pseudoclasses just 
work, property values default to strings as well.

But the most important part is: It is all just Clojure code. Your Clojure tools 
just work. You can call functions, you can merge styles from different parts. 
Good luck doing this with strings.

FWIW styled-components adds 20KB (min, gzip'd) since it requires a CSS parser 
at runtime. It's hard to measure shadow.markup due to :advanced but it much 
less than that, probably 10%.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: ClojureScript CSS-in-JS Solutions

2017-03-16 Thread rgdelato
Thanks for pointing me to your library and to the other thread, I'll take a 
look!

In general, I disagree that a string-based solution is strictly worse than a 
map-based solution, since using strings can help the library remain evergreen. 
If the library can inject strings that use "real" CSS with little or no 
parsing, it means that it'll be more likely to support new CSS syntax without 
needing any updates.

It also means that current CSS syntax weirdnesses such as pseudoclasses 
(:hover, etc) and queries (@media, @supports) work how you'd expected them to.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.