Skip to content

Effect

Effect 描述节点或效果样式上的特效。

typescript
type Effect = DropShadowEffect | InnerShadowEffect | BlurEffect | NoiseEffect | TextureEffect | GlassEffect | MotionBlurEffect;

DropShadowEffect

typescript
interface DropShadowEffect {
  readonly type: "DROP_SHADOW";
  readonly color: RGBA;
  readonly offset: Vector;
  readonly radius: number;
  readonly spread?: number;
  readonly visible: boolean;
  readonly blendMode: BlendMode;
  readonly showShadowBehindNode?: boolean;
  readonly boundVariables?: {
    radius?: VariableAlias;
    color?: VariableAlias;
    spread?: VariableAlias;
    offsetX?: VariableAlias;
    offsetY?: VariableAlias;
  };
}

InnerShadowEffect

typescript
interface InnerShadowEffect {
  readonly type: "INNER_SHADOW";
  readonly color: RGBA;
  readonly offset: Vector;
  readonly radius: number;
  readonly spread?: number;
  readonly visible: boolean;
  readonly blendMode: BlendMode;
  readonly boundVariables?: {
    radius?: VariableAlias;
    color?: VariableAlias;
    spread?: VariableAlias;
    offsetX?: VariableAlias;
    offsetY?: VariableAlias;
  };
}

BlurEffect

typescript
type BlurEffect = BlurEffectNormal | BlurEffectProgressive;

interface BlurEffectNormal {
  readonly type: "LAYER_BLUR" | "BACKGROUND_BLUR";
  readonly radius: number;
  readonly visible: boolean;
  readonly blurType?: "NORMAL";
  readonly saturation?: number;
  readonly boundVariables?: {
    radius?: VariableAlias;
  };
}

interface BlurEffectProgressive {
  readonly type: "LAYER_BLUR" | "BACKGROUND_BLUR";
  readonly radius: number;
  readonly visible: boolean;
  readonly blurType: "PROGRESSIVE";
  readonly startRadius: number;
  readonly startOffset: Vector;
  readonly endOffset: Vector;
  readonly saturation?: number;
  readonly boundVariables?: {
    radius?: VariableAlias;
  };
}

NoiseEffect

typescript
type NoiseEffect = NoiseEffectMonotone | NoiseEffectDuotone | NoiseEffectMultitone;

interface NoiseEffectBase {
  readonly type: "NOISE";
  readonly color: RGBA;
  readonly visible: boolean;
  readonly blendMode: BlendMode;
  readonly noiseSize: number;
  readonly density: number;
  readonly boundVariables?: {};
}

interface NoiseEffectMonotone extends NoiseEffectBase {
  readonly noiseType: "MONOTONE";
}

interface NoiseEffectDuotone extends NoiseEffectBase {
  readonly noiseType: "DUOTONE";
  readonly secondaryColor: RGBA;
}

interface NoiseEffectMultitone extends NoiseEffectBase {
  readonly noiseType: "MULTITONE";
  readonly opacity: number;
}

noiseSize 在插件 API 中是 number。Pixso 内部的 { x, y } 形态不会返回。

TextureEffect

typescript
interface TextureEffect {
  readonly type: "TEXTURE";
  readonly visible: boolean;
  readonly noiseSize: number;
  readonly radius: number;
  readonly clipToShape: boolean;
  readonly boundVariables?: {};
}

纹理编辑用到的内部 transform 不会返回到插件 API。

GlassEffect

typescript
interface GlassEffect {
  readonly type: "GLASS";
  readonly visible: boolean;
  readonly lightIntensity: number;
  readonly lightAngle: number;
  readonly refraction: number;
  readonly depth: number;
  readonly dispersion: number;
  readonly radius: number;
  readonly brightness?: number;
  readonly saturation?: number;
  readonly uniformLight?: boolean;
  readonly boundVariables?: {};
}

MotionBlurEffect

typescript
interface MotionBlurEffect {
  readonly type: "MOTION_BLUR";
  readonly visible: boolean;
  readonly radius?: number;
}