MeDo

Generador de Tarjetas con IA.

Describe qué contiene la tarjeta y MeDo genera el contenedor completo — slots de media, encabezado, cuerpo y pie, elevación en hover, imágenes con aspect-ratio fijo, alturas iguales en cuadrícula y un estado skeleton a juego.

Tarjeta
Tarjeta

Una tarjeta es un contrato de layout, no una caja con borde

Las esquinas redondeadas y una sombra se escriben en un minuto, así que las tarjetas se tratan como algo trivial. Lo que se rompe es todo lo que las rodea. Una tarjeta tiene un título de dos líneas y su vecina de cuatro, y los pies ya no se alinean. Llega una imagen con una proporción inesperada y la cuadrícula se recompone después del paint. Alguien hace clicable toda la tarjeta y atrapa un botón "Guardar" dentro del anchor, lo que produce HTML inválido y un control inalcanzable. Estas son propiedades de la tarjeta dentro de un conjunto, no de la tarjeta aislada, y por eso generar el contenedor, la restricción de media, la alineación del pie y el estado de carga como una sola unidad es más útil que estilizar bien un solo div.

6 plantillas

Plantillas de Tarjeta que puedes generar

Cada plantilla es un prompt real, no una captura de pantalla. Cópialo en cualquier editor de IA o ejecútalo en MeDo y obtén 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.

Prueba en 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.

Prueba en 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.

Prueba en 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.

Prueba en 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.

Prueba en 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.

Prueba en MeDo

Cómo personalizar tu Tarjeta

Fija el aspect-ratio del media

Pide un aspect-ratio explícito en el área de imagen con object-fit cover. Sin una caja reservada, las imágenes de dimensiones variables redimensionan la tarjeta al cargar, un golpe directo al Cumulative Layout Shift y el defecto más visible en una cuadrícula de tarjetas.

Ancla el pie al fondo

Indica que la tarjeta es una columna flex con el cuerpo capaz de crecer, para que los pies se alineen en toda la fila incluso cuando los títulos ocupan distinto número de líneas. Las filas de acciones desiguales son la forma más rápida de que una cuadrícula limpia parezca inacabada.

Elige una única estrategia de clic

O toda la tarjeta es un enlace o lo son los elementos de su interior, nunca ambos. Para una tarjeta totalmente clicable, pide un único anchor en el título estirado sobre la tarjeta con un pseudo-elemento absoluto, lo que mantiene un nombre accesible significativo y deja espacio para controles anidados por encima.

Pide el skeleton junto con la tarjeta

Solicita una variante de carga cuyos bloques grises coincidan con las dimensiones reales, incluyendo la proporción del media y el número de líneas. Un skeleton construido con otro tamaño no sirve de nada, porque el layout sigue saltando en el momento en que llegan los datos.

Quién usa el componente Tarjeta

Cuadrícula de productos de e-commerce

Una imagen de producto cuadrada, nombre, precio y una fila de valoración, con un botón "Añadir al carrito" en el pie situado por encima de un enlace de tarjeta completa a la página del producto, para que ambos destinos funcionen sin anidamiento.

Índice de blog o recursos

Una imagen de portada 16:9, una insignia de categoría, un titular que se parte en dos líneas, un extracto y un pie con autor y tiempo de lectura que se alinea en toda la fila sin importar cuánto ocupe cada titular.

Panel de SaaS

Tarjetas de métricas sin media alguna: una etiqueta, un valor grande, un indicador de cambio y un sparkline, renderizadas como skeletons en el primer paint mientras se resuelve la consulta.

Comparativa de precios o planes

Tres tarjetas de igual altura con una destacada por un borde más grueso y una insignia, cada una terminando en un botón de llamada a la acción anclado al fondo para que los botones queden en una sola línea.

Patrones de Tarjeta para distintos sitios web

El mismo componente tarjeta, adaptado al tipo de sitio donde se publica.

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 y variantes de Tarjeta

Elige la variante que encaje con el resto de la página y genérala.

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.

Tarjeta en React, Next.js, Vue y Svelte

React, Next.js, Vue 3, SvelteKit, Astro o HTML puro: el mismo tarjeta, seis formas de integrarlo.

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>

Cómo añadir tu Tarjeta a un proyecto

Cuatro pasos, desde elegir una plantilla de tarjeta hasta llevarlo a producción.

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.

Preguntas frecuentes sobre Tarjeta

¿Cómo genero un componente de tarjeta con IA?

Describe qué contiene la tarjeta y cómo se usará, por ejemplo "tarjeta de producto con imagen cuadrada, título, precio y pie de añadir al carrito, en una cuadrícula de tres columnas". MeDo genera la estructura de slots, la restricción de media y el estado hover a la vez. Mencionar la cuadrícula importa, porque es lo que determina las reglas de altura igual y de aspect-ratio.

¿Cuáles son las partes de un componente de tarjeta?

Cuatro regiones cubren casi todos los casos: un área de media opcional, un encabezado con el título y cualquier etiqueta de apoyo, un cuerpo para el contenido descriptivo y un pie para acciones o metadatos. Tratarlas como slots opcionales en lugar de markup obligatorio permite que un solo componente sirva para una tarjeta de producto, una de artículo y una de métrica sin variantes para cada una.

¿Puede ser clicable toda la tarjeta?

Sí, pero no envuelvas la tarjeta en un anchor si contiene botones u otros enlaces, ya que anidar elementos interactivos es HTML inválido y los navegadores lo manejan de forma impredecible. Pon el anchor en el título y estíralo sobre la tarjeta con un pseudo-elemento de posición absoluta, y luego eleva cualquier control anidado por encima con un z-index mayor.

¿Cómo hago que las tarjetas tengan la misma altura en una cuadrícula?

Usa un CSS grid, que ya estira los elementos de una fila para igualarlos, y haz que la propia tarjeta sea una columna flex para que su pie sea empujado hacia abajo por un cuerpo que crece. Las alturas fijas son la solución equivocada, porque recortan el contenido en cuanto un título ocupa una línea extra.

¿Las tarjetas deben usar sombra o borde?

Un borde se lee mejor en interfaces densas como paneles y tablas, donde muchas sombras crean ruido visual. Una sombra encaja en layouts de marketing espaciosos donde las tarjetas necesitan despegarse del fondo. Elige uno como opción por defecto y reserva el otro para una variante elevada o destacada en lugar de mezclarlos en el mismo nivel.

¿Una tarjeta necesita un skeleton de carga?

Cualquier tarjeta alimentada por una petición de red se beneficia de uno, porque un skeleton dimensionado al contenido real evita que la página se recomponga cuando llegan los datos. Pide a MeDo el skeleton en el mismo prompt que la tarjeta y ambos comparten dimensiones por construcción, algo difícil de mantener cuando se escriben por separado.