MeDo

Gerador de Cards com IA.

Descreva o que o card contém e o MeDo gera o container completo — slots de mídia, header, corpo e footer, elevação no hover, imagens travadas por aspect-ratio, alturas iguais no grid e um estado de skeleton correspondente.

Card
Card

Um card é um contrato de layout, não uma caixa com borda

Cantos arredondados e uma sombra levam um minuto para escrever, então cards são tratados como triviais. O que quebra é tudo ao redor deles. Um card tem título de duas linhas e o vizinho de quatro, e os footers não se alinham mais. Uma imagem chega em uma proporção inesperada e o grid refaz o fluxo depois do paint. Alguém torna o card inteiro clicável e prende um botão "Salvar" dentro do anchor, produzindo HTML inválido e um controle inalcançável. Essas são propriedades do card dentro de um conjunto, não do card sozinho, e é por isso que gerar o container, a restrição de mídia, o alinhamento do footer e o estado de carregamento como uma única unidade é mais útil do que estilizar bem uma única div.

6 modelos

Modelos de Card que você pode gerar

Cada modelo é um prompt real, não uma captura de tela. Copie para qualquer editor de IA, ou rode no MeDo e receba código React + Tailwind.

BasicSlots + Skeleton

Four-Slot Card With a Matching Skeleton

The container everything else extends. Generating the skeleton in the same pass is what keeps the two the same size six months later.

Create a card component with four optional slots: media at the top, a header with title and subtitle, a body for description text, and a footer for actions or metadata. White surface, 12px radius, 1px light grey border, 20px internal padding. Make the card a flex column with the body allowed to grow so the footer sits at the bottom and cards in a row stay equal height regardless of title wrapping. Lock the media to a 16:9 ratio with object-fit cover and explicit dimensions. Include a skeleton variant whose grey blocks match the real layout exactly — same media ratio, same line count, same footer height — so nothing shifts when data arrives.

Teste no MeDo
CommerceProduct Card

Image, Price and Add to Cart

The hardest card to get right because it needs a whole-card link and a nested button. Wrap the card in an anchor and the button becomes invalid markup and unreachable.

Create a product card: a 1:1 image with object-fit cover and a reserved box, an optional discount badge in the top-left, the product name over two lines with a line clamp, a price row with the current price and a struck-through original, a star rating with a review count, and an Add to cart button in the footer. Make the whole card navigate to the product page by putting the anchor on the product name and stretching it over the card with an absolutely positioned pseudo-element, then raise the cart button above it with a higher z-index so both targets work. Add an out-of-stock state that dims the image and swaps the button for a Notify me control.

Teste no MeDo
EditorialArticle Card

Cover Image, Headline and Byline

One headline wraps to two lines and its neighbor to four. Without a growing body the bylines end up on different baselines and the whole index looks unfinished.

Create an article card: a 16:9 cover image with a reserved aspect box, a category badge, a headline clamped to two lines, an excerpt clamped to three, and a footer row with an author avatar, author name, publish date and read time. Make it a flex column with the excerpt allowed to grow so bylines align across a row of cards with different headline lengths. Put the anchor on the headline and stretch it across the card so the accessible name is the headline rather than "read more". Add a featured variant that spans two grid columns with the media on the left and the text on the right.

Teste no MeDo
DashboardMetric Card

Stat Card With Delta and Sparkline

No media, all typography. The number is the component, so lock its width with tabular figures or the whole row twitches on every poll.

Create a metric card for a dashboard: a small uppercase label, a large numeric value using tabular figures so the width does not jitter as the number updates, a change indicator showing the delta with an arrow and a green or red tint, and an optional sparkline across the bottom. Never rely on color alone for direction — pair the tint with an arrow glyph and a visually hidden "up" or "down". Reserve the sparkline height even before data arrives. Include a loading variant that shows a shimmering block at the exact value height, and an empty state reading "No data yet" rather than a zero that looks like a real measurement.

Teste no MeDo
ConversionPricing Card

Plan Card With a Highlighted Tier

