welcome.ts

 1
 2import { ColorScheme } from "../themes/common/colorScheme";
 3import { border, background, foreground, text, TextProperties } from "./components";
 4
 5
 6export default function welcome(colorScheme: ColorScheme) {
 7  let layer = colorScheme.highest;
 8
 9  let checkboxBase = {
10    cornerRadius: 4,
11    padding: {
12      left: 3,
13      right: 3,
14      top: 3,
15      bottom: 3,
16    },
17    shadow: colorScheme.popoverShadow,
18    border: border(layer),
19    margin: {
20      right: 8,
21      top: 5,
22      bottom: 5
23    },
24  };
25  
26  let interactive_text_size: TextProperties = { size: "md" }
27
28  return {
29    pageWidth: 450,
30    logoSubheading: {
31      ...text(layer, "sans", { size: "lg" }),
32      margin: {
33        top: 10,
34        bottom: 7,
35      },
36    },
37    button: {
38      background: background(layer),
39      border: border(layer, "active"),
40      cornerRadius: 4,
41      margin: {
42        top: 8,
43        bottom: 7
44      },
45      padding: {
46        top: 1,
47        bottom: 1,
48        left: 7,
49        right: 7,
50      },
51      ...text(layer, "sans", "hovered", interactive_text_size),
52      hover: {
53        ...text(layer, "sans", "hovered", interactive_text_size),
54        background: background(layer, "hovered"),
55        border: border(layer, "hovered"),
56      },
57    },
58    checkbox: {
59      label: {
60          ...text(layer, "sans", interactive_text_size),
61          // Also supports margin, container, border, etc.
62      },
63      container: {
64        margin: {
65          top: 5,
66        },
67      },
68      width: 12,
69      height: 12,
70      checkIcon: "icons/check_12.svg",
71      checkIconColor: foreground(layer, "on"),
72      default: {
73        ...checkboxBase,
74        background: background(layer, "default"),
75        border: border(layer, "active")
76      },
77      checked: {
78        ...checkboxBase,
79        background: background(layer, "hovered"),
80        border: border(layer, "active")
81      },
82      hovered: {
83        ...checkboxBase,
84        background: background(layer, "hovered"),
85        border: border(layer, "hovered")
86      },
87      hoveredAndChecked: {
88        ...checkboxBase,
89        background: background(layer, "hovered"),
90        border: border(layer, "active")
91      }
92    }
93  }
94}