mirror of
https://github.com/KwiTsukasa/figma-local-context-mcp.git
synced 2026-05-27 16:45:46 +08:00
139 lines
2.8 KiB
TypeScript
139 lines
2.8 KiB
TypeScript
export type Guid = {
|
|
sessionID: number
|
|
localID: number
|
|
}
|
|
|
|
export type FigmaMatrix = {
|
|
m00: number
|
|
m01: number
|
|
m02: number
|
|
m10: number
|
|
m11: number
|
|
m12: number
|
|
}
|
|
|
|
export type FigArcData = {
|
|
startingAngle?: number
|
|
endingAngle?: number
|
|
innerRadius?: number
|
|
}
|
|
|
|
export type FigColor = {
|
|
r: number
|
|
g: number
|
|
b: number
|
|
a: number
|
|
}
|
|
|
|
export type FigPaint = {
|
|
type: "SOLID" | "GRADIENT_LINEAR" | string
|
|
color?: FigColor
|
|
opacity?: number
|
|
visible?: boolean
|
|
stops?: Array<{ color: FigColor; position: number }>
|
|
transform?: FigmaMatrix
|
|
image?: { hash?: Uint8Array | number[] | string; name?: string }
|
|
imageThumbnail?: { hash?: Uint8Array | number[] | string; name?: string }
|
|
imageScaleMode?: "FILL" | "FIT" | "STRETCH" | "TILE" | string
|
|
originalImageWidth?: number
|
|
originalImageHeight?: number
|
|
}
|
|
|
|
export type FigTextGlyph = {
|
|
commandsBlob: number
|
|
position?: { x: number; y: number }
|
|
fontSize?: number
|
|
firstCharacter?: number
|
|
advance?: number
|
|
rotation?: number
|
|
}
|
|
|
|
export type FigTextStyleOverride = {
|
|
styleID?: number
|
|
fillPaints?: FigPaint[]
|
|
fontSize?: number
|
|
}
|
|
|
|
export type FigTextData = {
|
|
characters?: string
|
|
characterStyleIDs?: number[]
|
|
styleOverrideTable?: FigTextStyleOverride[]
|
|
lines?: unknown[]
|
|
}
|
|
|
|
export type FigDerivedTextData = {
|
|
glyphs?: FigTextGlyph[]
|
|
layoutSize?: { x: number; y: number }
|
|
baselines?: Array<{
|
|
position?: { x: number; y: number }
|
|
width?: number
|
|
lineY?: number
|
|
lineHeight?: number
|
|
lineAscent?: number
|
|
firstCharacter?: number
|
|
endCharacter?: number
|
|
}>
|
|
}
|
|
|
|
export type FigGeometry = {
|
|
commandsBlob: number
|
|
windingRule?: string
|
|
styleID?: number
|
|
}
|
|
|
|
export type FigEffect = {
|
|
type: string
|
|
visible?: boolean
|
|
offset?: { x: number; y: number }
|
|
radius?: number
|
|
spread?: number
|
|
showShadowBehindNode?: boolean
|
|
color?: FigColor
|
|
}
|
|
|
|
export type FigNode = {
|
|
guid: Guid
|
|
parentIndex?: { guid: Guid; position?: string }
|
|
type?: string
|
|
name?: string
|
|
visible?: boolean
|
|
opacity?: number
|
|
size?: { x: number; y: number }
|
|
transform?: FigmaMatrix
|
|
strokeWeight?: number
|
|
strokeAlign?: "CENTER" | "INSIDE" | "OUTSIDE"
|
|
dashPattern?: number[]
|
|
frameMaskDisabled?: boolean
|
|
mask?: boolean
|
|
maskType?: "OUTLINE" | "ALPHA" | string
|
|
exportSettings?: Array<{ useAbsoluteBounds?: boolean; contentsOnly?: boolean; [key: string]: unknown }>
|
|
arcData?: FigArcData
|
|
fillPaints?: FigPaint[]
|
|
strokePaints?: FigPaint[]
|
|
fillGeometry?: FigGeometry[]
|
|
strokeGeometry?: FigGeometry[]
|
|
effects?: FigEffect[]
|
|
fontSize?: number
|
|
textData?: FigTextData
|
|
derivedTextData?: FigDerivedTextData
|
|
}
|
|
|
|
export type FigJson = {
|
|
type?: string
|
|
sessionID?: number
|
|
ackID?: number
|
|
nodeChanges?: FigNode[]
|
|
blobs?: string[]
|
|
__figmaToJson?: {
|
|
schema: string
|
|
delimiter: number
|
|
}
|
|
}
|
|
|
|
export type Bounds = {
|
|
minX: number
|
|
minY: number
|
|
maxX: number
|
|
maxY: number
|
|
}
|