MeDo

Générateur de Cartes IA.

Décrivez ce que contient la carte et MeDo génère le conteneur complet — slots media, en-tête, corps et pied, élévation au survol, images verrouillées par aspect-ratio, hauteurs égales dans une grille et un état skeleton assorti.

Carte
Carte

Une carte est un contrat de mise en page, pas une boîte avec une bordure

Des coins arrondis et une ombre s'écrivent en une minute, alors les cartes passent pour triviales. Ce qui casse, c'est tout ce qui les entoure. Une carte a un titre sur deux lignes, sa voisine sur quatre, et les pieds ne s'alignent plus. Une image arrive dans un ratio inattendu et la grille se recompose après le paint. Quelqu'un rend toute la carte cliquable et emprisonne un bouton « Enregistrer » dans l'anchor, ce qui produit du HTML invalide et un contrôle inaccessible. Ce sont des propriétés de la carte au sein d'un ensemble, pas de la carte seule, et c'est précisément pourquoi générer le conteneur, la contrainte media, l'alignement du pied et l'état de chargement comme une seule unité est plus utile que de bien styliser un div isolé.

6 modèles

Modèles de Carte que vous pouvez générer

Chaque modèle est un vrai prompt, pas une capture d'écran. Copiez-le dans n'importe quel éditeur IA, ou exécutez-le dans MeDo pour récupérer du code 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.

Tester dans 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.

Tester dans 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.

Tester dans 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.

Tester dans 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.

Tester dans 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.

Tester dans MeDo

Comment personnaliser votre Carte

Verrouillez l'aspect-ratio du media

Demandez un aspect-ratio explicite sur la zone image avec object-fit cover. Sans boîte réservée, des images de dimensions variables redimensionnent la carte après leur chargement, ce qui frappe directement le Cumulative Layout Shift et constitue le défaut le plus visible dans une grille de cartes.

Ancrez le pied en bas

Précisez que la carte est une colonne flex dont le corps peut grandir, afin que les pieds s'alignent sur toute la rangée même quand les titres se répartissent sur un nombre de lignes différent. Des rangées d'actions irrégulières sont le moyen le plus rapide de faire paraître inachevée une grille par ailleurs impeccable.

Choisissez une seule stratégie de clic

Soit la carte entière est un lien, soit ce sont les éléments à l'intérieur, jamais les deux. Pour une carte entièrement cliquable, demandez un unique anchor sur le titre étiré sur la carte avec un pseudo-élément en position absolue : le nom accessible reste pertinent et il reste de la place pour des contrôles imbriqués au-dessus.

Demandez le skeleton en même temps que la carte

Réclamez une variante de chargement dont les blocs gris correspondent aux dimensions réelles, y compris le ratio du media et le nombre de lignes. Un skeleton construit à une autre taille manque son but, puisque la mise en page saute quand même à l'arrivée des données.

Qui utilise le composant Carte

Grille de produits e-commerce

Une image produit carrée, le nom, le prix et une ligne de notation, avec un bouton « Ajouter au panier » dans le pied placé au-dessus d'un lien couvrant toute la carte vers la page produit, de sorte que les deux cibles fonctionnent sans imbrication.

Index de blog ou de ressources

Une image de couverture 16:9, un badge de catégorie, un titre qui se répartit sur deux lignes, un extrait et un pied avec auteur et temps de lecture qui s'aligne sur toute la rangée quelle que soit la longueur des titres.

Tableau de bord SaaS

Des cartes de métriques sans aucun media : un libellé, une grande valeur, un indicateur d'évolution et un sparkline, affichées en skeletons au premier paint pendant que la requête se résout.

Comparaison de tarifs ou de forfaits

Trois cartes de hauteur égale dont une mise en avant par une bordure plus épaisse et un badge, chacune se terminant par un bouton d'appel à l'action ancré en bas afin que les boutons soient alignés sur une seule ligne.

Modèles de Carte pour différents sites web

Le même composant carte, adapté au type de site sur lequel il est publié.

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.

Styles et variantes de Carte

Choisissez la variante qui correspond au reste de la page, puis générez-la.

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.

Carte en React, Next.js, Vue et Svelte

React, Next.js, Vue 3, SvelteKit, Astro ou HTML simple — le même carte, six façons de l'intégrer.

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>

Comment ajouter votre Carte à un projet

Quatre étapes, du choix d'un modèle de carte à sa mise en production.

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.

Questions fréquentes à propos de Carte

Comment générer un composant carte avec l'IA ?

Décrivez ce que contient la carte et comment elle sera utilisée, par exemple « carte produit avec image carrée, titre, prix et pied d'ajout au panier, dans une grille à trois colonnes ». MeDo génère la structure des slots, la contrainte media et l'état au survol ensemble. Mentionner la grille compte, car c'est elle qui détermine les règles de hauteur égale et d'aspect-ratio.

Quelles sont les parties d'un composant carte ?

Quatre régions couvrent presque tous les cas : une zone media optionnelle, un en-tête avec le titre et tout libellé de soutien, un corps pour le contenu descriptif et un pied pour les actions ou les métadonnées. Les traiter comme des slots optionnels plutôt que comme du markup obligatoire permet à un seul composant de servir de carte produit, de carte article et de carte métrique sans variante dédiée.

La carte entière peut-elle être cliquable ?

Oui, mais n'enveloppez pas la carte dans un anchor si elle contient des boutons ou d'autres liens, car imbriquer des éléments interactifs est du HTML invalide et les navigateurs le gèrent de façon imprévisible. Placez l'anchor sur le titre et étirez-le sur la carte avec un pseudo-élément positionné en absolu, puis remontez tout contrôle imbriqué au-dessus avec un z-index supérieur.

Comment donner la même hauteur aux cartes dans une grille ?

Utilisez une grille CSS, qui étire déjà les éléments d'une rangée pour les faire correspondre, et faites de la carte elle-même une colonne flex afin que son pied soit poussé vers le bas par un corps qui grandit. Les hauteurs fixes sont la mauvaise solution, car elles rognent le contenu dès qu'un titre passe sur une ligne supplémentaire.

Les cartes doivent-elles utiliser une ombre ou une bordure ?

Une bordure se lit mieux dans les interfaces denses comme les tableaux de bord et les tableaux, où de nombreuses ombres créent du bruit visuel. Une ombre convient aux mises en page marketing aérées où les cartes doivent se détacher du fond. Choisissez-en une par défaut et réservez l'autre à une variante surélevée ou mise en avant plutôt que de les mélanger au même niveau.

Une carte a-t-elle besoin d'un skeleton de chargement ?

Toute carte alimentée par une requête réseau en bénéficie, car un skeleton dimensionné au contenu réel empêche la page de se recomposer à l'arrivée des données. Demandez le skeleton à MeDo dans le même prompt que la carte et les deux partagent leurs dimensions par construction, ce qui est difficile à maintenir quand ils sont écrits séparément.