@thangk/easythemer
Version:
Easily generate shades from a colour palette for use in your app
56 lines (55 loc) • 1.61 kB
TypeScript
import { TYPE } from "../constants";
import type { UseThemerProp } from "../types";
/**
* **shadeOptions**
* - colour input from user to generate theme
* - user's input is validated first, if errors, return error and stop
* - if no errors, merge with default options
* - apply options to generate theme
*
* **shadeFactorsSets**
* - if user provides custom shades, validate first
* - if no errors, merge with default shades
* - apply shades to generate theme
*
* @param InputObject
* @returns
*/
export default function useThemer(props: UseThemerProp): {
errors: {};
shadesSet: null;
shadeOptions: null;
shadeFactorsSets: null;
} | {
shadeOptions: {
type: TYPE.SHADE_OPTION;
optionName: string;
hex: string;
generateShades: boolean;
channelParams?: {
type: TYPE.CHANNEL_PARAMS;
channel: string;
useBounds?: boolean | undefined;
upperboundDivider?: number | undefined;
lowerboundDivider?: number | undefined;
upperboundPadding?: number | undefined;
lowerboundPadding?: number | undefined;
}[] | undefined;
}[];
shadeFactorsSets: {
type: TYPE.SHADE_FACTORS_SET;
setName: string;
shadeFactors: {
[shadeFactorName: string]: number;
};
} | undefined;
shadesSets: {
type: TYPE.SHADES_SET;
setName: string;
shades: {
[shadeName: string]: string;
};
}[];
shadesSet: null;
errors: {};
};