-
Notifications
You must be signed in to change notification settings - Fork 0
/
components.cljs
37 lines (31 loc) · 1.23 KB
/
components.cljs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
(ns rui.icons.components
(:require
[ccn.core :refer [css-class bem]]))
(defn fa
"Returns Font Awesome icon by a given `fa-name`. Set `spin?` to `true` then an icon will spin.
Kwargs:
:modifiers - BEM modifiers
:attrs - a map of attributes to override element's attributes"
([fa-name]
[fa fa-name false])
([fa-name spin?]
(fa fa-name spin? nil))
([fa-name spin? & {:keys [modifiers attrs]}]
[:i (merge {:class (css-class (bem "fa" modifiers) (str "fa-" fa-name) (when spin? "fa-spin"))}
attrs)]))
(defn icon-label
"Wraps an icon and label together. You this component when you need to align an icon and label.
Kwargs:
:modifiers - BEM modifiers"
[icon label & {:keys [modifiers]}]
[:span {:class (bem "icon-label" modifiers)}
[:span {:class (bem "icon-label" "icon" [])} icon]
[:span {:class (bem "icon-label" "label" [])} label]])
(defn label-icon
"Wraps a label and an icon together. You this component when you need to align a label and icon.
Kwargs:
:modifiers - BEM modifiers"
[label icon & {:keys [modifiers]}]
[:span {:class (bem "label-icon" modifiers)}
[:span {:class (bem "label-icon" "label" [])} label]
[:span {:class (bem "label-icon" "icon" [])} icon]])