Three cards that must end on one line. If the highlighted tier gets a thicker border, compensate with padding or it will sit one pixel taller than its neighbors.

Create a pricing card: plan name, price with a billing period suffix, a one-line positioning sentence, a feature list with check icons, and a call-to-action button pinned to the bottom. Add a highlighted variant with a thicker border, a "Most popular" badge overlapping the top edge, and reduced internal padding so the extra border width does not make it taller than the adjacent cards. Make the card a flex column with the feature list growing, so buttons across three plans of different feature counts land on the same line. Keep the price in tabular figures and mark the currency and period as separate spans for annual and monthly toggling.

Teste no MeDo
InteractiveClickable Card

Whole-Card Link With Nested Controls

The pattern that fixes the most common card bug. One stretched anchor, real controls layered above it, no interactive element nested inside another.

Create a fully clickable card that stays valid HTML: put a single anchor on the card title and expand it over the whole card with an absolutely positioned ::after pseudo-element covering the container, rather than wrapping the card in an anchor. Give the container position relative and any nested control — a bookmark toggle, an overflow menu, a secondary link — a higher z-index plus position relative so it remains clickable. Drive the hover elevation from the container so hovering anywhere raises the card, and mirror it on focus-within so keyboard users see the same state. Skip the translate transform when prefers-reduced-motion is set and keep the shadow change.

Teste no MeDo

Como personalizar seu Card

Trave o aspect-ratio da mídia

Peça um aspect-ratio explícito na área da imagem com object-fit cover. Sem uma caixa reservada, imagens de dimensões variadas redimensionam o card depois de carregar, o que atinge diretamente o Cumulative Layout Shift e é a falha mais visível em um grid de cards.

Fixe o footer na parte de baixo

Diga que o card é uma coluna flex com o corpo livre para crescer, para que os footers se alinhem ao longo da linha mesmo quando os títulos quebram em números diferentes de linhas. Linhas de ação desalinhadas são o jeito mais rápido de deixar um grid limpo com cara de inacabado.

Escolha uma única estratégia de clique

Ou o card inteiro é um link, ou os elementos dentro dele são, nunca os dois. Para um card totalmente clicável, peça um único anchor no título esticado sobre o card com um pseudo-elemento absoluto, o que mantém o nome acessível significativo e deixa espaço para controles aninhados acima dele.

Peça o skeleton junto com o card

Solicite uma variante de carregamento cujos blocos cinza correspondam às dimensões reais, incluindo a proporção da mídia e a contagem de linhas. Um skeleton feito em outro tamanho perde o propósito, já que o layout continua saltando no momento em que os dados chegam.

Quem usa o componente Card

Grid de produtos de e-commerce

Uma imagem de produto quadrada, nome, preço e uma linha de avaliação, com um botão "Adicionar ao carrinho" no footer posicionado acima de um link de card inteiro para a página do produto, para que os dois alvos funcionem sem aninhamento.

Índice de blog ou de recursos

Uma imagem de capa 16:9, um badge de categoria, um título que quebra em duas linhas, um resumo e um footer com autor e tempo de leitura que se alinha ao longo da linha, não importa o comprimento de cada título.

Dashboard de SaaS

Cards de métricas sem mídia nenhuma: um rótulo, um valor grande, um indicador de variação e um sparkline, renderizados como skeletons no primeiro paint enquanto a consulta é resolvida.

Comparação de preços ou planos

Três cards de altura igual, um deles destacado por uma borda mais grossa e um badge, cada um terminando em um botão de call-to-action ancorado embaixo para que os botões fiquem em uma única linha.

Padrões de Card para diferentes sites

O mesmo componente card, ajustado ao tipo de site em que ele entra.

01 / 06

SaaS Dashboard Cards

Metric cards with no media at all, so the number carries the whole layout. Use tabular figures and reserve the value height, because a card grid fed by a polling query will otherwise reflow every few seconds. Borders beat shadows here — twelve elevated cards on one screen read as noise rather than hierarchy.

Estilos e variações de Card

Escolha a variação que combina com o resto da página e gere-a.

01 / 06

Bordered Card

