                [[] [[] [] 1]]))]
     [(->> (interleave ks statics)
           (apply str))
-     vals]))
+     `(cljs.core/array ~@(map (fn [v] `(cljs.core/array ~@v)) vals))]))
 
 (defmacro defkeyframes
   "Takes var name, a vector of arguments and a hash map of CSS keyframes definition.

        [id static values] (build-styles styles)
        values (vals->array values)
        attrs (->> styles vals (filterv keyword?))]
    [tag id static values attrs]))

(defmacro make-styled []
  '(defn styled [cls static vars attrs create-element]
     (fn [props & children]
       (let [[props children] (if (map? props) [props children] [{} (apply vector props children)])
             var-class (->> vars
                            (map (fn [[cls v]]
                                   (cond

                                                    [(nth args idx) value]))
                                     (mapcat identity)
                                     ((fn [coll] (concat coll [:else (get styles rule)]))))))
                      (list ~@(mapv second states)))])))
         (into {})
         (merge styles)
         (#(apply dissoc % sprops)))))
