sketch-json-parse
Version:
sketch-json解析
151 lines (150 loc) • 2.75 kB
TypeScript
/**
* 颜色
*/
export type PColor = {
red: number;
green: number;
blue: number;
alpha: number;
swatchID?: string;
};
/**
* 属性
*/
export type Property = {
name: string;
position: {
x: number;
y: number;
};
size: {
width: number;
height: number;
};
opacity: number;
radius: number[];
symbolName?: string;
sharedLayerStyleName?: string;
sharedTextStyleName?: string;
};
declare enum Alignment {
Left = 0,// 水平左对齐
Right = 1,// 水平右对齐
Center = 2,// 水平居中对齐
Justify = 3
}
declare enum VerticalAlignment {
Top = 0,// 垂直顶部对齐
Center = 1,// 垂直居中对齐
Bottom = 2
}
/**
* 字体
*/
export type TypeFace = {
fontFamily: string;
fontWeight: string;
alignment: Alignment;
verticalAlignment: VerticalAlignment;
color: PColor;
fontSize: number;
letterSpacing: number;
lineHeight: number;
paragraphSpacing: number;
content: string;
};
declare enum FillType {
PureColor = 0,// 纯色填充类型
linearGradient = 1,// 线性渐变类型
radialGradient = 2,// 径向渐变类型
angularGradient = 3
}
/**
* 渐变节点
*/
export type Stop = {
position: number;
color: PColor;
};
/**
* 线性渐变填充
*/
export type LinearGradientFill = {
type: FillType.linearGradient;
stops: Stop[];
};
/**
* 径向渐变填充
*/
export type RadialGradientFill = {
type: FillType.radialGradient;
stops: Stop[];
};
/**
* 环型渐变填充
*/
export type AngularGradientFill = {
type: FillType.angularGradient;
stops: Stop[];
};
/**
* 纯色填充
*/
export type PrueColorFill = {
type: FillType.PureColor;
color: PColor;
};
/**
* 填充
*/
export type Fill = PrueColorFill | LinearGradientFill | RadialGradientFill | AngularGradientFill;
/**
* 边框位置
*/
declare enum BorderPosition {
Center = 0,// 中间边框
Inside = 1,// 内边框
Outside = 2
}
/**
* 边框
* inside 内边框
* center 中心边框
* outside 外边框
*/
export type PBorder = {
position: BorderPosition;
thickness: number;
fill: Fill;
};
/**
* 阴影类型
*/
declare enum ShadowType {
Inner = 0,// 内阴影
Normal = 1
}
/**
* 阴影
*/
export type Shadow = {
type: ShadowType;
offsetX: number;
offsetY: number;
blurRadius: number;
spread: number;
color: PColor;
};
/**
* 属性面板 code: shape代表shapePath等图层转换为了图片
*/
export type Panel = {
properties: Property;
fills: Fill[];
typefaces: TypeFace[];
borders: PBorder[];
styleBorder?: any;
shadows: Shadow[];
code: string;
};
export {};