import * as CSS from 'csstype'; import { ResponsiveCSSProps } from 'src/util/css-props'; declare type ColorScaleKey = 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 95; export declare type ColorScale = { [Key in ColorScaleKey]: CSS.Property.Color; }; export declare type NeutralColorScale = { [Key in 0 | ColorScaleKey | 100]: CSS.Property.Color; }; declare type TextVariantKeys = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'body' | 'smallCaps'; export declare type RequiredTextVariantProperties = Required>; export declare type TextVariants = { [Key in TextVariantKeys]: RequiredTextVariantProperties & ResponsiveCSSProps; }; export interface Theme { /** * Nucleus includes 6 semantic color scales: primary, secondary, neutral, * positive, caution, and negative. * * Each scale contains 10 values, with the following property names: * 10, 20, 30, 40, 50, 60, 70, 80, 90, and 95. These property names are * intended to match the approximate *lightness* value of the color in the * HSL color formula. The `neutral` scale includes two extra values: * 0 and 100, which correspond to black and white. * * For example, in the Nucleus theme, the value of `colors.primary[95]` * is `hsl(157, 100%, 95%)`. */ colors: { /** * Used for buttons, calls to action, and other UI elements to guide the * user through their experience. */ primary: ColorScale; /** Used sparingly for accents. */ secondary: ColorScale; /** * Used for backgrounds, borders, text, and shadows. * Used often and in a variety of contexts to add depth to UIs. */ neutral: NeutralColorScale; /** Used for success notifications and messages. */ positive: ColorScale; /** Used for caution/warning notifications and messages. */ caution: ColorScale; /** * Used for error notifications and messages, and error styles on form * elements. */ negative: ColorScale; }; /** * The purpose of the Nucleus spacing scale is to add constraints to the * number of options for spacing, without adding a layer of abstraction on * top of pixel values. The scale has numbered properties with corresponding * `px` values. */ space: { 2: '2px'; 4: '4px'; 8: '8px'; 12: '12px'; 16: '16px'; 24: '24px'; 32: '32px'; 40: '40px'; 48: '48px'; 64: '64px'; 80: '80px'; 96: '96px'; }; /** * Nucleus encourages a mobile-first design and development approach. * Base/mobile styles are written first, and styles for larger devices are * wrapped in `min-width` media queries. */ breakpoints: { tablet: '550px'; laptop: '1100px'; desktop: '1500px'; }; fonts: { /** Default body font family */ body: CSS.Property.FontFamily; /** Default monospace family for `
`, ``, etc. */
        monospace: CSS.Property.FontFamily;
    };
    text: TextVariants;
}
export {};