← Back to Cooldecode
Lesson 19 · Design & tools

Framer: advanced prototyping, animation, and publishable components

A design tool that doesn't stop at the mockup — it can also be the production site. What that actually means, and when it's the right call.

1. What Framer actually is

Framer started as an animation/prototyping layer built on top of designs (originally imported from Figma), aimed at making interactions feel real before a single line of production code existed. It has since grown into a full product: a visual, Figma-like canvas for design, a prototyping engine for interactions and transitions, a CMS for structured content, and a hosting platform that publishes the result as a real, live website — no separate deploy step, no separate front-end codebase.

That's the core idea to hold onto: in most tools, "design" and "the actual website" are two different artifacts maintained by two different people. In Framer, for a large class of sites, they're the same artifact.

2. Why it exists

Two problems motivated it. First, static prototypes (click-through mockups) are a poor stand-in for how a real interface feels — scroll-triggered reveals, spring-based hover states, and layout transitions are hard to fake convincingly with click-through frames alone. Second, handoff from design to code is one of the most wasteful steps in building a marketing site or landing page: a designer builds it once in a design tool, then a developer rebuilds the exact same thing in HTML/CSS/JS, and small changes afterward require touching both.

Framer's bet is that for a specific category of project — marketing sites, landing pages, portfolios, product pages without complex business logic — you can skip the rebuild step entirely and publish straight from the design tool.

3. Prototyping and animation, in practice

The animation model is visual and parameter-based rather than code-based: you set entrance animations, scroll-triggered effects, hover/tap states, and layout transitions through property panels, with real physics (spring, ease curves) instead of hand-tuned keyframe math. Effects that would take custom JavaScript in a hand-coded site — parallax scroll, morphing shapes between breakpoints, staggered list reveals — are assembled by combining a handful of built-in interaction primitives.

Important nuance: this is prototyping fidelity that ships as production code, not a separate mockup. The interaction you tune in the canvas is the interaction visitors get on the live site — there's no "now go implement this for real" step afterward.

4. Publishable components

Components in Framer support variants (a button with default/hover/disabled states, for example) and nested component instances, similar to component systems in Figma or React. The difference is that a component built this way isn't just a design reference — it's a real, reusable piece of the published site, and code components (built with actual React/TypeScript) can be dropped into the same canvas alongside visually-built ones, letting a developer extend what a designer starts.

This is also where Framer overlaps with newer AI-assisted workflows: recent versions can generate a first draft of a layout, copy, or component set from a natural-language description, which a designer then adjusts visually rather than starting from a blank canvas.

5. Pros and cons

ProsCons
Design-to-publish in one tool — no handoff step, no rebuild in code for supported site types.Not a general-purpose application framework — no real backend, database, or arbitrary business logic without leaving the tool.
High-fidelity animation without writing JavaScript.Vendor lock-in for hosting/CMS if you publish natively; migrating a fully-built Framer site elsewhere later is friction.
Native Figma import keeps designers in a familiar mental model.Complex, stateful, data-heavy apps (dashboards, anything with real auth/permissions) are a poor fit.
Code components let developers extend visual designs with real React when needed.Pricing scales with traffic/CMS needs on hosted plans — a factor for larger content sites.

6. Framer vs. Figma vs. Webflow vs. hand-written code

ToolWhat it's forShips to production?
FigmaDesign and prototyping, the industry-standard source of truth for visual design and design systems.No — prototypes are click-through simulations; a developer still builds the real site separately (see Lesson 17/18 on Figma-to-code handoff).
FramerDesign + prototyping + hosting in one, for sites without heavy custom backend logic.Yes — what you design is what gets published.
WebflowSimilar no-code visual builder, historically stronger on CMS-driven content sites and more explicit control over the generated HTML/CSS.Yes — same category as Framer, different tradeoffs (Webflow tends to expose more raw control; Framer leans more design-tool-first with a more Figma-like canvas).
Hand-written code (Next.js, plain HTML/CSS/JS, etc.)Full control, any architecture, any backend, any level of custom logic.Yes — but with real build/deploy steps and a developer required for every change.

The practical dividing line: Figma is where interfaces get designed regardless of how they'll be built; Framer and Webflow collapse "designed" and "built" into the same step for a specific category of site; hand-written code is what you reach for once the site needs real application logic — user accounts, custom databases, complex permission rules — that a visual builder isn't meant to express.

7. A practical example

