@catppuccin/starlight
Version:
<h3 align="center"> <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/> <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transp
50 lines (46 loc) • 1.05 kB
text/typescript
import type { StarlightPlugin } from "@astrojs/starlight/types";
type DarkFlavor = "mocha" | "macchiato" | "frappe";
type LightFlavor = "latte";
type Accent =
| "rosewater"
| "flamingo"
| "pink"
| "mauve"
| "red"
| "maroon"
| "peach"
| "yellow"
| "green"
| "teal"
| "sky"
| "sapphire"
| "blue"
| "lavender";
interface Config {
dark?: {
flavor?: DarkFlavor;
accent?: Accent;
};
light?: {
flavor?: LightFlavor;
accent?: Accent;
};
}
export default function createPlugin(config?: Config): StarlightPlugin {
const { dark, light } = config ?? {};
return {
name: "@catppuccin/starlight",
hooks: {
"config:setup": ({ config, updateConfig }) => {
updateConfig({
customCss: [
...(config.customCss ?? []),
"@catppuccin/starlight/styles/shared.css",
`@catppuccin/starlight/themes/catppuccin-${dark?.flavor ?? "mocha"}-${dark?.accent ?? "mauve"}.css`,
`@catppuccin/starlight/themes/catppuccin-${light?.flavor ?? "latte"}-${light?.accent ?? "mauve"}.css`,
],
});
},
},
};
}