UNPKG

otion

Version:

Atomic CSS-in-JS with a featherweight runtime

33 lines (26 loc) 967 B
/* eslint-disable @typescript-eslint/no-explicit-any */ import * as CSS from "csstype"; export type CSSProperties = CSS.PropertiesFallback<string | number>; export type ScopedCSSProperties = Omit<CSSProperties, "all">; export type CSSRules< P extends Record<string, any> = CSSProperties > = CSSStyleRules<P> & CSSGroupingRules<P>; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface ScopedCSSRules extends CSSRules<ScopedCSSProperties> {} export type CSSStyleRules<P extends Record<string, any> = CSSProperties> = P & { [pseudo in CSS.SimplePseudos]?: P } & { selectors?: { [selector: string]: P }; }; export interface CSSGroupingRules< P extends Record<string, any> = CSSProperties > { "@media"?: { [conditionText: string]: CSSRules<P>; }; "@supports"?: { [conditionText: string]: CSSRules<P>; }; } export type CSSKeyframeRules = | { [time in "from" | "to"]?: CSSProperties } | { [time: string]: CSSProperties };