Tailwind classes in OCaml
1(* Example showing how to use module aliases to access individual utilities *)
2
3let () =
4 (* Using individual modules through Tailwind module aliases *)
5 let blue_bg = Tailwind.Color.bg (Tailwind.Color.make Blue ~variant:V500 ()) in
6 let white_text = Tailwind.Color.text Tailwind.Color.white in
7 let padding = Tailwind.Spacing.(to_class (p (Tailwind.Size.rem 1.0))) in
8 let rounded = Tailwind.Effects.rounded_md in
9 let flex_display = Tailwind.Display.flex in
10 let center_items = Tailwind.Flexbox.(to_class (align_items Center)) in
11
12 (* Combine all classes *)
13 let button_classes = Tailwind.tw [
14 blue_bg;
15 white_text;
16 padding;
17 rounded;
18 flex_display;
19 center_items;
20 ] in
21
22 (* Typography example *)
23 let heading = Tailwind.Typography.(to_class (font_size Xl2)) in
24 let bold_text = Tailwind.Typography.(to_class (font_weight Bold)) in
25 let center_align = Tailwind.Typography.(to_class (text_align Center)) in
26
27 let heading_classes = Tailwind.tw [
28 heading;
29 bold_text;
30 center_align;
31 ] in
32
33 (* Layout example *)
34 let full_width = Tailwind.Layout.w_full in
35 let fixed_height = Tailwind.Layout.(to_class (height (Tailwind.Size.rem 10.0))) in
36 let overflow_hidden = Tailwind.Layout.(to_class (overflow `All Hidden)) in
37
38 let container_classes = Tailwind.tw [
39 full_width;
40 fixed_height;
41 overflow_hidden;
42 Tailwind.flex_center; (* Utility function *)
43 ] in
44
45 Printf.printf "=== Module Alias Usage Examples ===\n";
46 Printf.printf "Button: %s\n" (Tailwind.to_string button_classes);
47 Printf.printf "Heading: %s\n" (Tailwind.to_string heading_classes);
48 Printf.printf "Container: %s\n" (Tailwind.to_string container_classes);
49
50 (* Show conditional classes *)
51 let is_primary = true in
52 let conditional_button = Tailwind.class_list [
53 (Tailwind.tw [padding; rounded], true);
54 (blue_bg, is_primary);
55 (Tailwind.Color.bg (Tailwind.Color.make Gray ~variant:V300 ()), not is_primary);
56 ] in
57
58 Printf.printf "Conditional button: %s\n" (Tailwind.to_string conditional_button)