Tailwind classes in OCaml
1(** Button component module *)
2
3(** Button configuration *)
4type t
5
6(** Button variants *)
7type variant = [ `Primary | `Secondary | `Outline | `Ghost | `Link ]
8
9(** Button sizes *)
10type size = [ `Sm | `Default | `Lg | `Icon ]
11
12(** Button states *)
13type state = [ `Default | `Loading | `Disabled ]
14
15(** Create a button *)
16val make :
17 ?variant:variant ->
18 ?size:size ->
19 ?state:state ->
20 ?icon:Htmlit.El.html ->
21 ?icon_position:[`Left | `Right] ->
22 ?classes:Tailwind.t ->
23 ?attributes:(string * string) list ->
24 children:Htmlit.El.html list ->
25 unit -> t
26
27(** Convert button to Htmlit element *)
28val to_html : t -> Htmlit.El.html
29
30(** Create a primary button (shorthand) *)
31val primary :
32 ?size:size ->
33 ?state:state ->
34 ?icon:Htmlit.El.html ->
35 ?classes:Tailwind.t ->
36 children:Htmlit.El.html list ->
37 unit -> Htmlit.El.html
38
39(** Create a secondary button (shorthand) *)
40val secondary :
41 ?size:size ->
42 ?state:state ->
43 ?icon:Htmlit.El.html ->
44 ?classes:Tailwind.t ->
45 children:Htmlit.El.html list ->
46 unit -> Htmlit.El.html
47
48(** Create an outline button (shorthand) *)
49val outline :
50 ?size:size ->
51 ?state:state ->
52 ?icon:Htmlit.El.html ->
53 ?classes:Tailwind.t ->
54 children:Htmlit.El.html list ->
55 unit -> Htmlit.El.html
56
57(** Create a ghost button (shorthand) *)
58val ghost :
59 ?size:size ->
60 ?state:state ->
61 ?icon:Htmlit.El.html ->
62 ?classes:Tailwind.t ->
63 children:Htmlit.El.html list ->
64 unit -> Htmlit.El.html
65
66(** Create a link button (shorthand) *)
67val link :
68 ?size:size ->
69 ?state:state ->
70 ?classes:Tailwind.t ->
71 children:Htmlit.El.html list ->
72 unit -> Htmlit.El.html