UNPKG

@platform/css

Version:

Helpers for working with inline CSS.

94 lines (93 loc) 3.28 kB
/// <reference types="react" /> import * as t from './common/types'; import { transform } from './css/css'; export declare class CssValue { } export declare type Falsy = undefined | null | false; export declare type CssProps = React.CSSProperties; export declare type CssPropsMap = { [selector: string]: CssPropsMapObject; }; export declare type CssPropsMapObject = CssProps & { ':first-child'?: CssProps; ':last-child'?: CssProps; ':focus'?: CssProps; ':hover'?: CssProps; ':visited'?: CssProps; }; export declare type CssClassName = (...styles: Array<CssProps | undefined>) => string; export declare type CssMergeRules = (...rules: any[]) => CssProps; export declare type CssFormat = (...styles: Array<t.CssProps | CssValue | Falsy>) => CssValue; export declare type ICssStyle = { transform: typeof transform; format: CssFormat; global: CssGlobal; head: ICssHead; image: CssFormatImage; toEdges: CssToEdges<CssEdges>; toMargins: CssToEdges<CssMarginEdges>; toPadding: CssToEdges<CssPaddingEdges>; toShadow: CssToShadow; toPosition: CssToPosition; toAbsolute: CssToAbsolute; toRadius: CssToRadius; }; export declare type CssGlobal = (styles: CssPropsMap, options?: { prefix?: string; }) => void; export declare type ICssHead = { importStylesheet(url: string): ICssHead; }; declare type N = string | number | null | undefined; export declare type CssEdgeInput = N; export declare type CssEdgesInput = N | [N] | [N, N] | [N, N, N, N]; export declare type CssToEdges<T> = (input?: CssEdgesInput | [], options?: { defaultValue?: CssEdgesInput; }) => Partial<T>; export declare type CssEdges = { top: string | number; right: string | number; bottom: string | number; left: string | number; }; export declare type CssMarginEdges = { marginTop: string | number; marginRight: string | number; marginBottom: string | number; marginLeft: string | number; }; export declare type CssPaddingEdges = { paddingTop: string | number; paddingRight: string | number; paddingBottom: string | number; paddingLeft: string | number; }; export declare type CssFormatImageOptions = { width?: number; height?: number; }; export declare type CssFormatImage = (image1x: string | undefined, image2x: string | undefined, options?: CssFormatImageOptions) => ICssBackgroundImage; export declare type ICssBackgroundImage = { backgroundImage: string; width?: number; height?: number; backgroundSize: string; backgroundRepeat: string; }; export declare type CssToShadow = (input?: CssShadow) => string | undefined; export declare type CssShadow = { color: number | string; blur: number; x?: number; y?: number; inner?: boolean; }; export declare type CssPosition = 'absolute' | 'fixed' | 'relative' | 'static' | 'sticky'; export declare type CssEdgePosition = CssEdges & { position: CssPosition; }; export declare type CssToPosition = (position: CssPosition, edges: CssEdgesInput) => CssEdgePosition; export declare type CssToAbsolute = (edges: CssEdgesInput) => CssEdgePosition; export declare type CssRadiusInput = N | [N, N, N, N]; export declare type CssToRadius = (corner: CssRadiusInput) => string | undefined; export {};