fix icon, added cv

This commit is contained in:
kinou-p 2025-10-04 01:05:08 +02:00
parent 6bb22814eb
commit 6e7f3224f5
11 changed files with 37 additions and 36 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 -31.5 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M192.440223,144.644612 L224.220111,144.644612 L224.220111,68.3393384 L188.415329,32.5345562 L165.943007,55.0068785 L192.440223,81.5040943 L192.440223,144.644612 L192.440223,144.644612 Z M224.303963,160.576482 L178.017688,160.576482 L113.451687,160.576482 L86.954471,134.079266 L98.1906322,122.843105 L120.075991,144.728464 L165.104487,144.728464 L120.746806,100.286931 L132.06682,88.9669178 L176.4245,133.324599 L176.4245,88.2961022 L154.622994,66.4945955 L165.775303,55.3422863 L110.684573,0 L56.3485097,0 L56.3485097,0 L0,0 L31.6960367,31.6960367 L31.6960367,31.7798886 L31.8637406,31.7798886 L97.4359646,31.7798886 L120.662954,55.0068785 L86.7029152,88.9669178 L63.4759253,65.7399279 L63.4759253,47.7117589 L31.6960367,47.7117589 L31.6960367,78.9046839 L86.7029152,133.911562 L64.3144448,156.300033 L100.119227,192.104815 L154.45529,192.104815 L256,192.104815 L256,192.104815 L224.303963,160.576482 L224.303963,160.576482 Z" fill="#231F20">
</path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -11,7 +11,6 @@ export const Footer = () => {
const { t } = useLanguage();
const { showBanner } = useCookieBanner();
const [showLegalNotice, setShowLegalNotice] = useState(false);
const [showCVPopup, setShowCVPopup] = useState(false);
const reopenCookiePreferences = () => {
// Simplement rouvrir la bannière sans recharger
@ -20,11 +19,20 @@ export const Footer = () => {
const currentYear = new Date().getFullYear();
const downloadCV = () => {
const link = document.createElement('a');
link.href = '/cv.pdf';
link.download = 'Alexandre_Pommier_CV.pdf';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
const footerLinks = [
{
icon: <Download className="w-4 h-4" />,
label: t("footer.downloadCV"),
onClick: () => setShowCVPopup(true)
onClick: downloadCV
},
{
icon: <FileText className="w-4 h-4" />,
@ -185,21 +193,6 @@ export const Footer = () => {
isOpen={showLegalNotice}
onClose={() => setShowLegalNotice(false)}
/>
{/* Popup CV en travaux */}
{showCVPopup && (
<div className="fixed inset-0 bg-black/50 flex items-center justify-center z-50" onClick={() => setShowCVPopup(false)}>
<div className="bg-background p-6 rounded-lg shadow-lg max-w-sm mx-4" onClick={(e) => e.stopPropagation()}>
<h3 className="text-lg font-semibold mb-2">{t("footer.cvWorkInProgressTitle")}</h3>
<p className="text-muted-foreground mb-4">
{t("footer.cvWorkInProgress")}
</p>
<Button onClick={() => setShowCVPopup(false)} className="w-full">
{t("footer.understood")}
</Button>
</div>
</div>
)}
</footer>
);
};

View File

@ -100,9 +100,10 @@ export const Header = () => {
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.1 * i }}
onClick={() => handleNavigation(item)}
className="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors"
className="relative text-sm font-medium text-muted-foreground hover:text-foreground transition-colors group"
>
{t(`nav.${item}`)}
<span className="absolute bottom-0 left-0 w-0 h-0.5 bg-primary group-hover:w-full transition-all duration-300"></span>
</motion.button>
))}
</nav>
@ -179,9 +180,10 @@ export const Header = () => {
exit={{ opacity: 0, x: -20 }}
transition={{ delay: 0.1 * i }}
onClick={() => handleNavigation(item)}
className="text-left text-base font-medium text-muted-foreground hover:text-foreground transition-colors py-2"
className="relative text-left text-base font-medium text-muted-foreground hover:text-foreground transition-colors py-2 group"
>
{t(`nav.${item}`)}
<span className="absolute bottom-1 left-0 w-0 h-0.5 bg-primary group-hover:w-full transition-all duration-300"></span>
</motion.button>
))}
</div>

View File

