1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
open! Core
open! Import
module Fg_bg = struct
type t =
{ foreground : Color.t
; background : Color.t
}
end
module Intent = struct
type t =
| Info
| Success
| Warning
| Error
[@@deriving sexp, equal, compare, enumerate]
type colors =
{ info : Fg_bg.t
; success : Fg_bg.t
; warning : Fg_bg.t
; error : Fg_bg.t
}
let lookup { info; success; warning; error } = function
| Info -> info
| Success -> success
| Warning -> warning
| Error -> error
;;
end
module Font_style = struct
type t =
| Regular
| Bold
| Italic
| Underlined
[@@deriving sexp, equal, compare, enumerate]
end
module Font_size = struct
type t =
| Small
| Regular
| Large
[@@deriving sexp, equal, compare, enumerate]
end
module Table = struct
type t =
{ body_row_even : Fg_bg.t
; body_row_odd : Fg_bg.t
; header_row : Fg_bg.t
; header_header_border : Color.t
; header_body_border : Color.t
; body_body_border : Color.t
}
end
module Form = struct
type t =
{ error_message : Fg_bg.t
; error_toggle_text : Color.t
; error_border : Color.t
; tooltip_message : Fg_bg.t
; tooltip_toggle_text : Color.t
; tooltip_border : Color.t
}
end
type t =
{ primary : Fg_bg.t
; extreme : Fg_bg.t
; extreme_primary_border : Color.t
; intent : Intent.colors
; table : Table.t
; form : Form.t
; small_font_size : Css_gen.Length.t
; large_font_size : Css_gen.Length.t
; is_dark : bool
}
module Card_title_kind = struct
type t =
| Prominent
| Discreet
end