Skip to content
93 linesCodeBlameRaw
1/**
2 * g1t's colours, as packages/theme/tokens.css names them, for React
3 * Native, which cannot read CSS variables. Keep the two in step: a colour
4 * changed there changes here.
5 *
6 * Dark is g1t's default, as on the site; light follows the phone's setting.
7 */
8
9export type Palette = {
10 bg: string;
11 surface: string;
12 raised: string;
13 line: string;
14 lineStrong: string;
15 fg: string;
16 fgSoft: string;
17 muted: string;
18 faint: string;
19 accent: string;
20 accentDim: string;
21 accentLow: string;
22 /** Text on an accent-filled button. */
23 onAccent: string;
24 /** The rail and the bottom bar (apps/web app.css `--color-rail`). */
25 rail: string;
26 /** What marks the app you are in on the rail (`--color-sidebar-accent`). */
27 railAccent: string;
28 success: string;
29 successLow: string;
30 info: string;
31 merged: string;
32 warn: string;
33 danger: string;
34};
35
36export const dark: Palette = {
37 bg: "#0f0f11",
38 surface: "#161618",
39 raised: "#1e1e21",
40 line: "#28282c",
41 lineStrong: "#38383e",
42 fg: "#ededef",
43 fgSoft: "#dcdce0",
44 muted: "#a0a0a8",
45 faint: "#86868e",
46 accent: "#b6a8ff",
47 accentDim: "#8577e0",
48 accentLow: "#221e38",
49 onAccent: "#0f0f11",
50 rail: "#050507",
51 railAccent: "#1c1c20",
52 success: "#86efc4",
53 successLow: "#10302a",
54 info: "#8ab4ff",
55 merged: "#a678f5",
56 warn: "#ffbd8c",
57 danger: "#ff8394",
58};
59
60export const light: Palette = {
61 bg: "#fbfbfa",
62 surface: "#ffffff",
63 raised: "#f1f1ef",
64 line: "#e4e4e1",
65 lineStrong: "#d2d2ce",
66 fg: "#18181b",
67 fgSoft: "#2e2e33",
68 muted: "#5c5c66",
69 faint: "#686871",
70 accent: "#6b52c8",
71 accentDim: "#9584dc",
72 accentLow: "#ece8fb",
73 onAccent: "#ffffff",
74 rail: "#ffffff",
75 railAccent: "#e1e1de",
76 success: "#0d7a52",
77 successLow: "#e2f4ec",
78 info: "#2160cc",
79 merged: "#7c3fd1",
80 warn: "#a84f00",
81 danger: "#c42a43",
82};
83
84export const space = { xs: 4, sm: 8, md: 12, lg: 16, xl: 24, xxl: 32 } as const;
85
86export const radius = { sm: 6, md: 10, lg: 14, full: 999 } as const;
87
88/**
89 * The site's faces (Hanken Grotesk, Bricolage Grotesque, IBM Plex Mono)
90 * ship as woff2, which phones cannot load; until TTF copies are bundled
91 * with expo-font, the system's faces stand in.
92 */
93export const fonts = { mono: "monospace" } as const;