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)