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