51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
/**
|
|
* the type for all the weight scss variables exported from fonts.module.scss
|
|
*/
|
|
export interface IWeights {
|
|
light_weight: number;
|
|
regular_weight: number;
|
|
normal_weight: number;
|
|
bold_weight: number;
|
|
semi_bold_weight: number;
|
|
black_weight: number;
|
|
}
|
|
|
|
/**
|
|
* the type for all the size scss variables exported from fonts.module.scss
|
|
*/
|
|
export interface ISizes {
|
|
x_small_size: number;
|
|
small_size: number;
|
|
medium_size: number;
|
|
large_size: number;
|
|
x_large_size: number;
|
|
xx_large_size: number;
|
|
}
|
|
|
|
/**
|
|
* the type for all the line height scss variables exported from fonts.module.scss
|
|
*/
|
|
export interface LineHeight {
|
|
x_small_line_height: number;
|
|
small_line_height: number;
|
|
medium_line_height: number;
|
|
large_line_height: number;
|
|
x_large_line_height: number;
|
|
xx_large_line_height: number;
|
|
}
|
|
|
|
/** A utility type that removes the _weight postfix from the variable names for weights */
|
|
export type Weight = keyof IWeights extends `${infer U}_weight` ? U : never;
|
|
|
|
/** A utility type that removes the _size postfix from the variable names for sizes */
|
|
export type Size = keyof ISizes extends `${infer U}_size` ? U : never;
|
|
|
|
/**
|
|
* This is a file that we need to create to tell typescript what the shape of the css modules is
|
|
* when we import them into ts/tsx files
|
|
*/
|
|
export type IFonts = IWeights & ISizes & LineHeight;
|
|
|
|
declare const fonts: IFonts;
|
|
export default fonts;
|