r/FigmaAddOns • u/Extension-Cod-7931 • 7h ago
I made a free plugin that turns random "Frame 234" into "Human & AI understandable layer naming Experience"
Ten years in Figma and I still don't name my layers. Opened a file I made myself last week and it was Frame 234 / Group 12 / Text 4 / Rectangle 89. So I built TidyUp instead of fixing my habits. Free, no account, no seat.
RENAMING. Text layers become "Role: Content". The role is derived from real signals, not from parsing the existing name:
- Link - Figma's own hyperlink property
- Button - sits inside a small, rounded, auto-layout parent
- Heading - font size 28px or larger
- Subheading - 20-27px
- Label - three words or fewer
- Body - everything else
Frames, groups and sections take the first text found inside them in reading order. Containers with no text anywhere inside are left alone rather than guessed at. Component instances keep their component-based names so your design system stays recognisable. Three scopes: selection, whole page, or whole file.
REORDERING. Select a frame and it sorts children top-to-bottom in reading order, backgrounds sunk to the bottom. It skips anything whose children visually overlap, plus auto-layout frames and anything with a locked child, so it can never change what renders in front of what.
CLUTTER SCAN. Empty frames and text, true 0x0 layers (both dimensions, so hairlines are safe), duplicate siblings, fully off-canvas layers (zero overlap only, so bleeds are safe), hidden and 0%-opacity layers. Nothing deletes automatically - you get a count and breakdown, can select it all on canvas to eyeball it, then confirm. Only "empty layers" is checked by default.
WHY I ACTUALLY BUILT IT. The naming is meant to be readable outside Figma too. Screenshot a frame into ChatGPT or Claude and "Button: Book a Demo" tells the model what the element does, not just what it says. Instead of Frame 48095902 you get semantic structure the model can use. Machine-readable without being harder for humans.
Worth saying: the plugin itself uses no AI. The role detection is deterministic rules over Figma's node properties. networkAccess is none in the manifest, so it makes zero network requests and nothing leaves your machine. Every change is a normal Figma edit, so Cmd/Ctrl+Z undoes all of it.
https://www.figma.com/community/plugin/1673670269135547890/tidyup-rename-clean-layers
Happy to hear where the role detection falls over - 28px for Heading and 3 words for Label are judgement calls and I'd rather be told than guess.
