set_letter_spacing
Adjust letter spacing of text nodes in Figma using natural language commands through the Claude Talk to Figma MCP server, enhancing typography and design precision.
Instructions
Set the letter spacing of a text node 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 that executes the tool logic: sends 'set_letter_spacing' command to Figma via websocket, type-casts the result, and returns a formatted text response or error.async ({ nodeId, letterSpacing, unit }) => { try { const result = await sendCommandToFigma("set_letter_spacing", { nodeId, letterSpacing, unit: unit || "PIXELS" }); const typedResult = result as { name: string, letterSpacing: { value: number, unit: string } }; return { content: [ { type: "text", text: `Updated letter spacing of node "${typedResult.name}" to ${typedResult.letterSpacing.value} ${typedResult.letterSpacing.unit}` } ] }; } catch (error) { return { content: [ { type: "text", text: `Error setting letter spacing: ${error instanceof Error ? error.message : String(error)}` } ] }; } }
- Zod schema defining the input parameters for the set_letter_spacing tool.{ nodeId: z.string().describe("The ID of the text node to modify"), letterSpacing: z.number().describe("Letter spacing value"), unit: z.enum(["PIXELS", "PERCENT"]).optional().describe("Unit type (PIXELS or PERCENT)"), },
- src/talk_to_figma_mcp/tools/text-tools.ts:266-301 (registration)The server.tool() registration of the set_letter_spacing tool, including name, description, input schema, and inline handler.server.tool( "set_letter_spacing", "Set the letter spacing of a text node in Figma", { nodeId: z.string().describe("The ID of the text node to modify"), letterSpacing: z.number().describe("Letter spacing value"), unit: z.enum(["PIXELS", "PERCENT"]).optional().describe("Unit type (PIXELS or PERCENT)"), }, async ({ nodeId, letterSpacing, unit }) => { try { const result = await sendCommandToFigma("set_letter_spacing", { nodeId, letterSpacing, unit: unit || "PIXELS" }); const typedResult = result as { name: string, letterSpacing: { value: number, unit: string } }; return { content: [ { type: "text", text: `Updated letter spacing of node "${typedResult.name}" to ${typedResult.letterSpacing.value} ${typedResult.letterSpacing.unit}` } ] }; } catch (error) { return { content: [ { type: "text", text: `Error setting letter spacing: ${error instanceof Error ? error.message : String(error)}` } ] }; } } );
- TypeScript union type FigmaCommand that lists 'set_letter_spacing' as one of the supported commands sent to the Figma plugin.export type FigmaCommand = | "get_document_info" | "get_selection" | "get_node_info" | "create_rectangle" | "create_frame" | "create_text" | "create_ellipse" | "create_polygon" | "create_star" | "create_vector" | "create_line" | "set_fill_color" | "set_stroke_color" | "move_node" | "resize_node" | "delete_node" | "get_styles" | "get_local_components" | "get_team_components" | "create_component_instance" | "export_node_as_image" | "join" | "set_corner_radius" | "clone_node" | "set_text_content" | "scan_text_nodes" | "set_multiple_text_contents" | "set_auto_layout" | "set_font_name" | "set_font_size" | "set_font_weight" | "set_letter_spacing" | "set_line_height" | "set_paragraph_spacing" | "set_text_case" | "set_text_decoration" | "get_styled_text_segments" | "load_font_async" | "get_remote_components" | "set_effects" | "set_effect_style_id" | "group_nodes" | "ungroup_nodes" | "flatten_node" | "insert_child";