Tailwind classes in OCaml
1(** Main Tailwind-HTML integration module *)
2
3(** Convert Tailwind classes to HTML class attribute *)
4val classes_attr : Tailwind.t -> Htmlit.At.t
5
6(** Apply Tailwind classes to an Htmlit element *)
7val with_classes : Tailwind.t -> Htmlit.El.html -> Htmlit.El.html
8
9(** Apply Tailwind classes conditionally *)
10val with_classes_if : bool -> Tailwind.t -> Htmlit.El.html -> Htmlit.El.html
11
12(** Create an element with Tailwind classes *)
13val el :
14 string -> (* tag name *)
15 ?classes:Tailwind.t ->
16 ?attributes:(string * string) list ->
17 Htmlit.El.html list -> (* children *)
18 Htmlit.El.html
19
20(** Common HTML elements with Tailwind support *)
21val div : ?classes:Tailwind.t -> ?attributes:(string * string) list -> Htmlit.El.html list -> Htmlit.El.html
22val span : ?classes:Tailwind.t -> ?attributes:(string * string) list -> Htmlit.El.html list -> Htmlit.El.html
23val p : ?classes:Tailwind.t -> ?attributes:(string * string) list -> Htmlit.El.html list -> Htmlit.El.html
24val a : ?classes:Tailwind.t -> ?attributes:(string * string) list -> href:string -> Htmlit.El.html list -> Htmlit.El.html
25val img : ?classes:Tailwind.t -> ?attributes:(string * string) list -> src:string -> alt:string -> unit -> Htmlit.El.html
26val ul : ?classes:Tailwind.t -> ?attributes:(string * string) list -> Htmlit.El.html list -> Htmlit.El.html
27val ol : ?classes:Tailwind.t -> ?attributes:(string * string) list -> Htmlit.El.html list -> Htmlit.El.html
28val li : ?classes:Tailwind.t -> ?attributes:(string * string) list -> Htmlit.El.html list -> Htmlit.El.html
29
30(** Utility functions for colors and sizes *)
31val blue : int -> Tailwind.Color.t
32val gray : int -> Tailwind.Color.t
33val red : int -> Tailwind.Color.t
34val green : int -> Tailwind.Color.t
35val rem : float -> Tailwind.Size.t
36val px : Tailwind.Size.t
37val zero : Tailwind.Size.t
38val auto : Tailwind.Size.t
39val full : Tailwind.Size.t
40val screen : Tailwind.Size.t
41val txt : string -> Htmlit.El.html
42
43(** Common utility classes *)
44val flex : Tailwind.t
45val flex_col : Tailwind.t
46val items_center : Tailwind.t
47val justify_center : Tailwind.t
48val justify_between : Tailwind.t
49val font_bold : Tailwind.t
50val font_semibold : Tailwind.t
51val text_center : Tailwind.t
52val w_full : Tailwind.t
53val h_full : Tailwind.t
54val rounded_lg : Tailwind.t
55val rounded_md : Tailwind.t
56val shadow_md : Tailwind.t
57val shadow_lg : Tailwind.t
58
59(** Enhanced element functions with styling parameters *)
60val h1 :
61 ?size:[`Xl | `Xl2 | `Xl3 | `Xl4] ->
62 ?weight:[`Bold | `Semibold | `Medium] ->
63 ?color:Tailwind.Color.t ->
64 ?align:[`Center | `Left | `Right] ->
65 ?mb:Tailwind.Size.t ->
66 ?classes:Tailwind.t ->
67 Htmlit.El.html list ->
68 Htmlit.El.html
69
70val h2 :
71 ?size:[`Lg | `Xl | `Xl2] ->
72 ?weight:[`Bold | `Semibold | `Medium] ->
73 ?color:Tailwind.Color.t ->
74 ?align:[`Center | `Left | `Right] ->
75 ?mb:Tailwind.Size.t ->
76 ?classes:Tailwind.t ->
77 Htmlit.El.html list ->
78 Htmlit.El.html
79
80val p_styled :
81 ?size:[`Sm | `Base | `Lg] ->
82 ?color:Tailwind.Color.t ->
83 ?align:[`Center | `Left | `Right] ->
84 ?mb:Tailwind.Size.t ->
85 ?classes:Tailwind.t ->
86 Htmlit.El.html list ->
87 Htmlit.El.html
88
89(** Simple component functions *)
90val container : Htmlit.El.html list -> Htmlit.El.html
91val flex_center : Htmlit.El.html list -> Htmlit.El.html
92val card : ?elevated:bool -> ?padding:bool -> Htmlit.El.html list -> Htmlit.El.html
93
94val btn_primary :
95 ?size:[`Sm | `Md | `Lg] ->
96 ?disabled:bool ->
97 Htmlit.El.html list ->
98 Htmlit.El.html
99
100val btn_secondary :
101 ?size:[`Sm | `Md | `Lg] ->
102 ?disabled:bool ->
103 Htmlit.El.html list ->
104 Htmlit.El.html
105
106(** Text element with typography utilities *)
107val text :
108 ?size:Tailwind.Typography.font_size ->
109 ?weight:Tailwind.Typography.font_weight ->
110 ?color:Tailwind.Color.t ->
111 ?align:Tailwind.Typography.text_align ->
112 ?classes:Tailwind.t ->
113 string -> (* text content *)
114 Htmlit.El.html