🌸 Pink Portfolio Template 🌸
Un portfolio moderne, élégant et bilingue, prêt en quelques minutes
Développé avec React et Tailwind CSS, entièrement personnalisable depuis un seul objet de configuration.
Démarrage rapide · Personnalisation · Déploiement · Signaler un bug
📸 Aperçu
📖 Sommaire
- Fonctionnalités
- Démarrage rapide
- Personnalisation
- Personnalisation avancée
- Structure du projet
- Technologies
- Déploiement
- Contribution
- Licence
- Support
✨ Fonctionnalités
| Fonctionnalité | Détail | |
|---|---|---|
| 🌓 | Mode sombre / clair | Basculez d'un thème à l'autre en un clic |
| 🌍 | Bilingue FR / EN | Tout le contenu est traduit, y compris la navigation |
| 📱 | Responsive | Optimisé pour mobile, tablette et desktop |
| 🎨 | Design moderne | Effets de parallaxe et animations fluides |
| ⚡ | Navigation fluide | Défilement doux et transitions élégantes entre les sections |
| 🎭 | Micro-interactions | Survols, apparitions et effets visuels soignés |
| 🧩 | Configuration centralisée | Tout votre contenu dans un seul objet config, sans toucher au JSX |
🚀 Démarrage rapide
Prérequis
- Node.js v14 ou plus récent
- npm ou yarn
Installation
# 1. Cloner le dépôt
git clone https://github.com/Luxinenglish/pink_portfolio_template.git
# 2. Entrer dans le dossier
cd pink_portfolio_template
# 3. Installer les dépendances
npm install
# 4. Lancer le serveur de développement
npm start
Le portfolio s'ouvre sur http://localhost:3000 et se recharge automatiquement à chaque modification.
📝 Personnalisation
astuceTout se passe au même endroit. L'objet
config, en haut desrc/components/Portfolio.jsx, contient l'intégralité du contenu. Modifiez ses valeurs et votre portfolio est prêt : aucune autre ligne de code à toucher.
Chaque texte affiché existe en deux versions, fr et en. Le visiteur change de langue depuis le site, le contenu suit.
1. 👤 Informations personnelles
const config = {
name: "Votre Nom",
title: {
fr: "Votre Titre Professionnel",
en: "Your Professional Title"
},
description: {
fr: "Une description accrocheuse...",
en: "A catchy description..."
},
photoUrl: "https://your-image-url.com/photo.jpg"
};
2. 💬 À propos · 4 paragraphes
about: {
fr: [
"Premier paragraphe...",
"Deuxième paragraphe...",
"Troisième paragraphe...",
"Quatrième paragraphe..."
],
en: [ /* ... */ ]
}
3. 💼 Projets · autant que vous voulez
projects: [
{
title: { fr: "Projet 1", en: "Project 1" },
description: { fr: "...", en: "..." },
skills: ["Compétence A", "Compétence B"],
imageUrl: "https://..."
},
// Ajoutez d'autres projets ici
]
4. 🎨 Portfolio créatif · créations, maquettes, designs
models: [
{
title: { fr: "Création 1", en: "Creation 1" },
description: { fr: "...", en: "..." },
details: {
fr: ["Matériaux : ...", "Échelle : ..."],
en: ["Materials: ...", "Scale: ..."]
},
imageUrl: "https://..."
}
]
5. 🎓 Formation
education: [
{
school: "Nom de l'école",
degree: { fr: "Diplôme", en: "Degree" },
period: { fr: "2024 - Présent", en: "2024 - Present" },
level: { fr: "Niveau", en: "Level" }
}
]
6. 🧑💻 Expériences · stages et postes
experiences: [
{
title: { fr: "Titre du stage", en: "Internship title" },
period: { fr: "Durée", en: "Duration" },
company: "Nom de l'entreprise",
description: { fr: "...", en: "..." }
}
]
7. 📬 Contact · seuls les liens renseignés s'affichent
contact: {
email: "votre.email@exemple.com",
linkedin: "https://linkedin.com/in/...",
github: "https://github.com/...", // optionnel
twitter: "https://twitter.com/...", // optionnel
instagram: "https://instagram.com/..." // optionnel
}
8. 🦶 Footer
footerCredit: {
name: "Votre Nom",
url: "https://votre-site.com" // optionnel
}
🎨 Personnalisation avancée
🖌️ Changer les couleurs
Le template utilise une palette rose / rouge via les classes Tailwind. Pour l'adapter, faites un rechercher-remplacer dans le composant :
| Rôle | Classe actuelle | Exemples de remplacement |
|---|---|---|
| Couleur principale | pink- | blue-, purple-, emerald- |
| Couleur secondaire | rose- | indigo-, fuchsia-, teal- |
🧱 Ajouter ou retirer des sections
La navigation est générée à partir du tableau sections :
const sections = [
{ id: 'accueil', label: t.nav.home },
{ id: 'apropos', label: t.nav.about },
// Ajoutez vos sections ici
];
notePensez à ajouter la traduction du libellé dans
t.navpour les deux langues, et un élément portant le mêmeiddans le JSX.
🌊 Régler le parallaxe
Chaque effet de parallaxe dépend d'un multiplicateur appliqué au défilement :
style={{ transform: `translateY(${scrollY * 0.05}px)` }}
// ^^^^ plus grand = plus rapide
📦 Structure du projet
pink_portfolio_template/
├── public/
│ └── images/ # Vos images
├── readme_ressources/ # Captures utilisées dans ce README
├── src/
│ ├── components/
│ │ └── Portfolio.jsx # Composant principal + objet config
│ ├── App.js
│ └── index.js
├── package.json
└── README.md
🛠️ Technologies
| Outil | Rôle |
|---|---|
| React | Interface et logique (hooks useState, useEffect) |
| Tailwind CSS | Styles utility-first, thèmes clair et sombre |
| Lucide React | Icônes vectorielles légères |
📱 Responsive
| Appareil | Largeur |
|---|---|
| 📱 Mobile | < 768 px |
| 📟 Tablette | 768 px à 1024 px |
| 💻 Desktop | > 1024 px |
🌐 Déploiement
Commencez par générer la version de production :
npm run build
▲ Vercel
|
◆ NetlifyGlissez-déposez le dossier |
🐙 GitHub PagesPubliez le contenu du dossier |
🤝 Contribution
Les contributions sont les bienvenues !
- Forkez le projet
- Créez une branche :
git checkout -b feature/MaSuperIdee - Commitez :
git commit -m "Ajout de MaSuperIdee" - Poussez :
git push origin feature/MaSuperIdee - Ouvrez une Pull Request 🎉
📄 Licence
Distribué sous licence MIT : vous êtes libre de l'utiliser, de le modifier et de le redistribuer.
📞 Support
Une question, un bug, une idée ?
- 📧 Email : j.brochard@aplosn.fr
- 🐛 Issues : signaler un problème
- 💬 Discussions : échanger avec la communauté
⭐ Si ce template vous a été utile, laissez-lui une étoile !
Créé pour offrir une solution simple et élégante de portfolio professionnel en quelques minutes.
Fait avec 💖 et React