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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
use crate::ext::*;

// https://tailwindcss.com/docs/aspect-ratio
constant!(aspect auto);
constant!(aspect square);
constant!(aspect video);


// https://tailwindcss.com/docs/aspect-ratio#arbitrary-values
/// aspect-[{}/{}]
pub fn aspect(w: u16, h: u16) -> String {
    format!("aspect-[{}/{}]", w, h)
}

// https://tailwindcss.com/docs/container
constant!(container);

// https://tailwindcss.com/docs/columns
_1_to_12!(columns);
constant!(columns auto);
_3xs_to_7xl!(columns);

any!(columns);

// https://tailwindcss.com/docs/break-after
constant!(break after auto);
constant!(break after avoid);
constant!(break after all);
constant!(break after avoid page);
constant!(break after page);
constant!(break after left);
constant!(break after right);
constant!(break after column);

// https://tailwindcss.com/docs/break-before
constant!(break before auto);
constant!(break before avoid);
constant!(break before all);
constant!(break before avoid page);
constant!(break before page);
constant!(break before left);
constant!(break before right);
constant!(break before column);

// https://tailwindcss.com/docs/break-inside
constant!(break inside auto);
constant!(break inside avoid);
constant!(break inside avoid page);
constant!(break inside avoid column);

// https://tailwindcss.com/docs/box-decoration-break
constant!(box decoration clone);
constant!(box decoration slice);

// https://tailwindcss.com/docs/box-sizing
constant!(box border);
constant!(box content);

// https://tailwindcss.com/docs/display
constant!(block);
constant!(inline block);
constant!(inline);
constant!(flex);
constant!(inline flex);

constant!(table);
constant!(inline table);
constant!(table caption);
constant!(table cell);
constant!(table column);
constant!(table column group);
constant!(table footer group);
constant!(table header group);
constant!(table row group);
constant!(table row);
constant!(flow root);
constant!(grid);
constant!(inline grid);
constant!(contents);
constant!(list item);
constant!(hidden);

// https://tailwindcss.com/docs/float
constant!(float start);
constant!(float end);
constant!(float right);
constant!(float left);
constant!(float none);

// https://tailwindcss.com/docs/clear
constant!(clear start);
constant!(clear end);
constant!(clear left);
constant!(clear right);
constant!(clear both);
constant!(clear none);

// https://tailwindcss.com/docs/isolation
constant!(isolate);
constant!(isolation auto);

// https://tailwindcss.com/docs/object-fit
constant!(object contain);
constant!(object cover);
constant!(object fill);
constant!(object none);
constant!(object scale down);

// https://tailwindcss.com/docs/object-position
constant!(object bottom);
constant!(object center);
constant!(object left);
constant!(object left bottom);
constant!(object left top);
constant!(object right);
constant!(object right bottom);
constant!(object right top);
constant!(object top);

// https://tailwindcss.com/docs/overflow
constant!(overflow auto);
constant!(overflow hidden);
constant!(overflow clip);
constant!(overflow visible);
constant!(overflow scroll);
constant!(overflow x auto);
constant!(overflow y auto);
constant!(overflow x hidden);
constant!(overflow y hidden);
constant!(overflow x clip);
constant!(overflow y clip);
constant!(overflow x visible);
constant!(overflow y visible);
constant!(overflow x scroll);
constant!(overflow y scroll);

// https://tailwindcss.com/docs/overscroll-behavior
constant!(overscroll auto);
constant!(overscroll contain);
constant!(overscroll none);
constant!(overscroll y auto);
constant!(overscroll y contain);
constant!(overscroll y none);
constant!(overscroll x auto);
constant!(overscroll x contain);
constant!(overscroll x none);

// https://tailwindcss.com/docs/position
#[doc = "static"]
pub const static_: &'static str = "static";
constant!(fixed);
constant!(absolute);
constant!(relative);
constant!(sticky);

// https://tailwindcss.com/docs/top-right-bottom-left
constant!(top auto);
size_0_to_96!(top);
fraction_2_to_4!(top);
constant!(top full);

constant!(bottom auto);
size_0_to_96!(bottom);
fraction_2_to_4!(bottom);
constant!(bottom full);

constant!(left auto);
size_0_to_96!(left);
fraction_2_to_4!(left);
constant!(left full);

constant!(right auto);
size_0_to_96!(right);
fraction_2_to_4!(right);
constant!(right full);

constant!(inset auto);
size_0_to_96!(inset);
fraction_2_to_4!(inset);
constant!(inset full);

constant!(inset x auto);
size_0_to_96!(inset x);
fraction_2_to_4!(inset x);
constant!(inset x full);

constant!(inset y auto);
size_0_to_96!(inset y);
fraction_2_to_4!(inset y);
constant!(inset y full);

// https://tailwindcss.com/docs/visibility
constant!(visible);
constant!(invisible);
constant!(collapse);

// https://tailwindcss.com/docs/z-index
constant!(z 0);
constant!(z 10);
constant!(z 20);
constant!(z 30);
constant!(z 40);
constant!(z 50);
constant!(z auto);

any!(z);

minus!(z 10);
minus!(z 20);
minus!(z 30);
minus!(z 40);
minus!(z 50);