Dans le but de s’amuser, nous allons pour ce projet essayer de reproduire le mieux possible l’espace de connexion de célèbre réseau social Facebook. Vous pouvez vous rendre sur Facebook afin de prendre connaissance du design adapté aux pages web. Allez, commençons !

Dans ce projet, on ne fait pas d’authentification réelle, mais on construit une interface complète et crédible, avec :
- Une page de connexion réaliste (layout Facebook)
- Un vrai mini-parcours : inscription, mot de passe oublié, créer une page, à propos
- Un style global cohérent via un seul fichier
style.css - Un footer “à la Facebook” (langues + liens)
- Une structure propre de projet web
Arborescence du projet
Tu vas structurer ton projet comme ceci :
facebook/index.html: page de connexionfacebook/style.css: styles globaux (layout + formulaire + footer + responsive)facebook/pages/register.html: page inscriptionfacebook/pages/forgot-password.html: mot de passe oubliéfacebook/pages/pages.html: page “Créer une Page”facebook/pages/about.html: page “À propos”facebook/assets/: images, icônes, logo, background, etc.
Prérequis
- Connaissances de base en HTML, CSS et Bootstrap.
- Un éditeur de texte (comme VS Code, Atom, Sublime Text).
- Un navigateur pour tester la page.
Étape 1 : Créer la page principale index.html
Ce que tu dois obtenir (UI)
- Layout en 2 colonnes (desktop) :
- à gauche : logo “facebook” + phrase d’accroche
- à droite : une carte blanche (formulaire de connexion)
- Sous le formulaire : “Créer une Page”
- En bas : footer complet (langues + liens)
Ce que tu dois mettre dans le code
- un wrapper principal (ex:
.container) - deux sections :
.left-section(branding).right-section(carte formulaire)
- un vrai
<form>avec :- input email/téléphone
- input mot de passe
- bouton “Connexion”
- lien “Mot de passe oublié ?”
- séparateur
- bouton “Créer un compte”
- et surtout : les liens pointent vers tes pages internes
Exemple :pages/forgot-password.htmlpages/register.htmlpages/pages.html
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Facebook - Connectez-vous ou inscrivez-vous</title>
<link rel="stylesheet" href="style.css">
<!-- Favicon Facebook -->
<link rel="icon" href="https://static.xx.fbcdn.net/rsrc.php/yb/r/hLRJ1GG_y0J.ico">
</head>
<body>
<!-- Conteneur principal : divisé en deux parties comme sur le vrai Facebook -->
<div class="container-login">
<!-- PARTIE GAUCHE : Le branding et le pitch marketing de Facebook -->
<div class="left-panel">
<!-- Le logo iconique en bleu Facebook -->
<h1 class="facebook-logo">facebook</h1>
<!-- Le slogan qui explique ce qu'est Facebook -->
<p class="tagline">
Facebook vous permet de rester en contact et de partager votre vie avec votre entourage.
</p>
</div>
<!-- PARTIE DROITE : Le formulaire de connexion blanc bien propre -->
<div class="right-panel">
<!-- Formulaire de connexion -->
<form class="login-form">
<!-- Champ email/téléphone -->
<input
type="text"
class="input-field"
placeholder="Adresse e-mail ou numéro de tél."
required
>
<!-- Champ mot de passe -->
<input
type="password"
class="input-field"
placeholder="Mot de passe"
required
>
<!-- Bouton de connexion en gros et bien bleu -->
<button type="submit" class="btn-login">Se connecter</button>
<!-- Lien mot de passe oublié, bien centré -->
<a href="pages/forgot-password.html" class="forgot-link">Mot de passe oublié ?</a>
<!-- Ligne de séparation -->
<div class="separator"></div>
<!-- Bouton de création de compte en vert -->
<a href="pages/register.html" class="btn-create-account">Créer nouveau compte</a>
</form>
<!-- Petit texte pour créer une page (entreprises, célébrités, etc.) -->
<div class="create-page">
<a href="pages/pages.html"><strong>Créer une Page</strong></a> pour une célébrité, un groupe ou une entreprise.
</div>
</div>
</div>
<!-- Footer avec les liens légaux et autres -->
<footer class="footer">
<div class="footer-content">
<!-- Sélecteur de langue -->
<div class="language-selector">
<a href="#" class="active">Français (France)</a>
<a href="#">English (US)</a>
<a href="#">Español</a>
<a href="#">Deutsch</a>
<a href="#">Português (Brasil)</a>
<a href="#">Nederlands</a>
<a href="#">Italiano</a>
<a href="#">日本語</a>
<a href="#">한국어</a>
<a href="#">中文(简体)</a>
<button class="more-languages">+</button>
</div>
<!-- Ligne de séparation -->
<div class="separator-footer"></div>
<!-- Liens du footer -->
<div class="footer-links">
<a href="#">Inscription</a>
<a href="pages/about.html">À propos</a>
<a href="#">Messenger</a>
<a href="#">Facebook Lite</a>
<a href="#">Vidéo</a>
<a href="#">Lieux</a>
<a href="#">Jeux</a>
<a href="#">Marketplace</a>
<a href="#">Meta Pay</a>
<a href="#">Meta Store</a>
<a href="#">Meta Quest</a>
<a href="#">Instagram</a>
<a href="#">Threads</a>
<a href="#">Collecte de fonds</a>
<a href="#">Services</a>
<a href="#">Centre d'information sur les élections</a>
<a href="#">Politique de confidentialité</a>
<a href="#">Centre de confidentialité</a>
<a href="#">Groupes</a>
<a href="#">Conditions générales</a>
<a href="#">Publicité</a>
<a href="#">Créer une publicité</a>
<a href="#">Créer une Page</a>
<a href="#">Développeurs</a>
<a href="#">Carrières</a>
<a href="#">Cookies</a>
<a href="#">Choix publicitaires</a>
</div>
<!-- Copyright Meta -->
<div class="copyright">
Meta © 2025
</div>
</div>
</footer>
</body>
</html>
Ajoutez un lien vers Bootstrap dans la balise <head> pour avoir accès aux styles et composants prédéfinis.
Étape 2 : Centraliser tout le style dans style.css
L’idée : toutes les pages partagent la même charte en important style.css.
Sections recommandées dans ton CSS (avec commentaires)
- Base
- fond gris clair type Facebook
- police system (ou Arial)
- centrage vertical/horizontal
- Layout
- container max-width
- flex en 2 colonnes sur desktop
- espacement propre (gap)
- Branding
- grand texte “facebook” bleu
- slogan sous le logo
- tailles adaptées au desktop
- Carte formulaire
- fond blanc +
box-shadow - bord arrondi
- inputs avec état focus propre (
:focus-visible) - bouton bleu (login)
- bouton vert (create account)
- séparateur (ligne grise)
- Footer
- bloc langues
- bloc liens
- copyright
- style discret, alignement propre
- Responsive
- ajuste les tailles de police et padding
- passage en 1 colonne sur mobile
- centre le logo + carte
/* ==============================================
RESET ET BASE
On commence par mettre tout à plat
============================================== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* Le body prend toute la hauteur de l'écran */
body {
font-family: Helvetica, Arial, sans-serif;
/* Ce gris très clair est la couleur signature du fond de Facebook */
background-color: #f0f2f5;
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: space-between;
}
/* ==============================================
CONTENEUR PRINCIPAL
La page de connexion est divisée en deux : gauche (branding) et droite (formulaire)
============================================== */
.container-login {
display: flex;
justify-content: center;
align-items: center;
gap: 100px;
padding: 100px 20px;
flex: 1;
max-width: 1200px;
margin: 0 auto;
width: 100%;
}
/* ==============================================
PANNEAU GAUCHE
Le logo Facebook et le slogan marketing
============================================== */
.left-panel {
max-width: 580px;
}
/* Le logo "facebook" en minuscules avec la police et couleur iconiques */
.facebook-logo {
font-size: 60px;
font-weight: bold;
/* Le bleu Facebook, reconnaissable entre mille */
color: #1877f2;
margin-bottom: 16px;
letter-spacing: -2px;
}
/* Le slogan qui explique ce qu'est Facebook */
.tagline {
font-size: 28px;
color: #1c1e21;
line-height: 32px;
font-weight: normal;
}
/* ==============================================
PANNEAU DROIT
Le formulaire de connexion dans une carte blanche
============================================== */
.right-panel {
width: 100%;
max-width: 396px;
}
/* Le formulaire lui-même - carte blanche avec ombre */
.login-form {
background-color: #ffffff;
border-radius: 8px;
/* Ombre douce pour donner de la profondeur */
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 8px 16px rgba(0, 0, 0, 0.1);
padding: 24px 16px 32px;
display: flex;
flex-direction: column;
gap: 12px;
}
/* Les champs de saisie (email et mot de passe) */
.input-field {
width: 100%;
padding: 14px 16px;
font-size: 17px;
border: 1px solid #dddfe2;
border-radius: 6px;
outline: none;
transition: border-color 0.2s;
}
/* Bordure bleue quand on clique dans un champ */
.input-field:focus {
border-color: #1877f2;
/* Petite ombre bleue pour accentuer le focus */
box-shadow: 0 0 0 2px rgba(24, 119, 242, 0.2);
}
/* Placeholder gris clair */
.input-field::placeholder {
color: #8a8d91;
}
/* ==============================================
BOUTONS
Le bouton bleu "Se connecter" et le vert "Créer nouveau compte"
============================================== */
/* Bouton de connexion - grand et bien bleu */
.btn-login {
width: 100%;
padding: 14px 16px;
font-size: 20px;
font-weight: bold;
color: #ffffff;
background-color: #1877f2;
border: none;
border-radius: 6px;
cursor: pointer;
transition: background-color 0.2s;
margin-top: 6px;
}
.btn-login:hover {
background-color: #166fe5;
}
.btn-login:active {
background-color: #1464d4;
}
/* Lien "Mot de passe oublié ?" */
.forgot-link {
text-align: center;
color: #1877f2;
font-size: 14px;
text-decoration: none;
padding: 8px 0;
}
.forgot-link:hover {
text-decoration: underline;
}
/* Ligne de séparation horizontale */
.separator {
border-top: 1px solid #dadde1;
margin: 20px 0;
}
/* Bouton "Créer nouveau compte" - le vert iconique de Facebook */
.btn-create-account {
display: inline-block;
padding: 14px 16px;
font-size: 17px;
font-weight: bold;
color: #ffffff;
background-color: #42b72a;
border: none;
border-radius: 6px;
text-align: center;
text-decoration: none;
cursor: pointer;
transition: background-color 0.2s;
align-self: center;
}
.btn-create-account:hover {
background-color: #36a420;
}
.btn-create-account:active {
background-color: #2e8b18;
}
/* Texte sous le formulaire pour créer une Page */
.create-page {
text-align: center;
font-size: 14px;
color: #1c1e21;
margin-top: 28px;
}
.create-page a {
color: #1c1e21;
text-decoration: none;
}
.create-page a:hover {
text-decoration: underline;
}
/* ==============================================
FOOTER
Tout en bas avec les liens de langue et légaux
============================================== */
.footer {
background-color: #ffffff;
padding: 20px 0;
border-top: 1px solid #dadde1;
}
.footer-content {
max-width: 980px;
margin: 0 auto;
padding: 0 20px;
}
/* Sélecteur de langue */
.language-selector {
display: flex;
flex-wrap: wrap;
gap: 10px 18px;
margin-bottom: 8px;
align-items: center;
}
.language-selector a {
font-size: 12px;
color: #8a8d91;
text-decoration: none;
}
.language-selector a:hover {
text-decoration: underline;
}
.language-selector a.active {
color: #1c1e21;
font-weight: 600;
}
/* Bouton "+" pour afficher plus de langues */
.more-languages {
background-color: #f5f6f7;
border: 1px solid #ccd0d5;
color: #4b4f56;
font-size: 16px;
font-weight: bold;
padding: 2px 10px;
border-radius: 2px;
cursor: pointer;
transition: background-color 0.2s;
}
.more-languages:hover {
background-color: #ebedf0;
}
/* Ligne de séparation dans le footer */
.separator-footer {
border-top: 1px solid #dddfe2;
margin: 12px 0;
}
/* Liens du footer (tous les petits liens en bas) */
.footer-links {
display: flex;
flex-wrap: wrap;
gap: 8px 12px;
margin-bottom: 16px;
}
.footer-links a {
font-size: 12px;
color: #8a8d91;
text-decoration: none;
}
.footer-links a:hover {
text-decoration: underline;
}
/* Copyright Meta en tout petit */
.copyright {
font-size: 11px;
color: #8a8d91;
margin-top: 20px;
}
/* ==============================================
RESPONSIVE DESIGN
Adaptation pour tablettes et mobiles
============================================== */
/* Tablettes et écrans moyens */
@media (max-width: 992px) {
.container-login {
flex-direction: column;
gap: 40px;
padding: 60px 20px;
}
.left-panel {
text-align: center;
max-width: 100%;
}
.facebook-logo {
font-size: 50px;
}
.tagline {
font-size: 24px;
line-height: 28px;
}
.right-panel {
max-width: 450px;
}
}
/* Smartphones */
@media (max-width: 576px) {
.container-login {
padding: 40px 16px;
}
.facebook-logo {
font-size: 40px;
}
.tagline {
font-size: 20px;
line-height: 24px;
}
.login-form {
padding: 20px 12px 24px;
}
.input-field {
font-size: 16px;
padding: 12px 14px;
}
.btn-login {
font-size: 18px;
padding: 12px 14px;
}
.btn-create-account {
font-size: 16px;
padding: 12px 14px;
}
.footer-content {
padding: 0 16px;
}
.language-selector {
gap: 8px 12px;
}
.footer-links {
gap: 6px 10px;
}
}
Étape 3: Ajouter les pages dans facebook/pages/
Le but : simuler une vraie navigation comme sur le vrai site. Tu trouveras le code source complet de ces pages sur le repo github.
1) register.html (Inscription)
UI attendu :
- carte centrée
- formulaire plus long (nom, prénom, email, mot de passe, date de naissance…)
- boutons propres (CTA principal + annuler / retour)
Important : cette page doit importer
../style.css.

