UNPKG

@types/gradient-parser

Version:
127 lines (106 loc) 3.09 kB
export interface LinearGradientNode { type: "linear-gradient"; orientation?: DirectionalNode | AngularNode | undefined; colorStops: ColorStop[]; } export interface RepeatingLinearGradientNode { type: "repeating-linear-gradient"; orientation?: DirectionalNode | AngularNode | undefined; colorStops: ColorStop[]; } export interface RadialGradientNode { type: "radial-gradient"; orientation?: Array<ShapeNode | DefaultRadialNode | ExtentKeywordNode> | undefined; colorStops: ColorStop[]; } export interface RepeatingRadialGradientNode { type: "repeating-radial-gradient"; orientation?: Array<ShapeNode | DefaultRadialNode | ExtentKeywordNode> | undefined; colorStops: ColorStop[]; } export interface DirectionalNode { type: "directional"; value: | "left" | "top" | "bottom" | "right" | "left top" | "top left" | "left bottom" | "bottom left" | "right top" | "top right" | "right bottom" | "bottom right"; } export interface AngularNode { type: "angular"; value: string; } export interface LiteralNode { type: "literal"; value: string; length?: PxNode | EmNode | PercentNode | undefined; } export interface HexNode { type: "hex"; value: string; length?: PxNode | EmNode | PercentNode | undefined; } export interface RgbNode { type: "rgb"; value: [string, string, string]; length?: PxNode | EmNode | PercentNode | undefined; } export interface RgbaNode { type: "rgba"; value: [string, string, string, string?]; length?: PxNode | EmNode | PercentNode | undefined; } export interface ShapeNode { type: "shape"; style?: ExtentKeywordNode | PxNode | EmNode | PercentNode | PositionKeywordNode | undefined; value: "ellipse" | "circle"; at?: PositionNode | undefined; } export interface DefaultRadialNode { type: "default-radial"; at: PositionNode; } export interface PositionKeywordNode { type: "position-keyword"; value: "center" | "left" | "top" | "bottom" | "right"; } export interface PositionNode { type: "position"; value: { x: ExtentKeywordNode | PxNode | EmNode | PercentNode | PositionKeywordNode; y: ExtentKeywordNode | PxNode | EmNode | PercentNode | PositionKeywordNode; }; } export interface ExtentKeywordNode { type: "extent-keyword"; value: "closest-side" | "closest-corner" | "farthest-side" | "farthest-corner" | "contain" | "cover"; at?: PositionNode | undefined; } export interface PxNode { type: "px"; value: string; } export interface EmNode { type: "em"; value: string; } export interface PercentNode { type: "%"; value: string; } export type ColorStop = LiteralNode | HexNode | RgbNode | RgbaNode; export type GradientNode = | LinearGradientNode | RepeatingLinearGradientNode | RadialGradientNode | RepeatingRadialGradientNode; export function parse(value: string): GradientNode[]; export function stringify(ast: GradientNode[]): string;