34 lines
688 B
TypeScript
34 lines
688 B
TypeScript
import themesData from '#content/themes.json';
|
|
|
|
export interface ThemePalette {
|
|
accent: string;
|
|
selection: string;
|
|
muted: string;
|
|
background: string;
|
|
dark_background: string;
|
|
lighter_background: string;
|
|
foreground: string;
|
|
red: string;
|
|
yellow: string;
|
|
orange: string;
|
|
green: string;
|
|
cyan: string;
|
|
blue: string;
|
|
magenta: string;
|
|
}
|
|
|
|
export interface Theme {
|
|
id: string;
|
|
name: string;
|
|
mode: 'dark' | 'light';
|
|
wallpaper?: string;
|
|
activeBorder?: [string, string];
|
|
colors: ThemePalette;
|
|
}
|
|
|
|
export const themes: Theme[] = themesData as Theme[];
|
|
|
|
export function findTheme(id: string | null | undefined): Theme | undefined {
|
|
return themes.find((theme) => theme.id === id);
|
|
}
|