A generic scenario: a small team needs a product landing page with a hero section, a scroll-triggered feature showcase, a pricing table, and a waitlist form — no logged-in accounts, no custom backend logic beyond capturing an email. Building this in Framer looks like: lay out sections on the canvas, apply scroll-triggered fade/slide animations to the feature showcase, build a reusable "pricing card" component with a hover variant, wire the waitlist form to an integration, and publish. The entire loop — design, animate, publish — happens in one tool, by one person, without a separate deploy pipeline.

Compare that to the same landing page in Next.js: a developer would still need to translate the design into JSX/CSS, hand-implement the scroll animations (or pull in a library), and set up hosting/deploy separately — meaningfully more steps for a page that doesn't need custom application logic.

8. When to reach for it

Framer tends to fit: marketing sites, landing pages, portfolios, product pages, and content-driven sites where the interesting problems are visual/content, not backend logic — and especially when the same person needs to both design and ship changes quickly.
Hand-written code tends to fit better: applications with real business logic, custom databases, complex auth/permissions, or anything that needs to integrate deeply with an existing engineering codebase and deploy pipeline (the stacks covered in Lessons 6–16 of this track).

The two aren't mutually exclusive in a real organization: it's common to see the marketing site built in a tool like Framer while the actual product runs on a framework like Next.js — same company, two different tools, matched to two different kinds of problems.

Lição 19 · Design e ferramentas

Framer: prototipagem avançada, animações e componentes publicáveis

Uma ferramenta de design que não para no mockup — ela também pode ser o site em produção. O que isso quer dizer na prática, e quando faz sentido usar.

1. O que é o Framer, de fato

O Framer começou como uma camada de animação/prototipagem em cima de designs (originalmente importados do Figma), com o objetivo de fazer as interações parecerem reais antes de existir uma única linha de código de produção. Desde então, virou um produto completo: um canvas visual parecido com o Figma para design, um motor de prototipagem para interações e transições, um CMS para conteúdo estruturado, e uma plataforma de hospedagem que publica o resultado como um site real e no ar — sem etapa de deploy separada, sem uma base de código de front-end separada.

Essa é a ideia central pra guardar: na maioria das ferramentas, "o design" e "o site de verdade" são dois artefatos diferentes, mantidos por duas pessoas diferentes. No Framer, pra uma classe grande de sites, eles são o mesmo artefato.

2. Por que ele existe

Dois problemas motivaram isso. Primeiro, protótipos estáticos (mockups clicáveis) são um substituto ruim pra como uma interface real se sente — revelações disparadas por scroll, estados de hover com física de mola, e transições de layout são difíceis de simular de forma convincente só com frames clicáveis. Segundo, o handoff de design pra código é uma das etapas mais desperdiçadoras ao construir um site institucional ou landing page: um designer constrói uma vez numa ferramenta de design, depois um desenvolvedor reconstrói exatamente a mesma coisa em HTML/CSS/JS, e mudanças pequenas depois exigem mexer nos dois lugares.

A aposta do Framer é que, pra uma categoria específica de projeto — sites institucionais, landing pages, portfólios, páginas de produto sem lógica de negócio complexa — dá pra pular inteiramente a etapa de reconstrução e publicar direto da ferramenta de design.

3. Prototipagem e animação, na prática

O modelo de animação é visual e baseado em parâmetros, não em código: você configura animações de entrada, efeitos disparados por scroll, estados de hover/tap e transições de layout por painéis de propriedade, com física real (curvas de mola, easing) em vez de matemática de keyframe ajustada na mão. Efeitos que exigiriam JavaScript customizado num site feito à mão — parallax de scroll, formas se transformando entre breakpoints, revelações escalonadas de lista — são montados combinando um punhado de primitivas de interação já embutidas.

Nuance importante: essa é fidelidade de prototipagem que vira código de produção, não um mockup separado. A interação que você ajusta no canvas é a interação que os visitantes recebem no site no ar — não existe uma etapa posterior de "agora implementa isso de verdade".

4. Componentes publicáveis

Componentes no Framer suportam variantes (um botão com estados default/hover/desabilitado, por exemplo) e instâncias de componente aninhadas, parecido com sistemas de componente no Figma ou em React. A diferença é que um componente construído assim não é só uma referência de design — é uma peça real e reutilizável do site publicado, e componentes de código (construídos com React/TypeScript de verdade) podem ser colocados no mesmo canvas junto com os construídos visualmente, deixando um desenvolvedor estender o que um designer começou.

É aqui também que o Framer se cruza com os fluxos mais novos assistidos por IA: versões recentes conseguem gerar um primeiro rascunho de layout, texto, ou conjunto de componentes a partir de uma descrição em linguagem natural, que o designer depois ajusta visualmente em vez de começar de um canvas em branco.

