From ab4fc2af33ea7ec0292e901ee26aad4346bd7c74 Mon Sep 17 00:00:00 2001 From: Geoffrey Gaillard Date: Fri, 23 Aug 2024 14:48:42 +0200 Subject: [PATCH] [css] support for keywords as css values e.g. {:background-color :red} --- src/hyperfiddle/electric_css3.cljc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hyperfiddle/electric_css3.cljc b/src/hyperfiddle/electric_css3.cljc index 9c59dd6b5..b4c97e557 100644 --- a/src/hyperfiddle/electric_css3.cljc +++ b/src/hyperfiddle/electric_css3.cljc @@ -74,6 +74,7 @@ (set-property [this key value])) (defn to-str [x] ((if (keyword? x) name str) x)) +(defn css-compatible-value [x] (if (keyword? x) (name x) x)) #?(:cljs (extend-protocol StyleRule @@ -87,7 +88,8 @@ (set-property [^js this key value] (set-property (.-style this) key value)) js/CSSStyleDeclaration (set-property [^js this key value] - (let [key (to-str key)] + (let [key (to-str key) + value (css-compatible-value value)] (if (str/starts-with? key "--") ; CSS variable (.setProperty this key value) (when-some [property (goog.style/getVendorJsStyleName_ js/document.body key)] ; normalize property names