I wrote about this recently [1] [2].

(ns my.demo
  (:require [shadow.markup.css :as css :refer (defstyled)]))

(defstyled page-title :h1
 [env]
 {:color "red"
  "&:hover"
  {:color "green"})


As I mentioned the API is very much inspired by styled-components although I 
think template-literals is strictly worse. So instead I used simple clojure 
maps where keywords keys refer to CSS properties and string keys refer to 
scoped CSS selectors (see details in [2]).

I'm using this in production and so far I'm very happy with it, slowly 
migrating all my code towards it. Several other people in [1] also mention 
alternate approaches that you might want to look into.

Happy to answer questions about shadow.markup either here or in Slack 
(@thheller).

Cheers,
/thomas


[1] https://groups.google.com/d/msg/clojurescript/sc-0hukwfpw/v_j8rkeOCAAJ
[2] https://github.com/thheller/shadow/wiki/shadow.markup


On Thursday, March 16, 2017 at 7:42:19 AM UTC+1, [email protected] wrote:
> Hello there!
> 
> I wasn't able to find a CSS solution for ClojureScript that scopes your CSS 
> to a component, but that also lets you write real CSS (think CSS Modules and 
> styled-components in JS-land).
> 
> So I'm looking into porting over `styled-classnames` (which is a spinoff of 
> `styled-components`) over to cljs, though since `styled-components` uses 
> tagged template literals, I wasn't 100% sure what to do with the API. Here's 
> is what I have so far:
> 
> https://cl.ly/290W3O102u2b (image also attached)
> 
> I'd love to get some thoughts from more experienced clojurians about 1) 
> whether or not there's already a solution that meets my needs and 2) if not, 
> whether or not this "string-interpolation-string" API has any obvious 
> problems. (I'm still fairly new to Clojure, so it's quite possible I'm not 
> seeing something obvious.)

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/clojurescript.

Reply via email to