reablocks
Version:
Component library for React
90 lines (89 loc) • 1.84 kB
TypeScript
export interface Palette {
background?: string;
color?: string;
'background-hover'?: string;
'color-hover'?: string;
}
export interface Palettes {
body?: Palette;
primary?: Palette;
secondary?: Palette;
error?: Palette;
warning?: Palette;
success?: Palette;
info?: Palette;
disabled?: Palette;
}
export interface Scale {
50?: string;
100?: string;
200?: string;
300?: string;
400?: string;
500?: string;
600?: string;
700?: string;
800?: string;
900?: string;
}
export interface Sizes {
xs?: number | string;
sm?: number | string;
md?: number | string;
lg?: number | string;
xl?: number | string;
xxl?: number | string;
}
export interface Weights {
thin?: string;
normal?: string;
bold?: string;
extraBold?: string;
}
export type Color = Scale;
export type Spacings = Sizes;
export interface Borders {
radius?: Sizes;
}
export type Shadows = Scale;
export interface Colors {
black?: string;
white?: string;
red?: Color;
purple?: Color;
blue?: Color;
green?: Color;
yellow?: Color;
orange?: Color;
gray?: Color;
pink?: Color;
slate?: Color;
overlay?: Color;
primary?: Color;
secondary?: Color;
}
export interface FontFamilies {
fontFamily?: string;
monoFontFamily?: string;
}
export interface Typography {
families?: FontFamilies;
sizes?: Sizes;
weights?: Weights;
}
export interface Components {
[key: string]: {
[key: string]: string;
};
}
export type Gradients = Omit<Colors, 'overlay'>;
export interface Theme {
palettes?: Palettes;
colors?: Colors;
spacings?: Spacings;
borders?: Borders;
gradients?: Gradients;
shadows?: Shadows;
typography?: Typography;
components?: Components;
}