From dedbda422cc4c2417c42aacacee116b21e2adc6b Mon Sep 17 00:00:00 2001 From: william Date: Sat, 29 Aug 2026 06:46:19 +0200 Subject: [PATCH] Rend la page de profil compacte et sur 2 colonnes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les 5 sections (email, informations, mot de passe, codes de récupération, suppression du compte) tenaient les unes sous les autres dans une seule colonne étroite (560px) avec le padding/espacement par défaut de Bulma — imposait de scroller pour tout voir. Réorganisé en grille CSS 2 colonnes (container élargi à 980px, static/style.css : .profileGrid/.profileCol/ .profileBox) : compte/infos/suppression à gauche, sécurité (mot de passe, codes de récupération) à droite. Champs resserrés (labels remplacés par des placeholders, is-small partout, marges réduites), jauge de force du mot de passe sur une ligne (.passwordChecklist-compact). Repasse en une seule colonne sous 720px de large. Co-Authored-By: Claude Sonnet 5 --- static/style.css | 19 ++++ templates/auth/profile.html | 167 ++++++++++++++---------------------- 2 files changed, 85 insertions(+), 101 deletions(-) diff --git a/static/style.css b/static/style.css index a46f149e..5994b808 100644 --- a/static/style.css +++ b/static/style.css @@ -584,6 +584,25 @@ code{ background:var(--panel2); border:1px solid var(--border); border-radius:4p .passwordChecklist li::before{ content:"○"; position:absolute; left:0; } .passwordChecklist li.ok{ color:#4caf50; } .passwordChecklist li.ok::before{ content:"✓"; } +.passwordChecklist-compact{ flex-direction:row; flex-wrap:wrap; column-gap:10px; row-gap:2px; } +.passwordChecklist-compact li{ font-size:11px; } + +/* ---------- Page de profil : compacte, sur 2 colonnes ---------- */ +.profileSection{ padding-top:1.5rem; padding-bottom:1.5rem; } +.profileContainer{ max-width:980px; } +.profileNotif{ padding:0.6rem 0.9rem; margin-bottom:0.75rem; } +.profileGrid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; } +.profileCol{ display:flex; flex-direction:column; gap:14px; min-width:0; } +.profileBox{ padding:0.85rem 1rem; } +.profileBox-danger{ border:1px solid #b33; } +.profileForm .field{ margin-bottom:8px; } +.profileForm .field:last-child{ margin-bottom:0; } +.profileForm-row{ display:flex; flex-wrap:wrap; gap:8px; } +.profileForm-row .field{ flex:1 1 120px; margin-bottom:0; } +.profileForm-row .field.profileForm-full{ flex-basis:100%; } +@media (max-width:720px){ + .profileGrid{ grid-template-columns:1fr; } +} /* ---------- Inscription : QR code de la double authentification ---------- */ .totpQrWrap{ background:#fff; padding:16px; border-radius:8px; display:inline-block; max-width:220px; } diff --git a/templates/auth/profile.html b/templates/auth/profile.html index c773e0e6..44bbd277 100644 --- a/templates/auth/profile.html +++ b/templates/auth/profile.html @@ -1,122 +1,87 @@ {% extends "base.html" %} {% block title %}Mon profil — Forge Engine{% endblock %} {% block content %} -
-
-

Mon profil

+
+
+

Mon profil

{% if error %} -
{{ error }}
+
{{ error }}
{% endif %} {% if success %} -
{{ success }}
+
{{ success }}
{% endif %} -
-

Adresse email

-

- {{ 'Compte administrateur' if user.role == 'admin' else 'Compte utilisateur' }}. - {% if user.role != 'admin' %}Le dossier de ton jeu ({{ user.project_slug }}) est renommé automatiquement si tu changes d'adresse.{% endif %} -

-
-
- -
+
+
+
+

Adresse email

+

+ {{ 'Compte administrateur' if user.role == 'admin' else 'Compte utilisateur' }}{% if user.role != 'admin' %} — le dossier de ton jeu ({{ user.project_slug }}) suit automatiquement{% endif %}. +

+ +
+
+
+
-
- -
-
-
- -
- -
-
-

Informations

-
-
- -
+
+

Informations

+ +
+
+
+
-
- -
-
-
- -
- -
-
-

Changer de mot de passe

-
-
- -
+
+

Supprimer mon compte

+

+ {% if user.role != 'admin' %} + Action définitive : ton compte ET ton jeu ({{ user.project_slug }}) seront supprimés. + {% else %} + Action définitive : ton compte sera supprimé (tes jeux existants ne sont pas touchés). + {% endif %} +

+ +
+
+
+
-
- -
-
-
-
-
    -
  • Au moins 8 caractères
  • -
  • Une majuscule
  • -
  • Une minuscule
  • -
  • Un chiffre
  • -
  • Un caractère spécial (ex. ! ? # -)
  • -
-
-
- -
-
-
- -
- -
+
-
-

Codes de récupération 2FA

-

Régénérer tes codes remplace immédiatement les 10 précédents par 10 nouveaux — les anciens ne fonctionneront plus. Les nouveaux codes ne sont affichés qu'une seule fois, juste après.

-
-
- -
+
+
+

Changer de mot de passe

+ +
+
+
+
+
    +
  • 8+ car.
  • +
  • Majuscule
  • +
  • Minuscule
  • +
  • Chiffre
  • +
  • Spécial
  • +
+
+
+
+
-
- -
- -
-
-

Supprimer mon compte

-

- {% if user.role != 'admin' %} - Action définitive et irréversible : ton compte ET ton jeu ({{ user.project_slug }}) seront supprimés, sans possibilité de récupération. - {% else %} - Action définitive et irréversible : ton compte sera supprimé (tes jeux existants ne sont pas touchés). - {% endif %} -

-
-
- -
+
+

Codes de récupération 2FA

+

Remplace immédiatement les 10 codes précédents. Les nouveaux ne s'affichent qu'une fois, juste après.

+ +
+
+
-
- -
-
-
- -
- +