681 tutoriels en ligne

Créa-blog

#100JoursPourCoder
Projet Créa-code | Formation Créa-troyes

Ressources pour développeur web

Théme de la semaine : WebDesign

WebDesign: Exemple de Card produit moderne en CSS

Temps de lecture estimé : 6 minutes
Accueil CSS3 WebDesign: Exemple de Card produit moderne en CSS

Vous voulez créer une card produit moderne qui donne immédiatement envie de cliquer ? Parfait, on va coder ça ! Une bonne card produit, c’est ce petit bloc magique qui peut transformer un simple visiteur en client. Et parfois, tout se joue en quelques secondes.

  • Structurer une card produit moderne pour capter l’attention et améliorer l’impact visuel d’une boutique en ligne.
  • Maîtriser les bases essentielles du HTML et du CSS pour créer un design professionnel, clair et orienté conversion.
  • Apprendre à utiliser les effets visuels (dégradés, ombres, micro-interactions) pour rendre une interface plus attractive et crédible.

Dans ce tutoriel complet, vous allez comprendre comment construire une card produit élégante, moderne et professionnelle en HTML et CSS, tout en décortiquant chaque ligne de code. L’objectif est simple : que vous compreniez ce que vous faites.

Même si vous débutez, à la fin de ce tutoriel de WebDesign, vous serez capable de coder ceci :

NOUVEAUTÉ

NovaPods X

Écouteurs sans fil nouvelle génération avec réduction de bruit active et autonomie longue durée.

€149.99
★ ★ ★ ★ ☆ 4.8
NovaPods X

Pourquoi la card produit est essentielle en e-commerce ?

Avant de parler code, prenons un instant pour comprendre le rôle d’une card produit.

Sur une boutique en ligne comme WooCommerce ou Prestashop, la card produit est souvent le premier point de contact entre le visiteur et votre article. Elle doit :

  • Attirer l’œil
  • Donner les informations essentielles
  • Inspirer confiance
  • Donner envie de cliquer

Une card produit réussie, ce n’est pas juste un joli rectangle avec une image. C’est une hiérarchie visuelle claire, un équilibre entre esthétique et efficacité, et surtout une compréhension du comportement utilisateur.

Si votre card produit est brouillonne, mal structurée ou trop chargée, vous perdez de l’attention. Et en e-commerce, l’attention est précieuse.

Les éléments essentiels d’une card produit

Pour qu’une card produit soit efficace, elle doit contenir plusieurs éléments clés.

  • D’abord, un indicateur de statut. Ici, nous avons un badge “NOUVEAUTÉ”. Ce petit élément attire immédiatement l’attention. Il crée un effet d’urgence ou d’exclusivité.
  • Ensuite, le nom du produit. Il doit être clair, lisible, hiérarchisé.
  • Puis une courte description. Pas un roman. Juste ce qu’il faut pour rassurer et expliquer.
  • Le prix. C’est évidemment un élément central. Il doit être visible et bien mis en valeur.
  • La note ou les avis. Les étoiles jouent un rôle psychologique énorme. Elles rassurent.
  • L’image produit. Elle doit être centrée, valorisante, propre.
  • Enfin, les boutons d’action. Ce sont eux qui déclenchent la conversion.
Card produit en CSS

Maintenant que vous comprenez la logique, on va plonger dans le code.

Le code HTML et CSS complet

<style>
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

#exemple_prod {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: linear-gradient(180deg, #eef1f8, #e6ebf5);
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

#exemple_prod .card {
    width: 360px;
    background: #f7f8fc;
    border-radius: 30px;
    padding: 30px 30px 10px;
    box-shadow: 0 25px 60px rgba(0,0,0,0.08);
    position: relative;
}

/* Top */

#exemple_prod .card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

#exemple_prod .badge {
    background: linear-gradient(135deg, #d7c9ff, #bde8ff);
    color: #5a4bff;
    font-size: 12px;
    padding: 6px 14px;
    border-radius: 20px;
    font-weight: 600;
}

#exemple_prod .menu {
    font-size: 18px;
    color: #999;
}

/* Title */

#exemple_prod .title {
    font-size: 34px;
    font-weight: 700;
    color: #2d2f45;
    margin-bottom: 12px;
}

#exemple_prod .title span {
    background: linear-gradient(135deg, #7b5cff, #5ddcff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

#exemple_prod .subtitle {
    font-size: 14px;
    color: #6b7280;
    line-height: 1.6;
    margin-bottom: 20px;
}

