Tailwind classes in OCaml
1(** Button component module *)
2
3(** Button configuration *)
4type t
5
6(** Button variants *)
7type variant =
8 | Primary
9 | Secondary
10 | Outline
11 | Ghost
12 | Link
13 | Danger
14 | Success
15
16(** Button sizes *)
17type size =
18 | Xs
19 | Sm
20 | Md
21 | Lg
22 | Xl
23
24(** Create a button *)
25val make :
26 ?variant:variant ->
27 ?size:size ->
28 ?disabled:bool ->
29 ?loading:bool ->
30 ?full_width:bool ->
31 ?icon_left:Htmlit.El.html ->
32 ?icon_right:Htmlit.El.html ->
33 ?classes:Tailwind.t ->
34 ?attributes:(string * string) list ->
35 ?onclick:string ->
36 children:Htmlit.El.html list ->
37 unit -> t
38
39(** Convert button to Htmlit element *)
40val to_html : t -> Htmlit.El.html
41
42(** Create button group *)
43val group :
44 ?classes:Tailwind.t ->
45 ?vertical:bool ->
46 buttons:t list ->
47 unit -> Htmlit.El.html
48
49(** Icon button (button with just an icon) *)
50val icon :
51 ?variant:variant ->
52 ?size:size ->
53 ?disabled:bool ->
54 ?classes:Tailwind.t ->
55 ?attributes:(string * string) list ->
56 ?aria_label:string ->
57 icon:Htmlit.El.html ->
58 unit -> Htmlit.El.html
59
60(** Link styled as button *)
61val link :
62 ?variant:variant ->
63 ?size:size ->
64 ?classes:Tailwind.t ->
65 ?attributes:(string * string) list ->
66 href:string ->
67 children:Htmlit.El.html list ->
68 unit -> Htmlit.El.html