theme.ts

  1export type Color = string;
  2export type Weight =
  3  | "thin"
  4  | "extra_light"
  5  | "light"
  6  | "normal"
  7  | "medium"
  8  | "semibold"
  9  | "bold"
 10  | "extra_bold"
 11  | "black";
 12
 13interface SyntaxHighlightStyle {
 14  color: { value: Color };
 15  weight: { value: Weight };
 16}
 17
 18interface Player {
 19  baseColor: {
 20    value: Color;
 21  };
 22  cursorColor: {
 23    value: Color;
 24  };
 25  selectionColor: {
 26    value: Color;
 27  };
 28  borderColor: {
 29    value: Color;
 30  };
 31}
 32
 33export interface BackgroundColor {
 34  base: {
 35    value: Color;
 36  };
 37  hover: {
 38    value: Color;
 39  };
 40  active: {
 41    value: Color;
 42  };
 43  focused: {
 44    value: Color;
 45  };
 46}
 47
 48export default interface Theme {
 49  backgroundColor: {
 50    100: BackgroundColor;
 51    300: BackgroundColor;
 52    500: BackgroundColor;
 53  };
 54  borderColor: {
 55    primary: {
 56      value: Color;
 57    };
 58    secondary: {
 59      value: Color;
 60    };
 61    muted: {
 62      value: Color;
 63    };
 64    focused: {
 65      value: Color;
 66    };
 67    active: {
 68      value: Color;
 69    };
 70  };
 71  textColor: {
 72    primary: {
 73      value: Color;
 74    };
 75    secondary: {
 76      value: Color;
 77    };
 78    muted: {
 79      value: Color;
 80    };
 81    placeholder: {
 82      value: Color;
 83    };
 84    active: {
 85      value: Color;
 86    };
 87    feature: {
 88      value: Color;
 89    };
 90  };
 91  syntax: {
 92    primary: SyntaxHighlightStyle;
 93    comment: SyntaxHighlightStyle;
 94    punctuation: SyntaxHighlightStyle;
 95    constant: SyntaxHighlightStyle;
 96    keyword: SyntaxHighlightStyle;
 97    function: SyntaxHighlightStyle;
 98    type: SyntaxHighlightStyle;
 99    variant: SyntaxHighlightStyle;
100    property: SyntaxHighlightStyle;
101    enum: SyntaxHighlightStyle;
102    operator: SyntaxHighlightStyle;
103    string: SyntaxHighlightStyle;
104    number: SyntaxHighlightStyle;
105    boolean: SyntaxHighlightStyle;
106    predictive: SyntaxHighlightStyle;
107  };
108  player: {
109    1: Player;
110    2: Player;
111    3: Player;
112    4: Player;
113    5: Player;
114    6: Player;
115    7: Player;
116    8: Player;
117  };
118  shadowAlpha: {
119    value: number;
120  };
121}