Linework

A Figma plugin that draws consistent icon sets from a text list

Ida LundLaunched 3 weeks agoPluginWorking · checked 3 hours ago
0:42

About

Type a list of words, pick a stroke weight and corner style, and Linework draws a matching set of icons on a 24px grid. Every icon is editable vectors, not an image.

The plugin is private for now, but here is exactly how it was made, including the prompt that keeps every icon on the same grid.

How it was made

Shared by the maker. Numbers are their own estimate.

Build time
2 weekends
AI spend
$19
Prompts
~88
Written by AI
90%

Agents

  • Claude Code

    76% of the work

    Plugin code and the geometry rules

  • ChatGPT

    24% of the work

    Icon descriptions and naming

MCP servers1

  • Figma

    Agent inspects the output frames and fixes alignment itself

Build recipe

The code isn’t public. This is the whole project as one prompt: paste it into your own agent to build the same thing.

Written by Claude Code

From the project’s code and history · 357 words

Build a plugin called Linework: a Figma plugin that draws consistent icon sets from a text list.

What it does

Type a list of words, pick a stroke weight and corner style, and Linework draws a matching set of icons on a 24px grid. Every icon is editable vectors, not an image.

Stack

Use TypeScript, Figma API. The original was built with Claude Code and ChatGPT in 2 weekends, for about $19 in AI usage.

How it fits together

  • A plugin for the host app's API with a small settings panel
  • The core logic as plain, testable functions
  • A check step that reads back the result and fixes it

Build it in this order

  1. Read the host's plugin API and run its hello world
  2. Write the core logic as pure functions with tests
  3. Wire it into the plugin UI
  4. Add a step that inspects the output and corrects mistakes
  5. Publish it to the host's community

Tools to connect

  • Figma MCP: agent inspects the output frames and fixes alignment itself

A prompt that worked: Keep every icon on the grid

Every icon must sit on a 24×24 grid with 2px padding, use only 0°, 45° and 90° lines plus circular arcs, and have stroke ends that are either round or butt depending on the setting. After drawing each icon, use the Figma MCP to read back the node and check: bounding box, stroke width, and that no point is off the 0.5px grid. Fix anything that fails before moving on.

Watch out for

  • Keep the host's undo working; one action should be one undo step
  • Test on large files, not just a blank document

Done when

  • It works on a large real file
  • One action undoes cleanly
  • The core logic has tests

Before writing code, ask me up to five questions about who this design plugin is for and what the first version must do. Then work in small steps: after each one, tell me how to try it and wait for my feedback.

Discussion

3 comments

  • Lena Vogt6 hours ago

    Love how focused this is. One thing: the empty state took me a second to understand. Maybe show an example right away?

  • Kenji Mori1 day ago

    What did the agent struggle with most? Always curious where people had to step in.

    • Ida LundMaker2 hours ago

      Thanks! Good question, I'll write it up in the build log this week.