From fb06f7da783406ab6fbcffc3726efdc120deb12d Mon Sep 17 00:00:00 2001 From: tbeaumont79 Date: Wed, 10 Jun 2026 15:32:20 +0200 Subject: [PATCH] =?UTF-8?q?feat(ui):=20exploiter=20la=20largeur=20d'=C3=A9?= =?UTF-8?q?cran=20sur=20les=20pages=20app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le shell contraignait le contenu à max-w-4xl (et /profil à max-w-3xl), laissant beaucoup de vide latéral sur grand écran. On élargit et on passe en multi-colonnes là où ça a du sens. - Shell (layout) : header/main/footer en max-w-6xl. - /profil : 2 colonnes sur lg — édition à gauche, rail sticky à droite (récap "Ton profil en bref" + repère honnêteté + lien vers l'exemple de CV). Retombe en une colonne sur mobile, rail en dessous. - /cv/demo : feuille A4 à gauche + panneau d'actions sticky à droite (titre, badge démo, bouton export). CvTemplate intouché (parité PDF). - /ui : catalogue en masonry 2 colonnes. Vérifié visuellement (desktop + mobile, profil peuplé) ; lint, typecheck, 50 tests, prettier OK. Co-Authored-By: Claude Fable 5 --- apps/app/layouts/default.vue | 6 +- apps/app/pages/cv/demo.vue | 47 ++- apps/app/pages/profil.vue | 712 +++++++++++++++++++---------------- apps/app/pages/ui.vue | 385 ++++++++++--------- 4 files changed, 615 insertions(+), 535 deletions(-) diff --git a/apps/app/layouts/default.vue b/apps/app/layouts/default.vue index a87d312..4da8f7a 100644 --- a/apps/app/layouts/default.vue +++ b/apps/app/layouts/default.vue @@ -78,7 +78,7 @@ const year = new Date().getFullYear() diff --git a/apps/app/pages/profil.vue b/apps/app/pages/profil.vue index 4c083ac..a95f5a5 100644 --- a/apps/app/pages/profil.vue +++ b/apps/app/pages/profil.vue @@ -9,6 +9,8 @@ import { Wrench, ClipboardPaste, UserRound, + ShieldCheck, + ArrowRight, } from '@lucide/vue' definePageMeta({ middleware: 'auth' }) @@ -101,7 +103,10 @@ async function addExperience() { startDate: expForm.startDate ? new Date(expForm.startDate).toISOString() : null, endDate: expForm.endDate ? new Date(expForm.endDate).toISOString() : null, description: expForm.description || null, - skillsUsed: expForm.skillsUsed.split(',').map((s) => s.trim()).filter(Boolean), + skillsUsed: expForm.skillsUsed + .split(',') + .map((s) => s.trim()) + .filter(Boolean), }, }) resetExpForm() @@ -276,29 +281,14 @@ async function applyImport() {