2) forgot-password.html (Mot de passe oublié)
UI attendu :
- carte simple centrée
- un champ (email/téléphone)
- 2 boutons (ex : “Rechercher” + “Annuler”)

3) pages.html (Créer une Page)
UI attendu :
- page marketing (titres, sections, avantages)
- CTA visible
- blocs en colonnes ou cartes

4) about.html (À propos)
UI attendu :
- une bannière en haut (hero)
- overlay léger (pseudo-élément
::after) - contenu : texte + liens + sections
Astuce : image dans
assets/+ class.about-hero.

Étape 4 : Cohérence & navigation
Pour que ça fasse “vrai mini-site”, assure-toi que :
- chaque page a un lien Retour (vers
../index.html) - le style est identique partout (même carte, mêmes boutons, mêmes polices)
- les liens sont corrects :
- depuis
index.html→pages/... - depuis
pages/*.html→../index.html
- depuis
Résultat

- Formulaire de Connexion : L’utilisateur peut entrer un e-mail/téléphone et un mot de passe et cliquer sur « Log In ».
- Lien « Forgot Password » : Redirige les utilisateurs vers une page de récupération (ici fictive).
- Bouton « Create New Account » : Simule la création d’un nouveau compte.

Voilà, j’espère que ce petit tuto vous fera le plus grand bien. Pour en faire un formulaire de connexion entièrement fonctionnel, il serait nécessaire de connecter le formulaire à un backend pour la gestion des utilisateurs et l’authentification avec PHP et MySql. J’ajouterai le lien ici dès que le tuto sera disponible.
Conseils d’amélioration rapide
– Ajoute des effets subtils :
- hover sur les boutons
- underline au hover des liens
-Ajoute une icône favicon dans assets/
-Ajoute un assets/logo.svg ou image (optionnel)
-Vérifie l’affichage mobile (important pour “vrai” rendu)
Bon code !
