feat(parcours): intégration des sections équipe d'accompagnement, télétravail et compétences
- Création du composant EquipeAccompagnement avec les 5 intervenants et leurs badges respectifs - Intégration de la section TeletravailCompetence avec visuel et liste des compétences clés - Implémentation du composant CeQueVousDeveloppez (grille responsive de 16 compétences sur 8 colonnes) - Correction de l'alignement et centrage des badges icônes via positionnement absolu - Intégration des assets graphiques finaux (coach-job-icon.png, icone-user.png)
89
assets/components/parcours/CeQueVousDeveloppez.jsx
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
// Icône de groupe déjà utilisée dans les acteurs
|
||||||
|
import iconeGroup from '../../img/x1.png';
|
||||||
|
|
||||||
|
// SVG de la mallette avec le contour vert identique à la maquette
|
||||||
|
const BriefcaseIcon = () => (
|
||||||
|
<svg
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="#8c8f3e"
|
||||||
|
strokeWidth="1.8"
|
||||||
|
strokeLinecap="round"
|
||||||
|
strokeLinejoin="round"
|
||||||
|
className="w-7 h-7 sm:w-8 sm:h-8"
|
||||||
|
>
|
||||||
|
<rect width="20" height="14" x="2" y="7" rx="2" />
|
||||||
|
<path d="M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2" />
|
||||||
|
<line x1="2" x2="22" y1="12" y2="12" />
|
||||||
|
<circle cx="12" cy="12" r="1.5" fill="#8c8f3e" />
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
|
||||||
|
const SKILLS = [
|
||||||
|
// Ligne 1
|
||||||
|
{ title: 'Expérience professionnelle', isGroup: false },
|
||||||
|
{ title: 'Employabilité', isGroup: true },
|
||||||
|
{ title: 'Gestion de projet', isGroup: false },
|
||||||
|
{ title: 'Communication', isGroup: false },
|
||||||
|
{ title: 'Intelligence émotionnelle', isGroup: false },
|
||||||
|
{ title: 'Leadership', isGroup: false },
|
||||||
|
{ title: 'Développement durable', isGroup: false },
|
||||||
|
{ title: 'Gestion durable', isGroup: false },
|
||||||
|
// Ligne 2
|
||||||
|
{ title: 'Recherche appliquée', isGroup: false },
|
||||||
|
{ title: 'Pensée systémique', isGroup: false },
|
||||||
|
{ title: 'Collaboration', isGroup: false },
|
||||||
|
{ title: 'Résolution de problèmes', isGroup: false },
|
||||||
|
{ title: 'Développement commercial', isGroup: false },
|
||||||
|
{ title: 'Autonomie', isGroup: false },
|
||||||
|
{ title: 'Confiance', isGroup: false },
|
||||||
|
{ title: 'Réseau professionnel', isGroup: false },
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function CeQueVousDeveloppez() {
|
||||||
|
return (
|
||||||
|
<section className="w-full bg-[#ffffff] text-[#1e293b] py-12 sm:py-16 lg:py-20 px-4 sm:px-8 md:px-12 font-sans">
|
||||||
|
<div className="max-w-[1240px] mx-auto">
|
||||||
|
|
||||||
|
{/* En-tête */}
|
||||||
|
<div className="text-left mb-12 sm:mb-16">
|
||||||
|
<div className="w-12 h-1 bg-[#475734] rounded-full mb-5" />
|
||||||
|
<h2 className="text-xl sm:text-2xl lg:text-[28px] font-extrabold uppercase tracking-tight text-[#111827]">
|
||||||
|
CE QUE VOUS DÉVELOPPEZ
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Grille des compétences : 2 sur mobile, 4 sur tablette, 8 sur desktop */}
|
||||||
|
<div className="grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-8 gap-y-10 sm:gap-y-12 gap-x-4 sm:gap-x-6 justify-items-center">
|
||||||
|
{SKILLS.map((skill, index) => (
|
||||||
|
<div
|
||||||
|
key={index}
|
||||||
|
className="flex flex-col items-center text-center w-full max-w-[125px]"
|
||||||
|
>
|
||||||
|
{/* Cercle avec bordure verte olive fine */}
|
||||||
|
<div className="w-16 h-16 sm:w-[72px] sm:h-[72px] rounded-full border-2 border-[#8c8f3e] bg-white flex items-center justify-center p-2 mb-3 shadow-xs">
|
||||||
|
{skill.isGroup ? (
|
||||||
|
<img
|
||||||
|
src={iconeGroup}
|
||||||
|
alt={skill.title}
|
||||||
|
className="w-7 h-7 sm:w-8 sm:h-8 object-contain"
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<BriefcaseIcon />
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Libellé de la compétence */}
|
||||||
|
<p className="text-[11px] sm:text-xs font-bold text-[#111827] leading-tight select-none">
|
||||||
|
{skill.title}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
120
assets/components/parcours/EquipeAccompagnement.jsx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
// Photos exportées
|
||||||
|
import referentImg from '../../img/referent.png';
|
||||||
|
import cordonateurImg from '../../img/cordonateur.png';
|
||||||
|
import rhImg from '../../img/rh.png';
|
||||||
|
import coachImg from '../../img/coach-img.png';
|
||||||
|
import coachePersonnelImg from '../../img/coache-personnel.png';
|
||||||
|
|
||||||
|
// Icônes exportées
|
||||||
|
import iconeReferent from '../../img/icone-referent.png';
|
||||||
|
import iconeCordonateur from '../../img/icone-cordonateur.png';
|
||||||
|
import iconeRh from '../../img/icone-rh.png';
|
||||||
|
import iconeJobCoach from '../../img/coach-job-icon.png';
|
||||||
|
import iconeCoachPersonnel from '../../img/icone-coach-personnel.png';
|
||||||
|
|
||||||
|
const ACTEURS = [
|
||||||
|
{
|
||||||
|
role: 'Référent',
|
||||||
|
description: 'Développement des compétences.',
|
||||||
|
photo: referentImg,
|
||||||
|
icon: iconeReferent,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'Coordinateur Projet',
|
||||||
|
description: 'Suivi opérationnel et intégration dans les équipes.',
|
||||||
|
photo: cordonateurImg,
|
||||||
|
icon: iconeCordonateur,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'RH Projet',
|
||||||
|
description: 'Accompagnement administratif et suivi du parcours.',
|
||||||
|
photo: rhImg,
|
||||||
|
icon: iconeRh,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'Job Coach',
|
||||||
|
description:
|
||||||
|
'Construction du projet professionnel et développement de l’employabilité.',
|
||||||
|
photo: coachImg,
|
||||||
|
icon: iconeJobCoach,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: 'Coach Personnel',
|
||||||
|
description:
|
||||||
|
'Accompagnement des dimensions personnelles influençant la trajectoire.',
|
||||||
|
photo: coachePersonnelImg,
|
||||||
|
icon: iconeCoachPersonnel,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function EquipeAccompagnement() {
|
||||||
|
return (
|
||||||
|
<section className="w-full bg-[#ffffff] text-[#1e293b] py-12 sm:py-16 lg:py-20 px-4 sm:px-8 md:px-12 font-sans">
|
||||||
|
<div className="max-w-[1240px] mx-auto">
|
||||||
|
|
||||||
|
{/* ========================================================= */}
|
||||||
|
{/* En-tête de la section */}
|
||||||
|
{/* ========================================================= */}
|
||||||
|
<div className="text-left mb-12 sm:mb-16">
|
||||||
|
{/* Trait vert horizontal */}
|
||||||
|
<div className="w-12 h-1 bg-[#475734] rounded-full mb-5" />
|
||||||
|
|
||||||
|
{/* Sur-titre vert olive */}
|
||||||
|
<p className="text-[11px] sm:text-xs md:text-sm font-extrabold uppercase tracking-wider text-[#8c8f3e] mb-2 sm:mb-3">
|
||||||
|
UNE ÉQUIPE AUTOUR DE CHAQUE PARTICIPANT
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{/* Titre principal */}
|
||||||
|
<h2 className="text-xl sm:text-2xl lg:text-[28px] font-extrabold text-[#111827] leading-tight">
|
||||||
|
Selon les besoins,
|
||||||
|
<br />
|
||||||
|
plusieurs acteurs peuvent intervenir :
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* ========================================================= */}
|
||||||
|
{/* Grille des 5 acteurs */}
|
||||||
|
{/* ========================================================= */}
|
||||||
|
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-8 sm:gap-6 lg:gap-5 justify-items-center">
|
||||||
|
{ACTEURS.map((item, index) => (
|
||||||
|
<div
|
||||||
|
key={index}
|
||||||
|
className="flex flex-col items-center text-center w-full max-w-[210px]"
|
||||||
|
>
|
||||||
|
{/* Conteneur photo avec découpe Figma */}
|
||||||
|
<div className="relative w-[155px] sm:w-[165px] h-[155px] sm:h-[165px] flex items-center justify-center">
|
||||||
|
<img
|
||||||
|
src={item.photo}
|
||||||
|
alt={item.role}
|
||||||
|
className="w-full h-full object-contain select-none pointer-events-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Pastille icône insérée dans l'échancrure basse */}
|
||||||
|
<div className="relative -mt-6 z-10 w-11 h-11 rounded-full bg-[#8c8f3e] flex items-center justify-center shadow-xs ring-4 ring-[#fbfbf9] overflow-hidden">
|
||||||
|
<img
|
||||||
|
src={item.icon}
|
||||||
|
alt={item.role}
|
||||||
|
className="w-full h-full object-contain p-2"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Rôle / Titre */}
|
||||||
|
<h3 className="text-sm sm:text-[15px] text-[#98984B] mt-3.5 mb-1.5 leading-tight">
|
||||||
|
{item.role}
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
{/* Description */}
|
||||||
|
<p className="text-[11px] sm:text-xs font-extrabold text-[#050505] leading-relaxed">
|
||||||
|
{item.description}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -6,6 +6,9 @@ import ParcoursIntegration from './ParcoursIntegration';
|
|||||||
import LearningByDoing from './LearningByDoing';
|
import LearningByDoing from './LearningByDoing';
|
||||||
import ModeleDeveloppementCompetences from './ModeleDeveloppementCompetences';
|
import ModeleDeveloppementCompetences from './ModeleDeveloppementCompetences';
|
||||||
import SystemeReferents from './SystemeReferents';
|
import SystemeReferents from './SystemeReferents';
|
||||||
|
import EquipeAccompagnement from './EquipeAccompagnement';
|
||||||
|
import TeletravailCompetence from './TeletravailCompetence';
|
||||||
|
import CeQueVousDeveloppez from './CeQueVousDeveloppez';
|
||||||
|
|
||||||
export default function Parcours() {
|
export default function Parcours() {
|
||||||
return (
|
return (
|
||||||
@ -17,6 +20,12 @@ export default function Parcours() {
|
|||||||
<LearningByDoing />
|
<LearningByDoing />
|
||||||
<ModeleDeveloppementCompetences />
|
<ModeleDeveloppementCompetences />
|
||||||
<SystemeReferents />
|
<SystemeReferents />
|
||||||
|
<EquipeAccompagnement />
|
||||||
|
<TeletravailCompetence />
|
||||||
|
<CeQueVousDeveloppez />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -103,7 +103,7 @@ const STEPS = [
|
|||||||
|
|
||||||
export default function ParcoursIntegration() {
|
export default function ParcoursIntegration() {
|
||||||
return (
|
return (
|
||||||
<section className="w-full bg-[#fbfbf9] text-[#1e293b] py-10 md:py-20 px-4 sm:px-6 md:px-12 font-sans">
|
<section className="w-full bg-[#ffffff] text-[#1e293b] py-10 md:py-20 px-4 sm:px-6 md:px-12 font-sans">
|
||||||
<div className="max-w-[1240px] mx-auto">
|
<div className="max-w-[1240px] mx-auto">
|
||||||
|
|
||||||
{/* Trait de repère vert horizontal */}
|
{/* Trait de repère vert horizontal */}
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import teamImg from '../../img/team-discussion.png'; // Vérifie le chemin de to
|
|||||||
|
|
||||||
export default function ParcoursPresentation() {
|
export default function ParcoursPresentation() {
|
||||||
return (
|
return (
|
||||||
<section className="w-full bg-[#fbfbf9] text-[#1e293b] py-14 lg:py-20 px-6 md:px-12 lg:px-20">
|
<section className="w-full bg-[#ffffff] text-[#1e293b] py-14 lg:py-20 px-6 md:px-12 lg:px-20">
|
||||||
<div className="max-w-[1320px] mx-auto space-y-20">
|
<div className="max-w-[1320px] mx-auto space-y-20">
|
||||||
|
|
||||||
{/* ========================================================
|
{/* ========================================================
|
||||||
|
|||||||
@ -85,7 +85,7 @@ const COLUMNS_DATA = [
|
|||||||
|
|
||||||
export default function QuiPeutRejoindre() {
|
export default function QuiPeutRejoindre() {
|
||||||
return (
|
return (
|
||||||
<section className="w-full bg-[#fbfbf9] text-[#1e293b] py-14 lg:py-20 px-6 md:px-12 lg:px-20 font-sans">
|
<section className="w-full bg-[#ffffff] text-[#1e293b] py-14 lg:py-20 px-6 md:px-12 lg:px-20 font-sans">
|
||||||
<div className="max-w-[1320px] mx-auto">
|
<div className="max-w-[1320px] mx-auto">
|
||||||
{/* Trait de repère vert olive */}
|
{/* Trait de repère vert olive */}
|
||||||
<div className="w-12 h-1 bg-[#475734] rounded-full mb-6" />
|
<div className="w-12 h-1 bg-[#475734] rounded-full mb-6" />
|
||||||
|
|||||||
72
assets/components/parcours/TeletravailCompetence.jsx
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
// Import de l'image de la section télétravail exportée de Figma
|
||||||
|
import teletravailImg from '../../img/teletravail.png';
|
||||||
|
|
||||||
|
export default function TeletravailCompetence() {
|
||||||
|
return (
|
||||||
|
<section className="w-full bg-[#fbfbf9] text-[#1e293b] py-12 sm:py-16 lg:py-20 px-4 sm:px-8 md:px-12 font-sans">
|
||||||
|
<div className="max-w-[1240px] mx-auto">
|
||||||
|
<div className="grid grid-cols-1 lg:grid-cols-12 gap-8 lg:gap-14 items-center">
|
||||||
|
|
||||||
|
{/* ========================================================= */}
|
||||||
|
{/* 1. Colonne GAUCHE : Textes et compétences (5 cols) */}
|
||||||
|
{/* ========================================================= */}
|
||||||
|
<div className="lg:col-span-5 text-left">
|
||||||
|
{/* Trait vert horizontal */}
|
||||||
|
<div className="w-12 h-1 bg-[#4B6A4A] rounded-full mb-6" />
|
||||||
|
|
||||||
|
{/* Titre principal en gras/majuscules */}
|
||||||
|
<h2 className="text-2xl sm:text-3xl lg:text-[32px] font-extrabold uppercase text-[#111827] leading-tight mb-5">
|
||||||
|
LE TÉLÉTRAVAIL COMME COMPÉTENCE
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
{/* Paragraphe d'introduction */}
|
||||||
|
<p className="text-xs sm:text-[13px] text-[#4b5563] leading-relaxed mb-1">
|
||||||
|
Depuis plus de vingt ans, gaea21 développe des méthodes de collaboration à distance.
|
||||||
|
</p>
|
||||||
|
<p className="text-xs sm:text-[13px] text-[#4b5563] leading-relaxed mb-2.5">
|
||||||
|
Les participants apprennent notamment à :
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{/* Liste à puces */}
|
||||||
|
<ul className="space-y-1 text-xs sm:text-[13px] text-[#4b5563] leading-tight max-w-md mb-6">
|
||||||
|
{[
|
||||||
|
'organiser leur travail ;',
|
||||||
|
'gérer leur temps ;',
|
||||||
|
'communiquer efficacement ;',
|
||||||
|
'collaborer à distance ;',
|
||||||
|
'développer leur autonomie ;',
|
||||||
|
'maintenir leur efficacité dans un environnement distribué.',
|
||||||
|
].map((point, idx) => (
|
||||||
|
<li key={idx} className="flex items-start gap-2">
|
||||||
|
<span className="text-[#111827] text-xs leading-none mt-1">•</span>
|
||||||
|
<span>{point}</span>
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
{/* Phrase de conclusion en gras */}
|
||||||
|
<p className="text-xs sm:text-[13px] font-bold text-[#111827] leading-relaxed">
|
||||||
|
Ces compétences sont aujourd’hui recherchées dans de nombreux secteurs.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* ========================================================= */}
|
||||||
|
{/* 2. Colonne DROITE : Visuel télétravail / visio (7 cols) */}
|
||||||
|
{/* ========================================================= */}
|
||||||
|
<div className="lg:col-span-7 flex justify-center lg:justify-end">
|
||||||
|
<div className="w-full max-w-[620px] rounded-2xl overflow-hidden shadow-xs">
|
||||||
|
<img
|
||||||
|
src={teletravailImg}
|
||||||
|
alt="Le télétravail comme compétence chez gaea21"
|
||||||
|
className="w-full h-auto object-cover block select-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
BIN
assets/img/coach-img.png
Normal file
|
After Width: | Height: | Size: 128 KiB |
BIN
assets/img/coach-job-icon.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/img/coache-personnel.png
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
assets/img/cordonateur.png
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
assets/img/icone-coach-personnel.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/img/icone-coach.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/img/icone-cordonateur.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/img/icone-referent.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/img/icone-rh.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/img/referent.png
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
assets/img/rh.png
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
assets/img/teletravail.png
Normal file
|
After Width: | Height: | Size: 707 KiB |
BIN
assets/img/x1.png
Normal file
|
After Width: | Height: | Size: 35 KiB |