Skip to main content
Glama

set_layout_sizing

Configure horizontal and vertical sizing modes for auto-layout frames in Figma to control how elements adapt to content or fill available space.

Instructions

Set horizontal and vertical sizing modes for an auto-layout frame in Figma

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nodeIdYesThe ID of the frame to modify
layoutSizingHorizontalNoHorizontal sizing mode (HUG for frames/text only, FILL for auto-layout children only)
layoutSizingVerticalNoVertical sizing mode (HUG for frames/text only, FILL for auto-layout children only)

Implementation Reference

  • MCP tool registration for 'set_layout_sizing'. Includes inline schema (zod validation for params: nodeId (string), layoutSizingHorizontal/FILL (optional enums FIXED/HUG/FILL)) and handler function that forwards the set_layout_sizing command to the underlying Figma plugin via sendCommandToFigma, returning success/error messages.
    server.tool(
      "set_layout_sizing",
      "Set horizontal and vertical sizing modes for an auto-layout frame in Figma",
      {
        nodeId: z.string().describe("The ID of the frame to modify"),
        layoutSizingHorizontal: z
          .enum(["FIXED", "HUG", "FILL"])
          .optional()
          .describe("Horizontal sizing mode (HUG for frames/text only, FILL for auto-layout children only)"),
        layoutSizingVertical: z
          .enum(["FIXED", "HUG", "FILL"])
          .optional()
          .describe("Vertical sizing mode (HUG for frames/text only, FILL for auto-layout children only)")
      },
      async ({ nodeId, layoutSizingHorizontal, layoutSizingVertical }) => {
        try {
          const result = await sendCommandToFigma("set_layout_sizing", {
            nodeId,
            layoutSizingHorizontal,
            layoutSizingVertical
          });
          const typedResult = result as { name: string };
    
          // Create a message about which sizing modes were set
          const sizingMessages = [];
          if (layoutSizingHorizontal !== undefined) sizingMessages.push(`horizontal: ${layoutSizingHorizontal}`);
          if (layoutSizingVertical !== undefined) sizingMessages.push(`vertical: ${layoutSizingVertical}`);
    
          const sizingText = sizingMessages.length > 0
            ? `layout sizing (${sizingMessages.join(', ')})`
            : "layout sizing";
    
          return {
            content: [
              {
                type: "text",
                text: `Set ${sizingText} for frame "${typedResult.name}"`,
              },
            ],
          };
        } catch (error) {
          return {
            content: [
              {
                type: "text",
                text: `Error setting layout sizing: ${error instanceof Error ? error.message : String(error)}`,
              },
            ],
          };
        }
      }
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pipethedev/Talk-to-Figma-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server