
Como criar plugins do Figma sem saber programar, usando Claude Code para resolver problemas reais de Design Systems
Vou contar uma coisa que talvez te surpreenda: semana passada eu criei um plugin pro Figma. Do zero. Em uma tarde. E eu não sou dev.
Não estou falando de arrastar blocos no-code. Estou falando de um plugin real, que roda no Figma Desktop, que o time inteiro pode usar, e que resolve um problema que me incomodava há meses: verificar se os componentes de uma tela estão usando os tokens certos do nosso Design System.
O segredo? Claude Code.
Se você trabalha com Design System (em qualquer empresa grande), sabe que a adoção nunca é 100%. Sempre tem alguém usando cor hardcoded, tipografia fora da escala, espaçamento “no olho”. E a gente, como designer que cuida do sistema, descobre isso tarde, geralmente no code review, quando já virou código.
Eu queria algo que avisasse antes. Direto no Figma. Tipo um linter, mas para design.
Procurei plugins na Community. Achei coisas genéricas. Nenhum entendia nossos tokens, nossas convenções, nosso contexto. E aí pensei: e se eu criar o meu?
Antes de IA, a jornada seria mais ou menos assim:
Eu desisti dessa jornada pelo menos três vezes nos últimos dois anos. Com Claude Code, a jornada virou outra:
A diferença não é só de velocidade. É de quem pode fazer e estrutura o problema e algumas partes – além de ir executando pouco a pouco de forma organizada e em etapas.
Antes de entrar no processo, vale entender o que compõe um plugin. É simples:
meu-plugin/
manifest.json → identidade e permissões
code.ts → lógica principal (TypeScript)
ui.html → interface do plugin (opcional)
package.json → dependências
tsconfig.json → configuração do TypeScript
O manifest.json é tipo o RG do plugin, diz o nome, o que ele pode fazer, e quais arquivos usar. O code.ts é onde mora a lógica. O ui.html é a interface que aparece pro usuário quando ele abre o plugin.
A API do Figma dá acesso a praticamente tudo: layers, propriedades, cores, textos, componentes, variáveis. Tudo que você vê no painel de propriedades, o plugin consegue ler e modificar.
Vou mostrar como fiz passo a passo. Não precisa segui-lo exatamente, o principal objetivo é mostrar o método e a estruturação do problema dividida em partes para a execução:
Passo 1: Começar o projeto
Aqui você tem dois caminhos, escolhe o que fizer mais sentido pra você:
Caminho A: Começar pelo Figma (mais visual)
Abre o Figma Desktop, vai em Plugins → Development → New Plugin, escolhe um template (recomendo “Custom UI” pra ter interface) e o Figma gera a pasta com todos os arquivos iniciais. Depois é só abrir essa pasta no VS Code com Claude Code e começar a iterar de lá. Esse caminho é bom porque o Figma já cria o manifest.json com um ID válido e a estrutura certinha, você não precisa se preocupar com configuração.
Caminho B: Começar pelo Claude Code (mais direto)
Abre o Claude Code no terminal e descreve o que quer:
“Cria um plugin pro Figma que verifica se as cores, tipografias e espaçamentos de uma tela estão usando tokens do Design System.
O plugin deve:
– Escanear todos os nodes da página atual;
– Verificar se as cores são tokens válidos;
– Verificar se os tamanhos de fonte seguem a escala tipográfica;
– Verificar se os espaçamentos são múltiplos de 4;
– Mostrar os erros numa lista lateral com nome do layer e o problema;
– Ao clicar num erro, selecionar o node no canvas.”
Isso. Em português, descrevendo o comportamento que eu queria como designer.
Nos dois caminhos, o ponto de chegada é o mesmo: uma pasta com os arquivos do plugin aberta no Claude Code, pronta para iterar.
Passo 2: Claude Code gera tudo
Em menos de 2 minutos, o Claude gerou:
Não precisei escrever uma linha de JavaScript. Algo que acelerou processos, por exemplo, jornada de aprendizagem da stack e conteúdos de programação.
Passo 3: Testar no Figma
Abri o Figma Desktop, fui em Plugins → Development → Import plugin from manifest, selecionei o manifest.json que o Claude gerou, e rodei.
Na primeira tentativa já funcionou parcialmente. A verificação de cores rodou, mas os erros não estavam mostrando o nome correto dos layers.
Passo 4: Iterar
Voltei pro Claude Code e escrevi:
“Os nomes dos layers estão aparecendo como ‘undefined’. Ajusta pra mostrar o node.name de cada layer com erro.”
Dois segundos depois, corrigido. Testei de novo. Funcionou.
Fiz mais umas cinco iterações: ajustei as cores da UI, adicionei um filtro por tipo de erro, mudei o layout da lista. Cada iteração levou menos de um minuto.
Passo 5: Personalizar com contexto do DS
A parte mais legal foi quando eu passei os tokens reais do IFDS – o Ifood Design System pro Claude:
“Aqui estão os tokens de cor do nosso DS (exemplo):
– surface-primary: #FFFFFF
– surface-secondary: #F5F5F5
– text-default: #1A1A2E
– action-primary: #EA1D2C
[…]
Atualiza a validação pra usar esses tokens como referência.”
Em vez de um linter genérico, agora eu tinha um linter que entende o nosso Design System. Que sabe que #EA1D2C é action-primary e que #EA1D2D (um caractere de diferença) é um erro.
Pra quem tem curiosidade, aqui vai um pedaço da função que verifica cores:
function checkColors(node: SceneNode) {
if (‘fills’ in node && Array.isArray(node.fills)) {
for (const fill of node.fills) {
if (fill.type === ‘SOLID’) {
const hex = rgbToHex(fill.color);
if (!isValidToken(hex, colorTokens)) {
errors.push({
nodeId: node.id,
nodeName: node.name,
issue: ‘Cor fora do DS’,
found: hex,
suggestion: findClosestToken(hex, colorTokens)
});
}
}
}
}
}
Eu não escrevi isso. Mas eu entendo o que faz. E o mais importante: eu consigo explicar para o meu time o que cada parte faz, porque o Claude gera código limpo e comentado, e também posso perguntar o que aquilo quer dizer a qualquer momento.
O ponto não é “designer virando dev”. É designer resolvendo seu próprio problema com a ferramenta certa.
Se você está pensando “legal, mas o que EU criaria?”, aqui vão algumas ideias que me ocorreram durante o processo:
Cada um desses dá pra criar em uma tarde com Claude Code. E cada um resolve um problema real que a gente enfrenta todo dia.
Plugins não precisam ser só utilitários simples. Com IA, as possibilidades se expandem:
Algumas coisas que me surpreenderam:
1 – A API do Figma é mais acessível do que parece. O modelo mental é simples: tudo é um node numa árvore. Cores, textos, posições, tudo é propriedade de um node. Se você entende layers no Figma, entende a API.
2 – Claude Code erra, mas erra rápido. Na primeira tentativa o código nem sempre funciona perfeitamente. Mas o ciclo de feedback é tão rápido que isso não importa. Descreve o erro, o Claude corrige, testa de novo. Três minutos.
3 – O maior valor não é o código, é a autonomia. Eu não preciso mais abrir uma issue, esperar um dev ter tempo, explicar o contexto, revisar, pedir ajustes. Eu resolvo no momento em que o problema aparece.
4 – Plugins são impacto visível. Distribuir um plugin pro time mostra que você entende o problema profundamente, tão profundamente que construiu a solução. E quando o time inteiro começa a usar algo que você criou numa tarde, o valor fica óbvio sem precisar de apresentação.
Se você nunca usou Claude Code, o caminho mais simples:
Não precisa aprender JavaScript antes. Não precisa de curso de TypeScript. Não precisa de bootcamp. Você precisa de um problema real e da disposição de descrever ele bem.
O Figma vira o que você quiser. E a barreira de entrada desapareceu.
We are always looking for passionate developers, designers and data scientists to help us revolutionize the food delivery experience. Join iFood Tech and be part of building the future of food technology.
Discover our Careers
How to create Figma plugins without coding, using Claude Code to solve real Design System problems I'll tell you something that might surprise you: last week I created a Figma plugin. From scratch. In one afternoon. And I'm not a…


A manifesto on how we create products that evolve fast and transform the world. Extraordinary products are not born ready. They evolve with each decision. At iFood, building products means dealing with a living ecosystem, where technology, operations, and business…


With leaders from iFood, OLX and Grupo Boticário, the event discussed AI, hyperpersonalization and the challenges of building technology in the Brazilian context Artificial intelligence, behavior and cultural context were at the center of discussions at the first edition of…

Each article is the result of the vision and expertise of our authors. See who contributes to our blog: