Figma para Next.js: Guia Completo para Transformar Designs em Código
Perdi a conta de quantas vezes um designer me entregou um arquivo Figma bonito e disse: "Deveria ser bem simples de construir, certo?" E claro, a seção hero parece simples o suficiente. Mas aí você começa a se aprofundar no comportamento responsivo, estados de hover que não foram totalmente especificados, espaçamento que muda entre frames, e um design system que existe na cabeça do designer mas em lugar nenhum no código. O gap entre um mockup Figma e um site Next.js em produção é onde os projetos saem dos trilhos.
Depois de construir dezenas de projetos Figma-to-Next.js na Social Animal, desenvolvi opiniões fortes sobre o que funciona e o que não funciona. Este guia percorre todo o processo — não a versão teórica, mas a versão confusa e do mundo real onde designs não são perfeitos, stakeholders mudam de ideia, e você precisa entregar algo que realmente funciona bem em produção.

Índice
- Por que Next.js para projetos Figma-to-Code
- Auditando o arquivo Figma antes de escrever código
- Extraindo design tokens do Figma
- Configurando a arquitetura do seu projeto Next.js
- Construindo a biblioteca de componentes
- Ferramentas AI-assistidas Figma to Code em 2025
- Tratando responsive design da forma correta
- Tipografia e espaçamento: onde a maioria dos projetos falha
- Imagens, ícones e pipeline de assets
- Animações e interações
- Conectando a um CMS headless
- Garantia de qualidade e comparação de design
- Otimização de desempenho
- FAQ
Por que Next.js para projetos Figma-to-Code
Você poderia transformar designs Figma em HTML simples. Você poderia usar Astro, Remix ou SvelteKit. Então por que Next.js?
Algumas razões que importam na prática:
- O modelo de componente React mapeia diretamente para componentes Figma. Designers pensam em componentes. React pensa em componentes. Este alinhamento não é trivial — significa que sua árvore de componentes no código pode espelhar a hierarquia de componentes no Figma, o que torna a manutenção muito mais fácil.
- App Router com Server Components oferece a flexibilidade de renderização que sites de marketing e aplicações web precisam. Páginas estáticas? Conteúdo dinâmico renderizado pelo servidor? Interatividade do lado do cliente? Você escolhe por rota.
- A otimização de imagem está integrada. O componente
next/imagecuida de imagens responsivas, lazy loading e conversão de formato — coisas que consumiriam horas do seu tempo de construção de outro modo. - O ecossistema é massivo. Tudo o que o design exigir — auth, formulários, animações, integração com CMS — há uma solução bem mantida no ecossistema Next.js.
Usamos Next.js para a maioria dos nossos projetos de desenvolvimento de CMS headless exatamente por essas razões. Se você está curioso sobre quando Astro pode ser um melhor ajuste (dica: sites ricos em conteúdo com mínima interatividade), confira nossa página de desenvolvimento Astro.
Auditando o arquivo Figma antes de escrever código
Este é o passo que a maioria dos desenvolvedores pula, e é o passo que economiza mais tempo. Antes de escrever uma única linha de JSX, passe 30-60 minutos auditando o arquivo Figma.
O que verificar
- Uso de Auto Layout. Se o designer usou Auto Layout consistentemente, sua vida fica dramaticamente mais fácil. Auto Layout mapeia quase 1:1 para flexbox. Se não, você vai estar adivinhando espaçamento e comportamento responsivo.
- Consistência de componentes. Os botões estão realmente usando um componente compartilhado, ou o designer criou 14 variantes de botão ligeiramente diferentes ao longo dos frames? Abra o painel Assets e verifique.
- Estilos nomeados e variáveis. Figma Variables (lançadas em 2023, amplamente adotadas em 2025) devem definir cores, espaçamento, tipografia e border radii. Se existem, sua extração de design tokens é praticamente automatizada. Se não, sinalize antes de começar a construir.
- Frames responsivos. O design inclui breakpoints para mobile, tablet e desktop? Se é apenas desktop, você precisa de uma conversa com o designer antes de prosseguir.
- Estados ausentes. Hover, focus, active, disabled, loading, error, empty — verifique se componentes interativos têm todos os seus estados projetados. Normalmente não têm. Faça uma lista.
A conversa de handoff
Sempre agenço uma chamada de 30 minutos com o designer antes de começar a implementação. Compartilhamos a tela do arquivo Figma e percorremos:
- Quais componentes são reutilizáveis vs. únicos
- Como o comportamento responsivo deve funcionar (não assuma — pergunte)
- Qualquer animação ou transição em mente
- Conteúdo que virá de um CMS vs. hardcoded
Esta única reunião elimina 80% do vai e vem que tipicamente assola projetos design-to-code.

