64 lines
2.3 KiB
TypeScript
64 lines
2.3 KiB
TypeScript
import { ColorScheme } from "../theme/color_scheme"
|
|
import { background, border, text } from "./components"
|
|
import { interactive, toggleable } from "../element"
|
|
export default function dropdown_menu(theme: ColorScheme): any {
|
|
return {
|
|
row_height: 30,
|
|
background: background(theme.middle),
|
|
border: border(theme.middle),
|
|
shadow: theme.popover_shadow,
|
|
header: interactive({
|
|
base: {
|
|
...text(theme.middle, "sans", { size: "sm" }),
|
|
secondary_text: text(theme.middle, "sans", {
|
|
size: "sm",
|
|
color: "#aaaaaa",
|
|
}),
|
|
secondary_text_spacing: 10,
|
|
padding: { left: 8, right: 8, top: 2, bottom: 2 },
|
|
corner_radius: 6,
|
|
background: background(theme.middle, "on"),
|
|
},
|
|
state: {
|
|
hovered: {
|
|
background: background(theme.middle, "hovered"),
|
|
},
|
|
clicked: {
|
|
background: background(theme.middle, "pressed"),
|
|
},
|
|
},
|
|
}),
|
|
section_header: {
|
|
...text(theme.middle, "sans", { size: "sm" }),
|
|
padding: { left: 8, right: 8, top: 8, bottom: 8 },
|
|
},
|
|
item: toggleable({
|
|
base: interactive({
|
|
base: {
|
|
...text(theme.middle, "sans", { size: "sm" }),
|
|
secondary_text_spacing: 10,
|
|
secondary_text: text(theme.middle, "sans", { size: "sm" }),
|
|
padding: { left: 18, right: 18, top: 2, bottom: 2 },
|
|
},
|
|
state: {
|
|
hovered: {
|
|
background: background(theme.middle, "hovered"),
|
|
...text(theme.middle, "sans", "hovered", {
|
|
size: "sm",
|
|
}),
|
|
},
|
|
},
|
|
}),
|
|
state: {
|
|
active: {
|
|
default: {
|
|
background: background(theme.middle, "active"),
|
|
},
|
|
hovered: {
|
|
background: background(theme.middle, "hovered"),
|
|
},
|
|
},
|
|
},
|
|
}),
|
|
}
|
|
}
|