A 1px border, no shadow. The right default for dense interfaces — tables, dashboards, settings panels — where every card needs an edge but none of them should appear to float. Keep the border one step darker than the divider color or the card dissolves into the page.

Card em React, Next.js, Vue e Svelte

React, Next.js, Vue 3, SvelteKit, Astro ou HTML puro — o mesmo card, seis formas de integrar.

01 / 06

React Card

Expose the slots as subcomponents — Card.Header, Card.Body, Card.Footer — rather than as props, so a metric card can omit the media without passing null. No state means no hooks, which is what lets you render sixty of them in a grid.

src/components/Card.tsx

export function Card({ className, ...props }) {
  return (
    <div
      className={cn(
        'flex flex-col rounded-xl border bg-white p-5',
        'transition-shadow hover:shadow-lg',
        className
      )}
      {...props}
    />
  )
}
Card.Footer = ({ children }) => <div className="mt-auto pt-4">{children}</div>

Como adicionar o seu Card a um projeto

Quatro passos, de escolher um modelo de card até subir para produção.

01~30s

Pick a Card Template

Scan the six templates and start from the content you are displaying — product with a cart button, article with a byline, metric with a delta, or pricing tier.

02~10s

Copy the Prompt

Take the prompt into MeDo, Lovable, Bolt, v0 or Cursor. Say what grid the card lives in before you run it, because the column count is what determines the media ratio and the equal-height rules.

03~1min

Generate and Refine

You get React + Tailwind back with a live preview. Follow up in plain English — "clamp the title to two lines", "swap the shadow for a border", "add the skeleton" — instead of editing the flex utilities by hand.

04~2min

Drop It Into the Grid

Render it inside a CSS grid so rows stretch to match, then check a row where one title wraps and another does not. That is the case that reveals whether the footer is actually pinned.

Perguntas comuns sobre Card

Como gerar um componente de card com IA?

Descreva o que o card contém e como ele será usado, por exemplo "card de produto com imagem quadrada, título, preço e footer de adicionar ao carrinho, em um grid de três colunas". O MeDo gera a estrutura de slots, a restrição de mídia e o estado de hover juntos. Mencionar o grid importa, porque é ele que determina as regras de altura igual e de aspect-ratio.

Quais são as partes de um componente de card?

Quatro regiões cobrem quase todos os casos: uma área de mídia opcional, um header com o título e qualquer rótulo de apoio, um corpo para o conteúdo descritivo e um footer para ações ou metadados. Tratá-las como slots opcionais em vez de markup obrigatório permite que um único componente sirva de card de produto, card de artigo e card de métrica sem variantes para cada um.

O card inteiro pode ser clicável?

Sim, mas não envolva o card em um anchor se ele contiver botões ou outros links, já que aninhar elementos interativos é HTML inválido e os navegadores lidam com isso de forma imprevisível. Coloque o anchor no título e estique-o sobre o card com um pseudo-elemento posicionado de forma absoluta, e então eleve qualquer controle aninhado acima dele com um z-index maior.

Como deixar os cards com a mesma altura em um grid?

Use um CSS grid, que já estica os itens de uma linha para se igualarem, e faça o próprio card ser uma coluna flex para que seu footer seja empurrado para baixo por um corpo que cresce. Alturas fixas são a correção errada, porque cortam o conteúdo assim que um título quebra em uma linha extra.

Cards devem usar sombra ou borda?

Uma borda funciona melhor em interfaces densas como dashboards e tabelas, onde muitas sombras criam ruído visual. Uma sombra combina com layouts de marketing mais espaçados, em que os cards precisam se destacar do fundo. Escolha uma como padrão e reserve a outra para uma variante elevada ou destacada, em vez de misturar as duas no mesmo nível.

Um card precisa de skeleton de carregamento?

Qualquer card alimentado por uma requisição de rede se beneficia de um, porque um skeleton dimensionado ao conteúdo real evita que a página refaça o fluxo quando os dados chegam. Peça o skeleton ao MeDo no mesmo prompt do card e os dois compartilham dimensões por construção, algo difícil de manter quando são escritos separadamente.