 (defn ui-avatar
   "Render an icon or a short string within an avatar. Normal HTML/React attributes can be included, and should be a cljs map (not a js object).
 
-  color (optional): :primary, :accent
-  size (optional): huge"
+  `:color` - :none (default), :primary, :accent
+  `:size` - :regular (default), huge"
   [{:keys [className color size style] :as props :or {className ""}} child]
   (let [legal-colors #{:primary :accent}
         legal-sizes  #{:medium :large :xlarge :huge}

           ;; menu-icon
           ;; menu-items
           className] :as attrs} & children]
  {:pre [(or (nil? type) (keyword? type))
         (or (nil? title) (string? title))]}
  (let [className  (or className "")
        classes    (cond->
                     (str "c-card " className)
                     type (str " " (card-types type))
                     size (str " " (size-types size))
                     color (str " " (color-types color)))
        attributes (-> attrs
                     (merge {:className classes})
                     (dissoc :title :type :color :size :actions :image :image-position :media-type :media)
                     clj->js)]
    (dom/div attributes
      (when media
        (dom/div #js {:className (str "c-card__media")}

            (when content content)
            (when actions actions)))
        (dom/div #js {:className (str "c-backdrop" state)})))))

(def ui-modal
  "Render a modal. Normal HTML/React attributes can be included, and should be a cljs map (not a js object).
