You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

192 lines
9.8 KiB

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Projets - Jules Merienne</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="styles.css">
<script src="navigation.js"></script>
<style>
body {
font-family: 'Inter', sans-serif;
}
</style>
</head>
<body class="bg-white">
<nav id="navbar"></nav>
<main>
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
<div class="text-center mb-16 animate-on-scroll" data-animation="fade-up">
<h1 class="text-4xl font-bold text-gray-900 mb-4">
Mes Projets
</h1>
<p class="text-xl text-gray-600 max-w-2xl mx-auto">
Découvrez une sélection de mes réalisations, alliant créativité et expertise technique.
</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
<div class="bg-white rounded-xl shadow-lg overflow-hidden hover:shadow-xl transition-all duration-300 hover:scale-105 animate-on-scroll" data-animation="fade-up" data-delay="100">
<div class="h-48 bg-gradient-to-br from-blue-500 to-indigo-600 relative">
<img src="images/atelier_merienne.png" alt="Atelier Merienne" class="w-full h-full object-cover">
</div>
<div class="p-6">
<h3 class="text-xl font-semibold text-gray-900 mb-2">Atelier Merienne</h3>
<p class="text-gray-600 mb-4">
Site e-commerce pour un atelier de maroquinerie, proposant des produits en cuir, des réparations et des créations sur mesure.
</p>
<div class="flex flex-wrap gap-2 mb-4">
<span class="px-3 py-1 bg-blue-100 text-blue-800 text-sm rounded-full">AdonisJS</span>
<span class="px-3 py-1 bg-purple-100 text-purple-800 text-sm rounded-full">TypeScript</span>
<span class="px-3 py-1 bg-green-100 text-green-800 text-sm rounded-full">React</span>
</div>
<div class="flex gap-3">
<a href="projets/ateliermerienne.html" class="text-blue-600 hover:text-blue-800 font-medium transition-colors">Voir le projet</a>
<a href="https://github.com/exosky12/ateliermerienne" target="_blank" class="text-gray-600 hover:text-gray-800 font-medium transition-colors">Code source</a>
</div>
</div>
</div>
<div class="bg-white rounded-xl shadow-lg overflow-hidden hover:shadow-xl transition-all duration-300 hover:scale-105 animate-on-scroll" data-animation="fade-up" data-delay="200">
<div class="h-48 bg-gradient-to-br from-blue-500 to-indigo-600 relative">
<img src="images/duckandcover.png" alt="Duck and cover" class="w-full h-full object-cover">
</div>
<div class="p-6">
<h3 class="text-xl font-semibold text-gray-900 mb-2">DuckAndCover - Jeu de Société Numérique</h3>
<p class="text-gray-600 mb-4">
Réalisation technique de l'année : transformation d'un jeu de plateau en jeu numérique multijoueur avec gestion de projet complète.
</p>
<div class="flex flex-wrap gap-2 mb-4">
<span class="px-3 py-1 bg-purple-100 text-purple-800 text-sm rounded-full">C# .NET MAUI</span>
<span class="px-3 py-1 bg-blue-100 text-blue-800 text-sm rounded-full">XAML</span>
<span class="px-3 py-1 bg-green-100 text-green-800 text-sm rounded-full">Gestion de projet</span>
</div>
<div class="flex gap-3">
<a href="projets/duckandcover.html" class="text-blue-600 hover:text-blue-800 font-medium transition-colors">Voir le projet</a>
<a target="_blank" href="https://github.com/exosky12/DuckAndCover" class="text-gray-600 hover:text-gray-800 font-medium transition-colors">Code source</a>
</div>
</div>
</div>
<div class="bg-white rounded-xl shadow-lg overflow-hidden hover:shadow-xl transition-all duration-300 hover:scale-105 animate-on-scroll" data-animation="fade-up" data-delay="300">
<div class="h-48 bg-gradient-to-br from-green-500 to-emerald-600 relative">
<img src="images/skillupnow.png" alt="SkillUpNow" class="w-full h-full object-cover">
</div>
<div class="p-6">
<h3 class="text-xl font-semibold text-gray-900 mb-2">SkillUpNow - Marketplace de Coaching Gaming</h3>
<p class="text-gray-600 mb-4">
Design d'interface pour une marketplace de coaching gaming, connectant joueurs et coachs professionnels.
</p>
<div class="flex flex-wrap gap-2 mb-4">
<span class="px-3 py-1 bg-green-100 text-green-800 text-sm rounded-full">Figma</span>
<span class="px-3 py-1 bg-emerald-100 text-emerald-800 text-sm rounded-full">UI/UX Design</span>
<span class="px-3 py-1 bg-teal-100 text-teal-800 text-sm rounded-full">Prototypage</span>
</div>
<div class="flex gap-3">
<a href="projets/skillupnow.html" class="text-blue-600 hover:text-blue-800 font-medium transition-colors">Voir le projet</a>
<a href="https://skillupnow.xyz/" target="_blank" class="text-gray-600 hover:text-gray-800 font-medium transition-colors">Visiter le site</a>
</div>
</div>
</div>
</div>
<div class="text-center mt-40 animate-on-scroll" data-animation="fade-up">
<h2 class="text-2xl font-bold text-gray-900 mb-4">
Vous avez un projet en tête ?
</h2>
<p class="text-gray-600 mb-8">
Discutons ensemble de votre vision et donnons vie à vos idées.
</p>
<button onclick="window.location.href='contact.html'" class="btn-premium magnetic">
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path>
</svg>
Contactez-moi
</button>
</div>
</div>
</main>
<style>
.btn-premium {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 14px 32px;
font-size: 16px;
font-weight: 600;
color: white;
background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
border-radius: 12px;
border: none;
transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
overflow: hidden;
cursor: pointer;
}
.btn-premium:hover {
transform: translateY(-3px) scale(1.02);
box-shadow: 0 8px 25px rgba(59, 130, 246, 0.4);
background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%);
}
.btn-premium::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
transition: left 0.6s ease;
}
.btn-premium:hover::before {
left: 100%;
}
.btn-premium:active {
transform: translateY(-1px) scale(0.98);
transition: all 0.1s ease;
}
</style>
<style>
.animate-on-scroll {
opacity: 0;
transform: translateY(30px);
transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.animate-fade-up {
opacity: 1;
transform: translateY(0);
}
.magnetic {
transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
</style>
<script src="animations.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
initNavigation('projects');
initScrollAnimations();
initMagneticEffect();
});
</script>
<a id="cv-download-btn" href="images/cv.pdf" class="cv-download-btn" download title="Télécharger mon CV">
Télécharger CV
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24" style="margin-left:4px;width:18px;height:18px;"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" /></svg>
</a>
</body>
</html>