set_axis_align
Align auto-layout frames in Figma by defining primary and counter axis alignment to optimize design layouts programmatically.
Instructions
Set primary and counter axis alignment for an auto-layout frame in Figma
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
}
Implementation Reference
- The handler function for the MCP tool 'set_axis_align'. It validates inputs using Zod schema, sends a 'set_axis_align' command to the Figma plugin via WebSocket, and returns success/error messages.// Set Axis Align Tool server.tool( "set_axis_align", "Set primary and counter axis alignment for an auto-layout frame in Figma", { nodeId: z.string().describe("The ID of the frame to modify"), primaryAxisAlignItems: z .enum(["MIN", "MAX", "CENTER", "SPACE_BETWEEN"]) .optional() .describe("Primary axis alignment (MIN/MAX = left/right in horizontal, top/bottom in vertical). Note: When set to SPACE_BETWEEN, itemSpacing will be ignored as children will be evenly spaced."), counterAxisAlignItems: z .enum(["MIN", "MAX", "CENTER", "BASELINE"]) .optional() .describe("Counter axis alignment (MIN/MAX = top/bottom in horizontal, left/right in vertical)") }, async ({ nodeId, primaryAxisAlignItems, counterAxisAlignItems }) => { try { const result = await sendCommandToFigma("set_axis_align", { nodeId, primaryAxisAlignItems, counterAxisAlignItems }); const typedResult = result as { name: string }; // Create a message about which alignments were set const alignMessages = []; if (primaryAxisAlignItems !== undefined) alignMessages.push(`primary: ${primaryAxisAlignItems}`); if (counterAxisAlignItems !== undefined) alignMessages.push(`counter: ${counterAxisAlignItems}`); const alignText = alignMessages.length > 0 ? `axis alignment (${alignMessages.join(', ')})` : "axis alignment"; return { content: [ { type: "text", text: `Set ${alignText} for frame "${typedResult.name}"`, }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error setting axis alignment: ${error instanceof Error ? error.message : String(error)}`, }, ], }; } } );
- Input schema for the 'set_axis_align' tool using Zod validation for nodeId, primaryAxisAlignItems, and counterAxisAlignItems.nodeId: z.string().describe("The ID of the frame to modify"), primaryAxisAlignItems: z .enum(["MIN", "MAX", "CENTER", "SPACE_BETWEEN"]) .optional() .describe("Primary axis alignment (MIN/MAX = left/right in horizontal, top/bottom in vertical). Note: When set to SPACE_BETWEEN, itemSpacing will be ignored as children will be evenly spaced."), counterAxisAlignItems: z .enum(["MIN", "MAX", "CENTER", "BASELINE"]) .optional() .describe("Counter axis alignment (MIN/MAX = top/bottom in horizontal, left/right in vertical)") },
- src/talk_to_figma_mcp/server.ts:2020-2023 (registration)Registration of the 'set_axis_align' MCP tool using server.tool() with description, schema, and handler.// Set Axis Align Tool server.tool( "set_axis_align", "Set primary and counter axis alignment for an auto-layout frame in Figma",