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.