@ -71,7 +71,7 @@ export const ProjectCard = ({ title, description, icon, image, technologies, del
<img
src={tech.iconUrl}
alt={tech.name}
className="w-full h-full object-contain"
className={`w-full h-full object-contain ${tech.name === 'Traefik' || tech.name === 'WebSocket' || tech.name === 'MiniLibX' ? 'bg-white rounded' : ''}`}
/>
) : (
<span className="text-xs">?</span>

View File

@ -23,7 +23,11 @@ export const SkillBadge = ({ name, icon, iconUrl, color = "default", delay = 0 }
className="text-base py-2 px-4 font-medium hover:bg-primary hover:text-primary-foreground transition-colors"
>
{iconUrl ? (
<img src={iconUrl} alt={`${name} logo`} className="mr-2 w-5 h-5" />
<img
src={iconUrl}
alt={`${name} logo`}
className={`mr-2 w-5 h-5 ${name === 'Traefik' || name === 'WebSocket' || name === 'MiniLibX' ? 'bg-white rounded' : ''}`}
/>
) : icon ? (
<span className="mr-2">{icon}</span>
) : null}

View File

@ -62,12 +62,12 @@ export const projectsData: Record<string, ProjectData> = {
mainImage: "/images/projects/homemade_nas.webp",
images: ["/images/projects/homemade_nas.webp"],
technologies: [
{ name: "OpenMediaVault", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/debian/debian-original.svg" },
{ name: "OpenMediaVault", iconUrl: "/images/icons/favicon-omv.ico" },
{ name: "Docker", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/docker/docker-original.svg" },
{ name: "Traefik", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/kubernetes/kubernetes-plain.svg" },
{ name: "Traefik", iconUrl: "/images/icons/favicon-traefik.ico" },
{ name: "Linux", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/linux/linux-original.svg" },
{ name: "Home Assistant", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/python/python-original.svg" },
{ name: "Portainer", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/docker/docker-original.svg" },
{ name: "Home Assistant", iconUrl: "https://brands.home-assistant.io/homeassistant/icon.png" },
{ name: "Portainer", iconUrl: "https://avatars.githubusercontent.com/u/22225832" },
],
},
transcendence: {
@ -120,7 +120,7 @@ export const projectsData: Record<string, ProjectData> = {
{ name: "TypeScript", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/typescript/typescript-original.svg" },
{ name: "NestJS", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/nestjs/nestjs-original.svg" },
{ name: "PostgreSQL", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/postgresql/postgresql-original.svg" },
{ name: "WebSocket", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg" },
{ name: "WebSocket", iconUrl: "/images/icons/websocket-svgrepo-com.svg" },
{ name: "Docker", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/docker/docker-original.svg" },
],
},
@ -276,7 +276,7 @@ export const projectsData: Record<string, ProjectData> = {
images: ["/images/projects/cub3d.webp"],
technologies: [
{ name: "C", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/c/c-original.svg" },
{ name: "MiniLibX", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/c/c-original.svg" },
{ name: "MiniLibX", iconUrl: "/images/icons/42_icon.png" },
{ name: "Raycasting", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/cplusplus/cplusplus-original.svg" },
{ name: "Make", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/cmake/cmake-original.svg" },
],
@ -401,7 +401,7 @@ export const projectsData: Record<string, ProjectData> = {
{ name: "React", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/react/react-original.svg" },
{ name: "Node.js", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/nodejs/nodejs-original.svg" },
{ name: "MongoDB", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/mongodb/mongodb-original.svg" },
{ name: "OpenAI", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/python/python-original.svg" },
{ name: "OpenAI", iconUrl: "https://avatars.githubusercontent.com/u/14957082" },
{ name: "TypeScript", iconUrl: "https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/typescript/typescript-original.svg" },
],
demoUrl: "https://avopieces.fr",

View File

@ -8,7 +8,7 @@ export const translations = {
},
hero: {
title: "Alexandre Pommier",
subtitle: "Étudiant en informatique à l'école 42, je développe mes compétences techniques à travers des projets innovants et challengeants. Passionné par les technologies modernes, je m'intéresse particulièrement au développement web, aux systèmes et à l'infrastructure.",
subtitle: "Étudiant en informatique à l'école 42 et développeur freelance, je développe mes compétences techniques à travers des projets innovants et challengeants. Passionné par les technologies modernes, je m'intéresse particulièrement au développement web, aux systèmes et à l'infrastructure.",
cta1: "Voir mes projets",
cta2: "Me contacter",
},
@ -74,9 +74,6 @@ export const translations = {
legalNotice: "Mentions légales",
cookieManagement: "Gestion des cookies",
downloadCV: "Télécharger mon CV",
cvWorkInProgressTitle: "CV en travaux",
cvWorkInProgress: "Mon CV est actuellement en cours de préparation. Il sera bientôt disponible !",
understood: "Compris",
github: "GitHub",
email: "Email",
copyright: "Tous droits réservés.",
@ -113,7 +110,7 @@ export const translations = {
},
hero: {
title: "Alexandre Pommier",
subtitle: "Computer science student at 42 school, I develop my technical skills through innovative and challenging projects. Passionate about modern technologies, I am particularly interested in web development, systems and infrastructure.",
subtitle: "Computer science student at 42 school and freelance developer, I develop my technical skills through innovative and challenging projects. Passionate about modern technologies, I am particularly interested in web development, systems and infrastructure.",
cta1: "View my projects",
cta2: "Contact me",
},
@ -179,9 +176,6 @@ export const translations = {
legalNotice: "Legal Notice",
cookieManagement: "Cookie Management",
downloadCV: "Download my CV",
cvWorkInProgressTitle: "CV Work in Progress",
cvWorkInProgress: "My CV is currently being prepared. It will be available soon!",
understood: "Understood",
github: "GitHub",
email: "Email",
copyright: "All rights reserved.",