-
Notifications
You must be signed in to change notification settings - Fork 0
/
kushi.edn
158 lines (126 loc) · 6.86 KB
/
kushi.edn
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
{
;; REQUIRED
;; Needs to be a path to a dir
:css-dir "public/css"
;; OPTIONAL
;; Misc --------------------------------------------------------------------
;; Filename will default to `kushi.css`, unless you provide a specific name.
:css-filename nil
;; User theme - this should be a fully qualified symbol to a theme config
;; map e.g. 'my-project.theme/my-theme
:theme starter.theme/user-theme
:caching? false
;; Usually would be the id of the "app" container, e.g "#app".
:selector-prepend nil
;; A typical override for this (for narrowing) would be the id of
;; the "app" container, e.g "#app". Defaults to ":root"
;; TODO - example comment to show both above in resulting css file.
:design-tokens-root nil
:data-attr-name :sx
;; Responsive breakpoint scale, which must be a vector of kwargs, not a map.
;; The default scale that takes effect if you don't provide one:
;; :media [:xsm {:min-width :480px}
;; :sm {:min-width :640px}
;; :md {:min-width :768px}
;; :lg {:min-width :1024px}
;; :xl {:min-width :1280px}
;; :xxl {:min-width :1536px}]
;; Example scale that would be "desktop-first", because the size
;; goes from largest to smallest.
;; :media [:2xl {:max-width :1536px}
;; :xl {:max-width :1280px}
;; :lg {:max-width :1024px}
;; :md {:max-width :768px}
;; :sm {:max-width :640px}]
;; Runtime injection ---------------------------------------------------------
:inject-at-runtime-prod? false
:inject-at-runtime-dev? true
;; For leaving things out of css --------------------------------------------
:add-stylesheet-prod? true
:add-stylesheet-dev? true
:add-css-reset? true
:add-design-tokens? true
;; If :add-kushi-ui-theming? is set to false, it will not include theming
;; classes for for kushi.ui components such as buttons, tags, etc.
:add-kushi-ui-theming? true
;; If :add-kushi-ui-theming-defclass? is set to false, it will not include
;; defclasses for kushi.ui components (these are defined internally from
;; namespaces within kushi.ui). You probably do not want to disable this
;; unless you are developing on kushi itself.
:add-kushi-ui-theming-defclass? true
;; Set this to false to leave out dark theme variants for kushi.ui related
;; classes.
:add-kushi-ui-dark-theming? false
;; Set this to false to leave out light theme variants for kushi.ui related
;; classes.
:add-kushi-ui-light-theming? true
;; Set this to false to leave out user theme-related classes
;; TODO - provide examples of what is leaves out
:add-ui-theming? true
;; Set this to false to leave out all of kushi's built-in utility classes
;; TODO - provide examples of what is leaves out
:add-kushi-defclass? true
;; Set this to false to leave out all of kushi's built-in utility classes,
;; override versions.
:add-kushi-defclass-overrides? true
;; Set this to false to leave out any shared classes created by the user via
;; the defclass macro You probably do not want to disable this unless you
;; are developing on kushi itself.
:add-user-defclass? true
;; Set this to false to leave out any shared classes (override versions)
;; created by the user via the defclass macro.
;; You probably do not want to disable this unless you are developing on
;; kushi itself.
:add-user-defclass-overrides? true
;; Set this to false to leave out any styling classes created by the user
;; via the sx macro. You probably do not want to disable this unless you are
;; developing on kushi itself.
:add-user-sx? true
;; You can explicitly elide support for `kind` and `semantic` variants of
;; certain kushi.ui components. By default, support for all these variants
;; is included in the css, so narrowing it will reduce the amount of default
;; theme-related styles that gets included in the css.
;; The components that use `kind` and `semantic` variants are:
;; kushi.ui.button.core/button
;; kushi.ui.tag.core/tag
;; elide-ui-variants-semantic can include the following keywords:
;; :accent :negative :warning :neutral :positive
:elide-ui-variants-semantic #{}
;; elide-ui-variants-style can include the following keywords:
;; can include :bordered :minimal :filled
:elide-ui-variants-style #{}
;; Setting :elide-unused-kushi-utility-classes? to true will only include
;; kushi utility classes that are explicitly used within the sx macro.
;; This will reduce the amount of css in the output.
;; This means that only the following syntax examples will result in the
;; utility class being written to your css file:
;; [:div (sx :.absolute) "hi"]
;; [:div (sx (when x :.absolute)) "hi"]
;; [:div (sx {:class [:absolute]}) "hi"]
;; Note that with this option on, the following examples cannot be
;; guaranteed to work:
;; [:div.absolute "hi"]
;; [:div {:class [:absolute]} "hi"]
:elide-unused-kushi-utility-classes? false
;; If you have :elide-unused-kushi-utility-classes? set to true, you can add
;; specific kushi utility classes to `:kushi-utility-classes-to-always-add `
;; in order to ensure they are always written. The value must a set. Any
;; values that are not strings or keywords will be discarded. Remaining
;; values will be stringified, bookended with "^" and "$" and passed to
;; clojure.core/re-pattern. The "flex-.+" example below demonstrates how to
;; included "families" of kushi utility classes.
;; #{:xxxtight "flex-.+" "heavy"} => {#"^xxxtight$" #"^flex-.+$" #"^heavy$"}
:kushi-utility-classes-to-always-add #{}
;; Build process logging -----------------------------------------------------
:log-build-report? true
:log-build-report-style :simple ;; :simple | :detailed
:log-kushi-version? true
:log-updates-to-cache? false ;; not yet documented
:log-cache-call-sites? false ;; not yet documented
:log-relevant-specs? false ;; not yet documented
;; log-warning-banner is a vector of strings that makes an asci-art banner
;; above warnings. You can use this if you want to draw more attention
;; to the terminal when there is a problem/warning. This is optional, but
;; perhaps useful in helping your catch malformed style arguments to `sx`.
:log-warning-banner nil
}