/* Price */

#exemple_prod .price-section {
    margin-bottom: 20px;
}

#exemple_prod .price {
    font-size: 40px;
    font-weight: 700;
    color: #2d2f45;
}

#exemple_prod .price span {
    font-size: 20px;
}

#exemple_prod .rating {
    color: #fbbf24;
    font-size: 14px;
    margin-top: 6px;
}

#exemple_prod .rating span {
    color: #6b7280;
    margin-left: 6px;
}

/* Image */

#exemple_prod .image-wrapper {
    text-align: center;
    margin: 40px 0 20px;
}

#exemple_prod .image-wrapper img {
    width: 240px;
    transition: 0.3s ease;
    background: transparent;
    mix-blend-mode: multiply;
}

#exemple_prod .card:hover img {
    transform: scale(1.05);
}

/* Buttons */

#exemple_prod .buttons {
    display: flex;
    gap: 12px;
    margin: 20px 0;
}

#exemple_prod .btn-primary {
    flex: 1;
    padding: 14px;
    border-radius: 20px;
    border: none;
    font-weight: 600;
    cursor: pointer;
    color: white;
    background: linear-gradient(135deg, #7b5cff, #5ddcff);
    transition: 0.3s ease;
}

#exemple_prod .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(123, 92, 255, 0.3);
}

#exemple_prod .btn-secondary {
    flex: 1;
    padding: 14px;
    border-radius: 20px;
    border: none;
    font-weight: 600;
    cursor: pointer;
    background: #ffffff;
    color: #2d2f45;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    transition: 0.3s ease;
}

#exemple_prod .btn-secondary:hover {
    transform: translateY(-2px);
}
</style>

<div id="exemple_prod">
    <div class="card">

        <div class="card-top">
            <div class="badge">NOUVEAUTÉ</div>
        </div>

        <h1 class="title">
            NovaPods <span>X</span>
        </h1>

        <p class="subtitle">
            Écouteurs sans fil nouvelle génération avec réduction de bruit active et autonomie longue durée.
        </p>

        <div class="price-section">
            <div class="price">€149<span>.99</span></div>
            <div class="rating">
                ★ ★ ★ ★ ☆
                <span>4.8</span>
            </div>
        </div>

        <div class="image-wrapper">
            <img src="produit.webp" alt="NovaPods X">
        </div>

        <div class="buttons">
            <button class="btn-primary">Add to Cart</button>
            <button class="btn-secondary">Learn More</button>
        </div>

    </div>
</div>

Nous allons décortiquer votre code étape par étape. Prenez le temps de bien comprendre chaque bloc.

Le reset CSS : repartir sur une base propre

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

Cette partie est extrêmement importante.

Par défaut, les navigateurs ajoutent des marges et des espacements automatiques. Cela peut casser votre mise en page.

En mettant margin: 0 et padding: 0, vous repartez de zéro.

La propriété box-sizing: border-box change la manière dont les dimensions sont calculées. Sans elle, la largeur inclut seulement le contenu. Avec elle, la largeur inclut aussi le padding et la bordure. C’est plus logique et plus simple à gérer.

C’est une base saine pour toute card produit.

👉 Pour aller plus loin : Normalize.css VS Reset.css

Le conteneur principal : centrer la card produit

#exemple_prod {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: linear-gradient(180deg, #eef1f8, #e6ebf5);
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

Ici, nous stylisons le conteneur principal.

  • Le font-family définit la police. Nous utilisons une pile de polices système modernes. C’est rapide, propre et professionnel.
  • Le background utilise un dégradé vertical. Cela donne un effet doux, premium.

Ensuite, nous utilisons Flexbox :

  • display: flex
  • justify-content: center
  • align-items: center

Cela permet de centrer parfaitement la card produit au milieu de l’écran, horizontalement et verticalement.

Simple. Puissant.

La structure de la card produit

#exemple_prod .card {
    width: 360px;
    background: #f7f8fc;
    border-radius: 30px;
    padding: 30px 30px 10px;
    box-shadow: 0 25px 60px rgba(0,0,0,0.08);
    position: relative;
}

La largeur est fixée à 360 pixels. C’est un format proche d’une interface mobile.

  • Le border-radius: 30px arrondit fortement les coins. Cela donne un aspect moderne et doux.
  • Le box-shadow crée l’illusion de profondeur. Sans ombre, la card produit semblerait plate.
  • position: relative permettrait plus tard d’ajouter des éléments positionnés par rapport à la card si nécessaire.