5. Prós e contras

PrósContras
Design até publicação numa ferramenta só — sem etapa de handoff, sem reconstrução em código pros tipos de site suportados.Não é um framework de aplicação de propósito geral — sem backend real, banco de dados, ou lógica de negócio arbitrária sem sair da ferramenta.
Animação de alta fidelidade sem escrever JavaScript.Lock-in de fornecedor pra hospedagem/CMS se você publica nativamente; migrar um site totalmente construído no Framer pra outro lugar depois dá trabalho.
Importação nativa do Figma mantém designers num modelo mental familiar.Aplicações complexas, com estado, cheias de dados (dashboards, qualquer coisa com autenticação/permissões reais) se encaixam mal.
Componentes de código deixam desenvolvedores estenderem designs visuais com React de verdade quando precisa.Preço escala com tráfego/necessidades de CMS nos planos hospedados — um fator pra sites de conteúdo maiores.

6. Framer vs. Figma vs. Webflow vs. código escrito à mão

FerramentaPra que serveVai pra produção?
FigmaDesign e prototipagem, a fonte de verdade padrão da indústria pra design visual e design systems.Não — protótipos são simulações clicáveis; um desenvolvedor ainda constrói o site de verdade separadamente (ver Lição 17/18 sobre handoff Figma-código).
FramerDesign + prototipagem + hospedagem numa coisa só, pra sites sem lógica de backend customizada pesada.Sim — o que você desenha é o que é publicado.
WebflowConstrutor visual sem código parecido, historicamente mais forte em sites de conteúdo orientados a CMS e com controle mais explícito sobre o HTML/CSS gerado.Sim — mesma categoria do Framer, trade-offs diferentes (Webflow tende a expor mais controle bruto; Framer é mais orientado a ferramenta de design, com um canvas mais parecido com o Figma).
Código escrito à mão (Next.js, HTML/CSS/JS puro, etc.)Controle total, qualquer arquitetura, qualquer backend, qualquer nível de lógica customizada.Sim — mas com etapas reais de build/deploy e um desenvolvedor necessário pra cada mudança.

A linha divisória prática: o Figma é onde interfaces são desenhadas independente de como serão construídas; Framer e Webflow colapsam "desenhado" e "construído" na mesma etapa pra uma categoria específica de site; código escrito à mão é pra quando o site precisa de lógica de aplicação real — contas de usuário, bancos de dados customizados, regras de permissão complexas — que um construtor visual não foi feito pra expressar.

7. Um exemplo prático

Um cenário genérico: um time pequeno precisa de uma landing page de produto com uma seção de hero, uma vitrine de recursos disparada por scroll, uma tabela de preços e um formulário de lista de espera — sem contas logadas, sem lógica de backend customizada além de capturar um e-mail. Construir isso no Framer se parece com: montar as seções no canvas, aplicar animações de fade/slide disparadas por scroll na vitrine de recursos, construir um componente reutilizável de "card de preço" com uma variante de hover, conectar o formulário de lista de espera a uma integração, e publicar. O ciclo inteiro — desenhar, animar, publicar — acontece numa ferramenta só, por uma pessoa só, sem um pipeline de deploy separado.

Compare isso com a mesma landing page em Next.js: um desenvolvedor ainda precisaria traduzir o design pra JSX/CSS, implementar as animações de scroll na mão (ou usar uma biblioteca), e configurar hospedagem/deploy separadamente — bem mais etapas pra uma página que não precisa de lógica de aplicação customizada.

8. Quando usar

O Framer tende a se encaixar em: sites institucionais, landing pages, portfólios, páginas de produto e sites orientados a conteúdo, onde os problemas interessantes são visuais/de conteúdo, não lógica de backend — especialmente quando a mesma pessoa precisa desenhar e publicar mudanças rápido.
Código escrito à mão tende a se encaixar melhor em: aplicações com lógica de negócio real, bancos de dados customizados, autenticação/permissões complexas, ou qualquer coisa que precise se integrar profundamente com uma base de código de engenharia e pipeline de deploy já existentes (os stacks cobertos nas Lições 6 a 16 dessa trilha).

As duas coisas não são mutuamente excludentes numa organização real: é comum ver o site institucional construído numa ferramenta como o Framer enquanto o produto de verdade roda num framework como Next.js — mesma empresa, duas ferramentas diferentes, combinadas com dois tipos diferentes de problema.