UNPKG

@thangk/easythemer

Version:

Easily generate shades from a colour palette for use in your app

56 lines (55 loc) 1.61 kB
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: {}; };