Extraindo design tokens do Figma
Design tokens são a ponte entre Figma e código. Cores, escalas de tipografia, unidades de espaçamento, border radii, sombras — estes precisam ser extraídos sistematicamente, não estimados.
Extração manual (projetos pequenos)
Para projetos menores, usarei o Dev Mode do Figma (incluído nos planos pagos do Figma a $25/assento/mês a partir de 2025) para inspecionar valores diretamente. Abra Dev Mode, clique em qualquer elemento, e você obtém valores exatos em pixels, cores e propriedades de fonte.
Então mapeio para config Tailwind CSS ou propriedades CSS customizadas:
// tailwind.config.ts
import type { Config } from 'tailwindcss'
const config: Config = {
theme: {
extend: {
colors: {
brand: {
50: '#f0f4ff',
100: '#dbe4ff',
500: '#4c6ef5',
600: '#3b5bdb',
700: '#364fc7',
900: '#1c2d7a',
},
surface: {
primary: '#ffffff',
secondary: '#f8f9fa',
tertiary: '#f1f3f5',
},
},
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif'],
display: ['Cal Sans', 'Inter', 'system-ui', 'sans-serif'],
},
spacing: {
'18': '4.5rem',
'88': '22rem',
},
borderRadius: {
'xl': '1rem',
'2xl': '1.5rem',
},
},
},
}
export default config
Extração automatizada (projetos maiores)
Para sistemas de design maiores, use a Figma Variables API ou ferramentas como Tokens Studio (anteriormente Figma Tokens) para exportar design tokens em um formato estruturado. Tokens Studio pode exportar para formato Style Dictionary, que você então transforma em config Tailwind, variáveis CSS, ou ambos.
O pipeline parece assim:
Figma Variables → Tokens Studio → Style Dictionary → tailwind.config.ts + globals.css
Esta automação se paga na primeira vez que o designer atualiza uma cor e você precisa propagá-la através do codebase.
Configurando a arquitetura do seu projeto Next.js
Aqui está a estrutura de projeto com a qual inicio cada build Figma-to-Next.js:
src/
├── app/
│ ├── layout.tsx
│ ├── page.tsx
│ ├── globals.css
│ └── (routes)/
├── components/
│ ├── ui/ # Primitives: Button, Input, Card, Badge
│ ├── layout/ # Header, Footer, Container, Section
│ ├── sections/ # Hero, Features, Testimonials, CTA
│ └── patterns/ # Composed: PricingCard, TeamMember
├── lib/
│ ├── utils.ts
│ └── fonts.ts
├── styles/
│ └── tokens.css # Design token CSS variables
└── types/
└── index.ts
Decisões-chave de configuração
Abordagem de styling: Tailwind CSS é meu padrão para projetos Figma-to-code. A abordagem utility-first significa que posso traduzir padding: 24px, gap: 16px, border-radius: 12px do Figma diretamente para p-6 gap-4 rounded-xl sem troca de contexto. Se o projeto exigir uma biblioteca de componentes como shadcn/ui, Tailwind já é a base.
Carregamento de fonte: Sempre use next/font para auto-hospedar fontes. Aqui está minha configuração típica:
// lib/fonts.ts
import { Inter } from 'next/font/google'
import localFont from 'next/font/local'
export const inter = Inter({
subsets: ['latin'],
display: 'swap',
variable: '--font-inter',
})
export const calSans = localFont({
src: '../assets/fonts/CalSans-SemiBold.woff2',
variable: '--font-display',
display: 'swap',
})
Server vs. Client Components: Padrão para Server Components. Apenas adicione 'use client' quando você realmente precisa de APIs do navegador, manipuladores de eventos ou React hooks. Uma página de marketing típica pode ter 90% de Server Components com pequenas ilhas interativas.
Construindo a biblioteca de componentes
Aqui é onde a maior parte do trabalho acontece. Minha abordagem: trabalhe dos menores componentes para cima.
Componentes atômicos primeiro
Comece com o que Figma chama de "componentes" e o que chamamos de primitivos:
// components/ui/Button.tsx
import { cva, type VariantProps } from 'class-variance-authority'
import { cn } from '@/lib/utils'
const buttonVariants = cva(
'inline-flex items-center justify-center rounded-xl font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
{
variants: {
variant: {
primary: 'bg-brand-600 text-white hover:bg-brand-700',
secondary: 'bg-surface-secondary text-gray-900 hover:bg-surface-tertiary',
ghost: 'text-gray-600 hover:bg-surface-secondary hover:text-gray-900',
},
size: {
sm: 'h-9 px-3 text-sm',
md: 'h-11 px-5 text-sm',
lg: 'h-13 px-7 text-base',
},
},
defaultVariants: {
variant: 'primary',
size: 'md',
},
}
)
interface ButtonProps
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
VariantProps<typeof buttonVariants> {}
export function Button({ className, variant, size, ...props }: ButtonProps) {
return (
<button
className={cn(buttonVariants({ variant, size }), className)}
{...props}
/>
)
}
Note como os nomes das variantes e tamanhos mapeiam diretamente para o que existe no Figma. Se o designer tem um componente Button com variantes "Primary", "Secondary" e "Ghost" no Figma — seu código deve espelhar esses nomes exatos.
Composição de seções
Uma vez que primitivos são construídos, componha-os em seções de página:
// components/sections/Hero.tsx
import { Button } from '@/components/ui/Button'
import { Container } from '@/components/layout/Container'
export function Hero() {
return (
<section className="py-24 md:py-32">
<Container>
<div className="mx-auto max-w-3xl text-center">
<h1 className="font-display text-4xl tracking-tight text-gray-900 md:text-6xl">
Transforme seus designs em
<span className="text-brand-600"> websites em produção</span>
</h1>
<p className="mt-6 text-lg leading-relaxed text-gray-600">
Construímos websites Next.js rápidos e acessíveis a partir de seus arquivos Figma.
</p>
<div className="mt-10 flex items-center justify-center gap-4">
<Button size="lg">Começar</Button>
<Button variant="secondary" size="lg">Saiba mais</Button>
</div>
</div>
</Container>
</section>
)
}
Ferramentas AI-assistidas Figma to Code em 2025
Vamos falar sobre o elefante na sala: ferramentas de IA que afirmam converter Figma para código automaticamente. Testei todas as principais. Aqui está uma avaliação honesta.
| Ferramenta | Melhor para | Qualidade do código | Suporte a frameworks | Preço (2025) |
|---|---|---|---|---|
| Fusion (Builder.io) | Equipes usando CMS do Builder.io | Bom — respeita design systems | React, Next.js, Vue | Incluído nos planos Builder.io ($50+/mês) |
| Kombai | Usuários do VS Code querendo codificação assistida por IA | Muito bom — gera planos editáveis | React, Next.js, Angular | Tier gratuito + $20/mês Pro |
| Locofy.ai | Protótipos rápidos e MVPs | Decente — precisa limpeza | React, Next.js, Gatsby | Tier gratuito + $8-25/mês |
| Anima | Exportação de HTML/React responsivo | Razoável — estrutural mas não pronto para produção | React, Vue, HTML | Tier gratuito + $39/mês |
| Figma to Code Plugin | Snippets de HTML rápidos | Básico — bom ponto de partida | HTML, Tailwind | Gratuito |
| v0 (Vercel) | Gerando UI a partir de descrições | Bom para componentes | React, Next.js | Tier gratuito + $20/mês Pro |
Minha avaliação honesta
Nenhuma dessas ferramentas produz código que eu enviaria direto para produção sem modificação significativa. Nenhuma. Aqui está o porquê:
- Elas geram markup mas raramente entendem a arquitetura de componentes do seu projeto
- Não sabem sobre seus padrões de fetching de dados, integração com CMS ou estrutura de API
- Frequentemente produzem CSS inchado ou nomenclatura de classe inconsistente
- Regularmente perdem requisitos de acessibilidade
Onde ferramentas de IA realmente ajudam: Uso Kombai e v0 para gerar scaffolding de componentes inicial, especialmente para layouts complexos. Obter um ponto de partida que está 60-70% correto economiza tempo real. Também uso Cursor com screenshots Figma colados como contexto para acelerar a implementação seção por seção.
O workflow que realmente funciona: IA gera um rascunho áspero → desenvolvedor humano reestrutura, otimiza e integra → QA detecta os problemas inevitáveis.
Se você está avaliando se deve fazer isso você mesmo ou trabalhar com uma agência, confira nossas capacidades de desenvolvimento Next.js para ver como lidamos com o pipeline completo.
Tratando responsive design da forma correta
Aqui é onde projetos Figma-to-code comumente falham. O design tem um mockup desktop e um mobile. Talvez um tablet se você tiver sorte. Mas o comportamento real entre breakpoints? Isso está na cabeça de ninguém.
A implementação mobile-first
Sempre escreva o código mobile-first e adicione complexidade em breakpoints maiores:
<div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3 lg:gap-8">
{features.map((feature) => (
<FeatureCard key={feature.id} {...feature} />
))}
</div>
Padrões responsivos comuns do Figma
| Padrão Figma | Implementação CSS/Tailwind |
|---|---|
| Grade de 3 colunas → empilha em mobile | grid grid-cols-1 md:grid-cols-3 |
| Lado-a-lado → pilha invertida | flex flex-col-reverse md:flex-row |
| Oculto em mobile | hidden md:block |
| Tamanhos de fonte diferentes | text-2xl md:text-4xl lg:text-5xl |
| Scroll horizontal em mobile | flex overflow-x-auto md:grid md:grid-cols-4 |
| Navegação → hamburger | Client component com toggle de estado |
Container queries (O movimento subestimado do poder)
Em 2025, container queries têm excelente suporte de navegador (95%+ globalmente). São perfeitas para componentes que precisam se adaptar baseado na largura do pai em vez do viewport:
@container (min-width: 400px) {
.card-layout {
flex-direction: row;
}
}
Tailwind v4 tem suporte nativo a container queries com variantes @container.
Tipografia e espaçamento: onde a maioria dos projetos falha
Eu estimaria que 60% de reclamações "não se parece com o design" vêm de tipografia e espaçamento, não layout ou cores.
Checklist de tipografia
- Font weight: Figma mostra "Semi Bold" que é
font-semibold(600), nãofont-bold(700). Fácil errar. - Line height: Figma usa line heights fixos (como 28px), Tailwind usa valores relativos (como
leading-7). Converta com cuidado. - Letter spacing: Frequentemente negligenciado. Letter spacing -2% do Figma se traduz em
tracking-tight. - Font features: Alguns designs usam recursos OpenType como tabular numbers (
font-variant-numeric: tabular-nums) ou alternativas estilísticas. Verifique o painel de propriedades de texto do Figma.
Sistema de espaçamento
Se o designer usou uma grade de 8px (a maioria faz em 2025), sua vida é fácil — a escala de espaçamento padrão do Tailwind já é baseada em increments de 4px. p-4 = 16px, p-6 = 24px, p-8 = 32px.
Mas fique atento a espaçamento irregular. Se o design tem padding de 20px em algum lugar, isso é p-5 em Tailwind (que é 20px). Se tem 18px — e isso acontece mais do que você pensaria — você arredonda para o passo mais próximo ou estende sua escala de espaçamento.
Imagens, ícones e pipeline de assets
Imagens
Sempre use next/image para imagens rasterizadas:
import Image from 'next/image'
<Image
src="/hero-image.webp"
alt="Painel de produto mostrando analytics"
width={1200}
height={800}
priority // Adicione para imagens above-the-fold
className="rounded-2xl"
/>
Exporte imagens do Figma em resolução 2x para displays retina. Use formato WebP. Para imagens hero, normalmente exporto em 2400x1600 e deixo next/image lidar com o dimensionamento responsivo.
Ícones
Não exporte ícones como imagens. Use uma biblioteca de ícones ou SVGs inline:
- Lucide React — minha escolha padrão. Limpa, consistente, 1000+ ícones. Tree-shakeable.
- Heroicons — ótimo se o design usa Heroicons (comum com designs Tailwind UI).
- SVGs customizados — para ícones específicos da marca, exporte do Figma como SVG e crie componentes React.
import { ArrowRight, Check, X } from 'lucide-react'
<ArrowRight className="h-5 w-5" />
Animações e interações
O modo prototype do Figma mostra transições e interações, mas traduzir estes para código requer interpretação.
Animações CSS-First
Para efeitos hover simples e transições, fique com CSS:
<button className="transform transition-all duration-200 hover:scale-105 hover:shadow-lg">
Começar
</button>
Framer Motion para animações complexas
Para animações disparadas por scroll, transições de página ou sequências complexas:
'use client'
import { motion } from 'framer-motion'
export function FadeInSection({ children }: { children: React.ReactNode }) {
return (
<motion.div
initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true, margin: '-100px' }}
transition={{ duration: 0.5, ease: 'easeOut' }}
>
{children}
</motion.div>
)
}
Lembre-se: isso tem que ser um Client Component. Mantenha o wrapper de animação fino e passe Server Components como children quando possível.
Conectando a um CMS headless
A maioria dos sites de marketing construídos a partir de designs Figma precisam de um CMS para pelo menos algum conteúdo. É aqui onde desenvolvimento de CMS headless se torna crítico.
O padrão que mais uso com App Router do Next.js:
// app/blog/[slug]/page.tsx
import { getPostBySlug } from '@/lib/cms'
import { notFound } from 'next/navigation'
export async function generateStaticParams() {
const posts = await getAllPosts()
return posts.map((post) => ({ slug: post.slug }))
}
export default async function BlogPost({ params }: { params: { slug: string } }) {
const post = await getPostBySlug(params.slug)
if (!post) notFound()
return (
<article className="prose prose-lg mx-auto max-w-3xl">
<h1>{post.title}</h1>
<div dangerouslySetInnerHTML={{ __html: post.content }} />
</article>
)
}
Este é um Server Component por padrão — sem 'use client' necessário. Os dados do CMS são buscados no tempo de construção (com ISR para atualizações), dando a você carregamento rápido de página e conteúdo fresco.
Garantia de qualidade e comparação de design
Aqui está meu checklist de QA para cada projeto Figma-to-Next.js:
Comparação de overlay visual — Use uma ferramenta como PixelSnap ou a extensão de navegador "PerfectPixel" para sobrepor a exportação Figma no topo de sua página construída. Eu almejo 95%+ de correspondência, não perfeição de pixel. A perfeição absoluta de pixel em todos os navegadores e tamanhos de tela é um mito.
Auditoria Lighthouse — Alvo de 90+ em todos os quatro scores. Para nossos projetos, normalmente atingimos 95+ em Performance, 100 em Accessibility, 100 em Best Practices e 100 em SEO.
Teste cross-browser — Chrome, Firefox, Safari (especialmente Safari — é sempre Safari). Teste em dispositivos iOS reais, não apenas simulação mobile do Chrome DevTools.
Navegação por teclado — Tab através de cada elemento interativo. Anéis de focus devem ser visíveis e lógicos.
Teste de estresse de conteúdo — O que acontece quando um headline é 3x mais longo que o placeholder? Quando uma imagem tem uma proporção de aspecto diferente? Conteúdo real do CMS quebrará designs que funcionaram apenas com lorem ipsum perfeito.
Otimização de desempenho
Um design bonito que marca 40 no Lighthouse é um fracasso. Aqui está o que faço em cada projeto:
- Lazy load imagens below-fold (Next.js faz isso por padrão)
- Preload de fontes críticas com
next/font - Minimizar Client Components — cada limite
'use client'adiciona JavaScript - Usar dynamic imports para componentes pesados:
const Chart = dynamic(() => import('./Chart'), { ssr: false }) - Otimizar scripts de terceiros com
next/scriptestrategy="lazyOnload"
Um site Next.js bem construído a partir de designs Figma deve marcar 90+ no Lighthouse sem esforços de otimização heróicos. Se você está marcando mais baixo, você provavelmente tem muitos Client Components ou imagens não otimizadas.
Se você está procurando ajuda com um projeto Figma-to-Next.js e quer esses tipos de resultados, confira nosso pricing ou entre em contato diretamente.
FAQ
Quanto tempo leva para converter um design Figma para um website Next.js? Depende muito da complexidade do projeto. Um site de marketing com 5 páginas com um design system limpo normalmente leva 2-4 semanas para um desenvolvedor qualificado. Uma aplicação web complexa com dezenas de componentes únicos, animações customizadas e integração com CMS pode levar 6-12 semanas. A qualidade do arquivo Figma importa muito — arquivos bem organizados com componentes consistentes podem reduzir o tempo de desenvolvimento em 30-50%.
Ferramentas de IA podem automatizar totalmente a conversão Figma para Next.js? Ainda não. A partir de meados de 2025, ferramentas como Fusion do Builder.io, Kombai e Locofy.ai podem gerar pontos de partida úteis, mas nenhuma produz código pronto para produção sem intervenção humana significativa. Elas são melhor usadas como aceleradores — gerando os 60-70% iniciais de markup — enquanto um desenvolvedor lida com arquitetura, otimização, acessibilidade e integração com CMS.
Devo usar Tailwind CSS ou CSS Modules para projetos Figma-to-code? Tailwind CSS é o melhor ajuste para a maioria dos projetos Figma-to-code. Designs Figma são expressos como valores concretos (cores, espaçamento em pixels, tamanhos de fonte), e as classes utility do Tailwind mapeiam diretamente para esses valores. CSS Modules funcionam bem mas adicionam uma camada de abstração que desacelera o processo de tradução. A exceção: se sua equipe já tem um codebase CSS Modules maduro, manter consistência pode superar os benefícios de velocidade de tradução.
Qual é a melhor forma de lidar com design tokens do Figma no Next.js?
Use Figma Variables (ou plugin Tokens Studio) para exportar tokens em um formato estruturado, depois transforme-os na configuração do seu sistema de styling. Para Tailwind, isso significa estender tailwind.config.ts. Para propriedades CSS customizadas, gere um arquivo tokens.css. A ferramenta Style Dictionary da Amazon é excelente para transformar tokens entre formatos. Mantenha o pipeline automatizado para que mudanças de design token se propaguem para o código sem trabalho manual.
Como lido com responsive design quando o arquivo Figma tem apenas mockups desktop? Isso é comum. Primeiro, converse com o designer e estabeleça expectativas de comportamento responsivo. Então implemente mobile-first, fazendo decisões de layout baseadas em seu entendimento da intenção do design. Use CSS Grid e Flexbox para criar layouts naturalmente responsivos. Onde você estiver incerto, stubifique e obtenha feedback do designer na build responsiva ao vivo — é muito mais rápido iterar em uma implementação responsiva real do que voltar e projetar mais frames estáticas.
Preciso do plano pago do Figma para fazer desenvolvimento Figma-to-code adequado? O plano gratuito funciona para inspeção básica, mas Dev Mode do Figma (disponível em planos pagos a $25/assento/mês em 2025) fornece features significativamente melhores de handoff de desenvolvimento: snippets de código CSS, inspeção de propriedades de componente, medições precisas e exportação de assets. Para projetos profissionais, vale a pena o custo. Sua alternativa é usar o plugin Figma to Code gratuito ou uma ferramenta externa como Locofy.ai.
Qual score Lighthouse devo visar para uma build Figma-to-Next.js?
Almejar 90+ em todas as categorias (Performance, Accessibility, Best Practices, SEO). Next.js oferece um forte ponto de partida, mas você pode facilmente reduzir seu score de Performance com imagens não otimizadas, muitos Client Components ou scripts de terceiros pesados. Para nossos projetos na Social Animal, normalmente atingimos 95+ em Performance mantendo limites de Client Component mínimos e usando next/image para todos os gráficos rasterizados.
Como mantenho o design Figma e o codebase Next.js sincronizados ao longo do tempo? Este é o desafio contínuo. Use design tokens como a única fonte de verdade — quando cores, tipografia ou espaçamento mudam no Figma, atualize os tokens e regenere sua config Tailwind. Para mudanças no nível de componente, estabeleça um processo: designers atualizam o componente Figma, documentam o que mudou e desenvolvedores atualizam o componente React correspondente. Ferramentas como Storybook podem ajudar fornecendo uma referência visual que ambos designers e desenvolvedores podem comparar com a fonte Figma.