/** * Catppuccin variants */ export namespace variants { /** * Light variant */ const latte: Labels<Color, AlphaColor> /** * Low-saturation, low-contrast dark variant */ const frappe: Labels<Color, AlphaColor> /** * Mid-saturation, mid-contrast dark variant */ const macchiato: Labels<Color, AlphaColor> /** * High-saturation, High-contrast dark variant */ const mocha: Labels<Color, AlphaColor> } /** * Palette labels */ export namespace labels { const rosewater: Variants<Color> const flamingo: Variants<Color> const pink: Variants<Color> const mauve: Variants<Color> const red: Variants<Color> const maroon: Variants<Color> const peach: Variants<Color> const yellow: Variants<Color> const green: Variants<Color> const teal: Variants<Color> const sky: Variants<Color> const sapphire: Variants<Color> const blue: Variants<Color> const lavender: Variants<Color> const surface2: Variants<AlphaColor> const subtext0: Variants<AlphaColor> const subtext1: Variants<AlphaColor> const overlay0: Variants<AlphaColor> const overlay2: Variants<AlphaColor> const surface0: Variants<AlphaColor> const text: Variants<AlphaColor> const overlay1: Variants<AlphaColor> const surface1: Variants<AlphaColor> const base: Variants<AlphaColor> const mantle: Variants<AlphaColor> const crust: Variants<AlphaColor> } export default palette export interface Color { /** * Formatted hex value * @example #babbf1 */ hex: string /** * Formatted rgb value * @example rgb(186, 187, 241) */ rgb: string /** * Formatted hsl value * @example hsl(239, 66%, 84%) */ hsl: string } export interface AlphaColor extends Color { alpha: Color } export interface Labels<T, U> { rosewater: T flamingo: T pink: T mauve: T red: T maroon: T peach: T yellow: T green: T teal: T sky: T sapphire: T blue: T lavender: T text: U subtext1: U subtext0: U overlay2: U overlay1: U overlay0: U surface2: U surface1: U surface0: U base: U mantle: U crust: U } export interface Variants<T> { /** * Light variant */ latte: T /** * Low-saturation, low-contrast dark variant */ frappe: T /** * Mid-saturation, mid-contrast dark variant */ macchiato: T /** * High-saturation, High-contrast dark variant */ mocha: T } declare namespace palette { /** * Palette variants */ const variants: Variants<Labels<Color, AlphaColor>> /** * Palette labels */ const labels: Labels<Variants<Color>, Variants<Color>> }