TP : Profils Flexbox (Gamer / Creator)


Objectifs du TP

  1. Construire une page de profils (au choix : tableau de bord Gamer ou galerie Creator/Influencer).
  2. Utiliser Flexbox pour mettre en page :
    • la structure générale de la page,
    • les cartes de profils,
    • les mini-cartes de statistiques.
  3. Travailler une charte graphique cohérente :
    • thème sombre pour l’option Gamer,
    • thème clair type Insta pour l’option Creator.
  4. Réutiliser vos connaissances HTML/CSS sans que tout le code soit donné.

⚠️ Vous choisissez une seule option :
Option 1 – Gamer ou Option 2 – Creator.
Le but est de travailler la mise en page et les Flexbox, pas de recopier un exemple.


Présentation générale

Vous devez créer une page de profils avec :

La structure HTML globale sera très proche entre les deux options.
Ce qui change surtout :


Option 1 – Tableau de bord “Gamer” (thème sombre)

🎮 Thème : ambiance sombre, style “dashboard” gaming, plusieurs jeux (CS:GO, Apex, Valorant, LoL…).

Aperçu intégré (exemple)

Un exemple de rendu sera affiché juste en dessous (dans le cours) :

Aperçu (Option 1 – Tableau de bord Gamer)

Ce que votre page doit contenir (Option Gamer)

Chaque carte de joueur doit afficher :

Ambiance visuelle (idées) :


Option 2 – Galerie “Creator / Insta-like” (thème clair)

📸 Thème : ambiance claire, douce, type Insta / portfolio de créateurs.

Aperçu intégré (exemple)

Un exemple de rendu sera affiché juste en dessous (dans le cours) :

Aperçu (Option – Tableau de bord Créateur)

Vous créez une page “Creator Highlights” avec plusieurs catégories, par exemple :

Pour chaque catégorie, vous devez :

Chaque carte de créateur doit afficher :

Ambiance visuelle (idées) :


Partie 1 : Structure HTML globale (commune aux deux options)

Étape 1 : Conteneur principal et header

  1. Créez un conteneur principal qui limite la largeur de la page :

    • Par exemple un <main> avec une largeur max et centré.
    • Utilisez les propriétés classiques pour le centrage.

    Exemple d’idée de CSS (à adapter, ne copiez pas aveuglément) :

    .page {
      max-width: 1000px;
      margin: 0 auto;
      padding: 2rem 1rem;
      display: flex;
      flex-direction: column;
      gap: 2rem;
    }
  2. Créez un header avec :

    • un titre (<h1> ou logo texte),
    • un menu (<nav> + liste de liens) pointant vers toutes vos sections (ancre avec href="#idDeLaSection").

    L’alignement horizontal (titre à gauche, menu à droite) peut se faire avec Flexbox.

    Idée de base :

    header {
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

Étape 2 : Sections de catégories (jeux ou types de créateurs)

Pour chaque jeu / catégorie :

  1. Créez une balise <section> avec :

    • un id (ex. id="csgo" ou id="music"),
    • un titre <h2>,
    • un petit paragraphe descriptif <p>,
    • un conteneur pour les cartes de profils.

    Structure possible :

    <section class="category" id="csgo">
      <h2>CS:GO</h2>
      <p>Petit texte qui présente la catégorie.</p>
    
      <div class="profiles">
        <!-- Cartes de profils -->
      </div>
    </section>
  2. Le conteneur .profiles sera un conteneur Flexbox qui affiche les cartes côte à côte, avec retour à la ligne si besoin.

    Idée de base :

    .profiles {
      display: flex;
      flex-wrap: wrap;
      gap: 1.5rem;
      justify-content: center;
    }

Partie 2 : Cartes de profils (Flexbox dans la carte)

Étape 3 : Structure d’une carte de profil

Chaque profil (joueur ou créateur) doit être dans un <article> ou une <div> avec une classe du type .profile-card.

À l’intérieur de la carte, on distingue 3 zones :

  1. En-tête : avatar + nom/pseudo + rôle/rang.
  2. Meta : infos secondaires (temps de jeu, ville, style, fréquence de post…).
  3. Stats : mini-cartes de statistiques.

Structure HTML possible :

<article class="profile-card">
  <div class="profile-header">
    <!-- Avatar + nom + rôle/rang -->
  </div>

  <div class="profile-meta">
    <!-- Infos secondaires -->
  </div>

  <div class="profile-stats">
    <!-- Mini-cartes de stats -->
  </div>
</article>

Vous devez remplir ces blocs avec vos propres infos (noms inventés, stats fictives mais cohérentes).

Étape 4 : Flexbox dans l’en-tête de la carte

L’objectif est d’aligner :

Par exemple :

.profile-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

À l’intérieur, vous pouvez créer une structure du type :

<div class="profile-main">
  <!-- Avatar + bloc nom/rôle -->
</div>
<div class="profile-tag">
  <!-- Rang (Gamer) ou spécialité (Creator) -->
</div>

Et ensuite :

.profile-main {
  display: flex;
  align-items: center;
  gap: 0.75rem; /* espace entre avatar et texte */
}

Partie 3 : Mini-cartes de stats (Flexbox dans la zone stats)

Étape 5 : Conteneur de stats

La zone .profile-stats doit contenir plusieurs petites “mini-cartes” de stats.

Idée :

.profile-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

Étape 6 : Mini-carte individuelle

Chaque mini-carte de stats contient :

Structure simple :

<div class="stat-card">
  <div class="stat-label">K/D</div>
  <div class="stat-value">1.42</div>
</div>

Puis en CSS, vous pouvez leur donner :

Idée :

.stat-card {
  min-width: 90px;
  padding: 0.5rem 0.75rem;
  border-radius: 0.75rem;
  /* Fond et bordure à choisir selon votre thème */
}

Les statistiques changent selon votre option :


Partie 4 : Thème graphique et responsive simple

Étape 7 : Thème visuel cohérent


Partie 5 : Choix et imagination

Vous devez :

🧠 L’objectif est que vous soyez capables de :


Barème (TP Profils Flexbox) — /20

CritèreDescriptionPoints
Structure HTML & organisationStructure claire (header, sections, cartes). Code propre et bien organisé.4 pts
Utilisation de FlexboxFlexbox utilisé à bon escient (header, conteneurs de cartes, stats). Mise en page cohérente.6 pts
Qualité visuelle & thèmeThème respecté (sombre Gamer ou clair Insta). Palette de couleurs cohérente. Cartes lisibles et bien espacées.4 pts
Richesse des profils & statsProfils variés, stats inventées mais crédibles, mini-cartes de stats bien distinctes.4 pts
Soin global & petits détailsIndentation, lisibilité du code, cohérence des noms de classes, petits plus (hover, légère adaptation mobile, etc.).2 pts

Total : 20 points


📌 Rappel :
Vous ne devez pas recopier un exemple complet. Inspirez-vous des structures proposées, mais créez votre propre page, vos propres cartes, vos propres stats.