Le haut de la card : badge et structure

#exemple_prod .card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

Flexbox est encore utilisé ici pour aligner les éléments sur une ligne.

👉 Pour ceux qui débutent : Mise en page avec Flexbox

Le badge :

#exemple_prod .badge {
    background: linear-gradient(135deg, #d7c9ff, #bde8ff);
    color: #5a4bff;
    font-size: 12px;
    padding: 6px 14px;
    border-radius: 20px;
    font-weight: 600;
}

Le dégradé pastel attire l’œil sans agresser.

Le border-radius: 20px transforme le rectangle en forme de pilule. C’est typiquement le genre de détail qui donne un aspect professionnel à une card produit.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

Le titre et l’effet dégradé sur le X

#exemple_prod .title span {
    background: linear-gradient(135deg, #7b5cff, #5ddcff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

Ici, nous faisons quelque chose de plus avancé. Nous appliquons un dégradé au texte.

  • background-clip: text permet d’appliquer le fond uniquement au texte.
  • text-fill-color: transparent rend le texte transparent pour laisser apparaître le dégradé.

C’est moderne. Élégant. Et ça fait tout de suite plus haut de gamme.

Le prix : hiérarchie visuelle

#exemple_prod .price {
    font-size: 40px;
    font-weight: 700;
}

Le prix est énorme comparé aux autres éléments.

  • Il doit être vu immédiatement.

La partie décimale est plus petite :

#exemple_prod .price span {
    font-size: 20px;
}

Cela améliore la lisibilité.

Les étoiles : preuve sociale

#exemple_prod .rating {
    color: #fbbf24;
}

La couleur jaune rappelle immédiatement les systèmes d’évaluation.

La preuve sociale rassure. Même si vous débutez en webdesign, retenez ceci : la psychologie compte autant que le CSS.

L’image produit et l’effet hover

#exemple_prod .image-wrapper img {
    width: 240px;
    transition: 0.3s ease;
    background: transparent;
    mix-blend-mode: multiply;
}

La transition rend les animations fluides.

Le mix-blend-mode: multiply permet d’atténuer un fond blanc si l’image en contient un. Puis :

#exemple_prod .card:hover img {
    transform: scale(1.05);
}

Au survol, l’image grandit légèrement.

Ce petit effet donne de la vie à votre card produit. Ce sont ces micro-interactions qui rendent une interface moderne.

Les boutons : appel à l’action

#exemple_prod .buttons {
    display: flex;
    gap: 12px;
}

Encore Flexbox.

Le bouton principal :

background: linear-gradient(135deg, #7b5cff, #5ddcff);

Le dégradé attire l’attention.

Le hover ajoute une légère élévation :

transform: translateY(-2px);

Cela simule un effet de profondeur. Le bouton secondaire est blanc avec une ombre douce. Il reste discret.

Dans une card produit, le bouton principal doit toujours être plus visible que le secondaire.

Pourquoi cette card produit fonctionne

Cette card produit fonctionne parce qu’elle respecte plusieurs principes fondamentaux :

  • Une hiérarchie visuelle claire.
  • Des couleurs cohérentes.
  • Un espace blanc bien géré.
  • Des interactions subtiles.
  • Une structure simple et lisible.

Rien n’est laissé au hasard.

Améliorations possibles

Si vous souhaitez aller plus loin :

Mais pour une base moderne et propre, vous avez déjà une excellente structure.


Créer une card produit moderne en CSS n’est pas une question de magie. C’est une question de structure, de hiérarchie et de compréhension des principes fondamentaux du design.

Ce que vous avez appris ici dépasse largement ce simple exemple. Vous avez compris comment centrer un élément, comment utiliser Flexbox, comment gérer les ombres, comment appliquer un dégradé sur du texte, comment créer des micro-interactions élégantes.

En réalité, vous venez d’apprendre à construire une interface crédible. Et ça, ce n’est pas juste du CSS. C’est du webdesign.

Maintenant, à vous de jouer. Prenez ce modèle, modifiez-le, cassez-le, améliorez-le. C’est en expérimentant que vous deviendrez vraiment à l’aise. Et qui sait… votre prochaine card produit sera peut-être celle qui déclenchera des ventes.