Design System Utilities @ 0.1.1-alpha.0
    Preparing search index...

    Class Tokens<T_ColourName, T_ExtraColourLevels, T_ThemeBrightnessMode, T_ThemeContrastMode, T_ThemeName, T_ExtraIconNames, T_LogoNames, T_ThemeKeyword_Universal, T_ThemeKeyword_Text, T_ThemeKeyword_Background>

    Generates a complete token object for the design system.

    0.1.0-alpha

    Type Parameters

    • T_ColourName extends string
    • T_ExtraColourLevels extends Optional
    • T_ThemeBrightnessMode extends readonly [string, ...string[]]
    • T_ThemeContrastMode extends ThemeMode_ContrastAtLeastOne
    • T_ThemeName extends string
    • T_ExtraIconNames extends string
    • T_LogoNames extends string
    • T_ThemeKeyword_Universal extends string
    • T_ThemeKeyword_Text extends string
    • T_ThemeKeyword_Background extends string

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    tokenLevels: readonly [
        "100",
        "200",
        "300",
        "400",
        "500",
        "600",
        "700",
        "800",
        "900",
    ] = ...
    tokenLevels_extraOptions: readonly [
        "150",
        "250",
        "350",
        "450",
        "550",
        "650",
        "750",
        "850",
    ] = ...
    icons: Tokens_Icons<T_ExtraIconNames>
    logos: Tokens_Logos<T_LogoNames>
    tokenLevels: readonly [
        "100",
        "200",
        "300",
        "400",
        "500",
        "600",
        "700",
        "800",
        "900",
    ] = AbstractTokens.tokenLevels
    typography: Tokens_Typography
    clrNames: readonly T_ColourName[]
    config: Tokens_Internal.Config = {}
    extraColourLevels: readonly T_ExtraColourLevels[]
    input: Omit<
        Tokens_Internal.InputParam<
            NoInfer<T_ColourName>,
            NoInfer<T_ExtraColourLevels>,
            T_ThemeBrightnessMode,
            T_ThemeContrastMode,
            T_ThemeName,
            T_ExtraIconNames,
            T_LogoNames,
            T_ThemeKeyword_Universal,
            T_ThemeKeyword_Text,
            T_ThemeKeyword_Background,
        >,
        "themes",
    >

    Accessors

    Methods

    • A custom error handler to use with Zod schemas.

      Parameters

      • ...params: [issue: ZodIssueOptionalMessage, _ctx: ErrorMapCtx]

      Returns { message: string }

      0.1.0-alpha

    • Converts this token or group to the values used when converting to scss.

      Returns {
          border: { radius: ScssReturn; stroke: ScssReturn; width: ScssReturn };
          colour: {
              [K in string]: {
                  [K in
                      | "100"
                      | "150"
                      | "200"
                      | "250"
                      | "300"
                      | "400"
                      | "500"
                      | "600"
                      | "700"
                      | "750"
                      | "800"
                      | "850"
                      | "900"
                      | "350"
                      | "450"
                      | "550"
                      | "650"]: ScssReturn
              }
          };
          font: {
              family: | {
                  [key: string]: {
                      variable: | {
                          italic: {
                              fallbacks: string[];
                              family: string;
                              printFontFace: boolean;
                              src: { path: string; type: (...)
                              | (...)
                              | (...)
                              | (...) }[];
                              style: "italic" | "normal";
                              weight:
                                  | "100"
                                  | "200"
                                  | "300"
                                  | "400"
                                  | "500"
                                  | "600"
                                  | "700"
                                  | "800"
                                  | "900"
                                  | "100 100"
                                  | "100 200"
                                  | "100 300"
                                  | "100 400"
                                  | "100 500"
                                  | "100 600"
                                  | "100 700"
                                  | "100 800"
                                  | "100 900"
                                  | "100 1000"
                                  | "200 100"
                                  | "200 200"
                                  | "200 300"
                                  | "200 400"
                                  | "200 500"
                                  | "200 600"
                                  | "200 700"
                                  | "200 800"
                                  | "200 900"
                                  | "200 1000"
                                  | "300 100"
                                  | "300 200"
                                  | "300 300"
                                  | "300 400"
                                  | "300 500"
                                  | "300 600"
                                  | "300 700"
                                  | "300 800"
                                  | "300 900"
                                  | "300 1000"
                                  | "400 100"
                                  | "400 200"
                                  | "400 300"
                                  | "400 400"
                                  | "400 500"
                                  | "400 600"
                                  | "400 700"
                                  | "400 800"
                                  | "400 900"
                                  | "400 1000"
                                  | "500 100"
                                  | "500 200"
                                  | "500 300"
                                  | "500 400"
                                  | "500 500"
                                  | "500 600"
                                  | "500 700"
                                  | "500 800"
                                  | "500 900"
                                  | "500 1000"
                                  | "600 100"
                                  | "600 200"
                                  | "600 300"
                                  | "600 400"
                                  | "600 500"
                                  | "600 600"
                                  | "600 700"
                                  | "600 800"
                                  | "600 900"
                                  | "600 1000"
                                  | "700 100"
                                  | "700 200"
                                  | "700 300"
                                  | "700 400"
                                  | "700 500"
                                  | "700 600"
                                  | "700 700"
                                  | "700 800"
                                  | "700 900"
                                  | "700 1000"
                                  | "800 100"
                                  | "800 200"
                                  | "800 300"
                                  | "800 400"
                                  | "800 500"
                                  | "800 600"
                                  | "800 700"
                                  | "800 800"
                                  | "800 900"
                                  | "800 1000"
                                  | "900 100"
                                  | "900 200"
                                  | "900 300"
                                  | "900 400"
                                  | "900 500"
                                  | "900 600"
                                  | "900 700"
                                  | "900 800"
                                  | "900 900"
                                  | "900 1000"
                                  | "000 100"
                                  | "000 200"
                                  | "000 300"
                                  | "000 400"
                                  | "000 500"
                                  | "000 600"
                                  | "000 700"
                                  | "000 800"
                                  | "000 900"
                                  | "000 1000";
                              display?: "optional"
                              | "block"
                              | "auto"
                              | "fallback"
                              | "swap";
                              "line-gap-override"?: string;
                              "size-adjust"?: string;
                              "unicode-range"?: string;
                          };
                          normal: {
                              fallbacks: string[];
                              family: string;
                              printFontFace: boolean;
                              src: { path: string; type: (...)
                              | (...)
                              | (...)
                              | (...) }[];
                              style: "italic" | "normal";
                              weight:
                                  | "100"
                                  | "200"
                                  | "300"
                                  | "400"
                                  | "500"
                                  | "600"
                                  | "700"
                                  | "800"
                                  | "900"
                                  | "100 100"
                                  | "100 200"
                                  | "100 300"
                                  | "100 400"
                                  | "100 500"
                                  | "100 600"
                                  | "100 700"
                                  | "100 800"
                                  | "100 900"
                                  | "100 1000"
                                  | "200 100"
                                  | "200 200"
                                  | "200 300"
                                  | "200 400"
                                  | "200 500"
                                  | "200 600"
                                  | "200 700"
                                  | "200 800"
                                  | "200 900"
                                  | "200 1000"
                                  | "300 100"
                                  | "300 200"
                                  | "300 300"
                                  | "300 400"
                                  | "300 500"
                                  | "300 600"
                                  | "300 700"
                                  | "300 800"
                                  | "300 900"
                                  | "300 1000"
                                  | "400 100"
                                  | "400 200"
                                  | "400 300"
                                  | "400 400"
                                  | "400 500"
                                  | "400 600"
                                  | "400 700"
                                  | "400 800"
                                  | "400 900"
                                  | "400 1000"
                                  | "500 100"
                                  | "500 200"
                                  | "500 300"
                                  | "500 400"
                                  | "500 500"
                                  | "500 600"
                                  | "500 700"
                                  | "500 800"
                                  | "500 900"
                                  | "500 1000"
                                  | "600 100"
                                  | "600 200"
                                  | "600 300"
                                  | "600 400"
                                  | "600 500"
                                  | "600 600"
                                  | "600 700"
                                  | "600 800"
                                  | "600 900"
                                  | "600 1000"
                                  | "700 100"
                                  | "700 200"
                                  | "700 300"
                                  | "700 400"
                                  | "700 500"
                                  | "700 600"
                                  | "700 700"
                                  | "700 800"
                                  | "700 900"
                                  | "700 1000"
                                  | "800 100"
                                  | "800 200"
                                  | "800 300"
                                  | "800 400"
                                  | "800 500"
                                  | "800 600"
                                  | "800 700"
                                  | "800 800"
                                  | "800 900"
                                  | "800 1000"
                                  | "900 100"
                                  | "900 200"
                                  | "900 300"
                                  | "900 400"
                                  | "900 500"
                                  | "900 600"
                                  | "900 700"
                                  | "900 800"
                                  | "900 900"
                                  | "900 1000"
                                  | "000 100"
                                  | "000 200"
                                  | "000 300"
                                  | "000 400"
                                  | "000 500"
                                  | "000 600"
                                  | "000 700"
                                  | "000 800"
                                  | "000 900"
                                  | "000 1000";
                              display?: "optional"
                              | "block"
                              | "auto"
                              | "fallback"
                              | "swap";
                              "line-gap-override"?: string;
                              "size-adjust"?: string;
                              "unicode-range"?: string;
                          };
                      }
                      | undefined;
                      weights: {
                          "100"?: {
                              italic: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                              normal: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                          };
                          "200"?: {
                              italic: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                              normal: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                          };
                          "300"?: {
                              italic: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                              normal: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                          };
                          "400"?: {
                              italic: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                              normal: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                          };
                          "500"?: {
                              italic: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                              normal: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                          };
                          "600"?: {
                              italic: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                              normal: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                          };
                          "700"?: {
                              italic: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                              normal: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                          };
                          "800"?: {
                              italic: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                              normal: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                          };
                          "900"?: {
                              italic: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                              normal: {
                                  fallbacks: string[];
                                  family: string;
                                  printFontFace: boolean;
                                  src: { path: ...; type: ... }[];
                                  style: "italic" | "normal";
                                  weight:
                                      | "100"
                                      | "200"
                                      | "300"
                                      | "400"
                                      | "500"
                                      | "600"
                                      | "700"
                                      | "800"
                                      | "900"
                                      | "100 100"
                                      | "100 200"
                                      | "100 300"
                                      | "100 400"
                                      | "100 500"
                                      | "100 600"
                                      | "100 700"
                                      | "100 800"
                                      | "100 900"
                                      | "100 1000"
                                      | "200 100"
                                      | "200 200"
                                      | "200 300"
                                      | "200 400"
                                      | "200 500"
                                      | "200 600"
                                      | "200 700"
                                      | "200 800"
                                      | "200 900"
                                      | "200 1000"
                                      | "300 100"
                                      | "300 200"
                                      | "300 300"
                                      | "300 400"
                                      | "300 500"
                                      | "300 600"
                                      | "300 700"
                                      | "300 800"
                                      | "300 900"
                                      | "300 1000"
                                      | "400 100"
                                      | "400 200"
                                      | "400 300"
                                      | "400 400"
                                      | "400 500"
                                      | "400 600"
                                      | "400 700"
                                      | "400 800"
                                      | "400 900"
                                      | "400 1000"
                                      | "500 100"
                                      | "500 200"
                                      | "500 300"
                                      | "500 400"
                                      | "500 500"
                                      | "500 600"
                                      | "500 700"
                                      | "500 800"
                                      | "500 900"
                                      | "500 1000"
                                      | "600 100"
                                      | "600 200"
                                      | "600 300"
                                      | "600 400"
                                      | "600 500"
                                      | "600 600"
                                      | "600 700"
                                      | "600 800"
                                      | "600 900"
                                      | "600 1000"
                                      | "700 100"
                                      | "700 200"
                                      | "700 300"
                                      | "700 400"
                                      | "700 500"
                                      | "700 600"
                                      | "700 700"
                                      | "700 800"
                                      | "700 900"
                                      | "700 1000"
                                      | "800 100"
                                      | "800 200"
                                      | "800 300"
                                      | "800 400"
                                      | "800 500"
                                      | "800 600"
                                      | "800 700"
                                      | "800 800"
                                      | "800 900"
                                      | "800 1000"
                                      | "900 100"
                                      | "900 200"
                                      | "900 300"
                                      | "900 400"
                                      | "900 500"
                                      | "900 600"
                                      | "900 700"
                                      | "900 800"
                                      | "900 900"
                                      | "900 1000"
                                      | "000 100"
                                      | "000 200"
                                      | "000 300"
                                      | "000 400"
                                      | "000 500"
                                      | "000 600"
                                      | "000 700"
                                      | "000 800"
                                      | "000 900"
                                      | "000 1000";
                                  display?: "optional"
                                  | "block"
                                  | "auto"
                                  | "fallback"
                                  | "swap";
                                  "line-gap-override"?: string;
                                  "size-adjust"?: string;
                                  "unicode-range"?: string;
                              };
                          };
                      };
                  };
              }
              | undefined;
              familyOverrides: { [key: string]: FamilyOverride }
              | undefined;
              size: {
                  bigger: { [key: number]: number };
                  heading: {
                      "1": number;
                      "10": number;
                      "2": number;
                      "3": number;
                      "4": number;
                      "5": number;
                      "6": number;
                      "7": number;
                      "8": number;
                      "9": number;
                  } & { [key: number]: number };
                  normal: number;
                  smaller: {
                      "1": number;
                      "2": number;
                      "3": number;
                      "4": number;
                      [key: number]: number;
                  };
                  [key: string]: number
                  | RecursiveRecord<string | number, number>;
              };
              sizeScale: number;
          };
          icons: { [K in string]: ScssVars<K> };
          line_height: {
              "100": number;
              "200": number;
              "300": number;
              "400": number;
              "500": number;
              "600": number;
          } & { [key: string]: number
          | undefined };
          logos: { [K in string]: ScssVars<K> };
          margin: {
              "100": number;
              "200": number;
              "300": number;
              "400": number;
              "500": number;
              "600": number;
              "800": number;
              "900": number;
          } & { [key: string]: number
          | undefined };
          spacing_multiplier: number;
          style: {
              button: ScssReturn;
              heading: ScssReturn;
              input: ScssReturn;
              selection: ScssReturn;
          };
          themes: {
              [K in string]: {
                  [B in string]: {
                      [C in ThemeMode_ContrastOption]: {
                          background: { $: ThemeColourOption } & { alt: ThemeColourOption } & {
                              [K in string]: ThemeColourOption<T_ColourName, T_ExtraColourLevels>
                          } & {
                              [K in string]: ThemeColourOption<T_ColourName, T_ExtraColourLevels>
                          };
                          button: {
                              disabled: Data_Button<
                                  T_ColourName,
                                  T_ExtraColourLevels,
                                  ThemeColourOption<T_ColourName, T_ExtraColourLevels>,
                              >;
                              primary: Data_Button<
                                  T_ColourName,
                                  T_ExtraColourLevels,
                                  ThemeColourOption<T_ColourName, T_ExtraColourLevels>,
                              >;
                              secondary: Data_Button<
                                  T_ColourName,
                                  T_ExtraColourLevels,
                                  ThemeColourOption<T_ColourName, T_ExtraColourLevels>,
                              >;
                          } & {
                              [K in string]: Data_Button<
                                  T_ColourName,
                                  T_ExtraColourLevels,
                                  ThemeColourOption<T_ColourName, T_ExtraColourLevels>,
                              >
                          };
                          heading: {
                              "1": ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              "10": ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              "2": ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              "3": ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              "4": ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              "5": ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              "6": ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              "7": ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              "8": ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              "9": ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                          };
                          input: {
                              $: {
                                  accent: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  bg: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  border: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  text: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                              };
                              disabled: {
                                  accent: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  bg: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  border: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  text: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                              };
                              readonly: {
                                  accent: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  bg: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  border: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  text: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                              };
                          };
                          link: {
                              $: { $: ThemeColourOption; visited: ThemeColourOption } & {
                                  active: ThemeColourOption;
                                  disabled: ThemeColourOption;
                                  hover: ThemeColourOption;
                              };
                              decoration: { $: ThemeColourOption; visited: ThemeColourOption } & {
                                  active: ThemeColourOption;
                                  disabled: ThemeColourOption;
                                  hover: ThemeColourOption;
                              };
                              icon: { $: ThemeColourOption; visited: ThemeColourOption } & {
                                  active: ThemeColourOption;
                                  disabled: ThemeColourOption;
                                  hover: ThemeColourOption;
                              };
                              outline: {
                                  $: ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                                  active: ThemeColourOption;
                                  disabled: ThemeColourOption;
                                  hover: ThemeColourOption;
                                  visited: ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              };
                          };
                          selection: { bg: ThemeColourOption; text: ThemeColourOption };
                          system: {
                              accent: { bg: ThemeColourOption; text: ThemeColourOption };
                              background: { $: ThemeColourOption } & { alt: ThemeColourOption } & {
                                  [K in string]: ThemeColourOption<
                                      T_ColourName,
                                      T_ExtraColourLevels,
                                  >
                              } & {
                                  [K in string]: ThemeColourOption<
                                      T_ColourName,
                                      T_ExtraColourLevels,
                                  >
                              };
                              button: Data_Button<
                                  T_ColourName,
                                  T_ExtraColourLevels,
                                  ThemeColourOption<T_ColourName, T_ExtraColourLevels>,
                              >;
                              input: {
                                  accent: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  bg: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  border: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                                  text: {
                                      $: ThemeColourOption;
                                      active: ThemeColourOption;
                                      hover: ThemeColourOption;
                                  };
                              };
                              link: { $: ThemeColourOption; visited: ThemeColourOption } & {
                                  active: ThemeColourOption;
                                  disabled: ThemeColourOption;
                                  hover: ThemeColourOption;
                              };
                              mark: { bg: ThemeColourOption; text: ThemeColourOption };
                              selected: { bg: ThemeColourOption; text: ThemeColourOption };
                              selection: { bg: ThemeColourOption; text: ThemeColourOption };
                              text: {
                                  $: ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                                  active: ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                                  disabled: ThemeColourOption<T_ColourName, T_ExtraColourLevels>;
                              };
                          };
                          text: { $: ThemeColourOption } & {
                              primary: ThemeColourOption;
                              secondary: ThemeColourOption;
                          } & {
                              active: ThemeColourOption;
                              disabled: ThemeColourOption;
                              grey: ThemeColourOption;
                          } & {
                              [K in string]: ThemeColourOption<T_ColourName, T_ExtraColourLevels>
                          } & {
                              [K in string]: ThemeColourOption<T_ColourName, T_ExtraColourLevels>
                          };
                          ui: { $: ThemeColourOption } & {
                              primary: ThemeColourOption;
                              secondary: ThemeColourOption;
                          } & {
                              active: ThemeColourOption;
                              disabled: ThemeColourOption;
                              grey: ThemeColourOption;
                          } & {
                              [K in string]: ThemeColourOption<T_ColourName, T_ExtraColourLevels>
                          } & {
                              [K in string]: ThemeColourOption<T_ColourName, T_ExtraColourLevels>
                          };
                      }
                  }
              }
          };
          transition: { properties: ScssReturn; time: ScssReturn };
          z_index: {
              nav: number;
              popup: number;
              settings: number;
              skipLink: number;
              [key: string]: number;
          };
      }

      0.1.0-alpha