From 9e0149d49d1d66d9ee5536c8a0c225fed4479b06 Mon Sep 17 00:00:00 2001 From: kayjaydee Date: Wed, 8 Apr 2026 17:24:54 +0200 Subject: [PATCH] feat: remove formation/pricing page and all related content Formation was a SaaS pricing page unrelated to the portfolio. Removed: page, nav link, locale keys (nav.formation, seo.formation, pricing.*) in both FR and EN, legacy source files. --- app/components/layout/AppHeader.vue | 1 - app/pages/formation.vue | 21 -- i18n/locales/en.json | 79 +---- i18n/locales/fr.json | 79 +---- src/views/FormationPage.vue | 170 ----------- src/views/styles/FormationPage.css | 435 ---------------------------- 6 files changed, 2 insertions(+), 783 deletions(-) delete mode 100644 app/pages/formation.vue delete mode 100644 src/views/FormationPage.vue delete mode 100644 src/views/styles/FormationPage.css diff --git a/app/components/layout/AppHeader.vue b/app/components/layout/AppHeader.vue index 0ac5d86..d6b721f 100644 --- a/app/components/layout/AppHeader.vue +++ b/app/components/layout/AppHeader.vue @@ -11,7 +11,6 @@ const navLinks = computed(() => [ { key: 'about', path: '/about' }, { key: 'contact', path: '/contact' }, { key: 'fiverr', path: '/fiverr' }, - { key: 'formation', path: '/formation' }, ]) function toggleLocale() { diff --git a/app/pages/formation.vue b/app/pages/formation.vue deleted file mode 100644 index 83a1c5d..0000000 --- a/app/pages/formation.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/i18n/locales/en.json b/i18n/locales/en.json index 005b6e6..02ec210 100644 --- a/i18n/locales/en.json +++ b/i18n/locales/en.json @@ -4,8 +4,7 @@ "projects": "Projects", "about": "About", "contact": "Contact", - "fiverr": "Fiverr", - "formation": "Training" + "fiverr": "Fiverr" }, "footer": { "copyright": "\u00a9 2026 Killian Dalcin", @@ -52,10 +51,6 @@ "fiverr": { "title": "Fiverr Services \u2014 Killian Dalcin", "description": "Development services available on Fiverr: Discord bots, Minecraft plugins, web applications." - }, - "formation": { - "title": "Training \u2014 Killian Dalcin", - "description": "Training and courses offered by Killian Dalcin in web development." } }, "home": { @@ -433,77 +428,5 @@ ] } } - }, - "pricing": { - "title": "Choose your learning plan", - "subtitle": "Access comprehensive web development training with our flexible plans tailored for all levels", - "monthly": "Monthly", - "annual": "Annual", - "mostPopular": "Most Popular", - "startTrial": "Start Free Trial", - "trialInfo": "14-day free trial, then billing", - "plans": { - "starter": { - "name": "Starter", - "description": "Perfect to begin your web development journey" - }, - "pro": { - "name": "Pro", - "description": "Ideal for developers who want to accelerate their learning" - }, - "expert": { - "name": "Expert", - "description": "For those aiming for excellence and a professional career" - } - }, - "features": { - "basicCourses": "Access to basic courses (HTML, CSS, JavaScript)", - "communityAccess": "Access to learning community", - "mobileApp": "Mobile app to learn anywhere", - "basicSupport": "Email support", - "certificates": "Completion certificates", - "allCourses": "Access to all courses and technologies", - "liveWorkshops": "Live workshops every week", - "mentorship": "Monthly mentorship sessions", - "prioritySupport": "24/7 priority support", - "jobBoard": "Access to exclusive job board", - "portfolioReview": "Portfolio review by experts", - "everythingPro": "Everything in Pro plan included", - "oneOnOneCoaching": "Weekly one-on-one coaching", - "customProjects": "Custom projects based on your goals", - "internshipPlacement": "Internship placement assistance", - "careerGuidance": "Personalized career guidance", - "exclusiveContent": "Exclusive and early-access content", - "networkingEvents": "Networking events with professionals" - }, - "faq": { - "title": "Frequently Asked Questions", - "items": { - "trial": { - "question": "How does the free trial work?", - "answer": "Enjoy 14 days of full access to your chosen plan. No commitment, you can cancel anytime." - }, - "cancel": { - "question": "Can I cancel my subscription anytime?", - "answer": "Yes, you can cancel your subscription anytime from your dashboard." - }, - "refund": { - "question": "Do you offer a money-back guarantee?", - "answer": "We offer a 30-day money-back guarantee if you're not satisfied." - }, - "upgrade": { - "question": "Can I change plans during my subscription?", - "answer": "Absolutely! You can upgrade to a higher plan anytime. The difference will be prorated." - }, - "certificates": { - "question": "Are the certificates recognized?", - "answer": "Our certificates are recognized by many tech companies and can be added to your LinkedIn profile." - }, - "support": { - "question": "What type of support is available?", - "answer": "Depending on your plan, you have access to email support, live chat, or personalized mentorship sessions." - } - } - } } } diff --git a/i18n/locales/fr.json b/i18n/locales/fr.json index 86ce40f..1401847 100644 --- a/i18n/locales/fr.json +++ b/i18n/locales/fr.json @@ -4,8 +4,7 @@ "projects": "Projets", "about": "A propos", "contact": "Contact", - "fiverr": "Fiverr", - "formation": "Formation" + "fiverr": "Fiverr" }, "footer": { "copyright": "\u00a9 2026 Killian Dalcin", @@ -52,10 +51,6 @@ "fiverr": { "title": "Services Fiverr \u2014 Killian Dalcin", "description": "Services de developpement disponibles sur Fiverr : bots Discord, plugins Minecraft, applications web." - }, - "formation": { - "title": "Formation \u2014 Killian Dalcin", - "description": "Formations et cours proposes par Killian Dalcin en developpement web." } }, "home": { @@ -433,77 +428,5 @@ ] } } - }, - "pricing": { - "title": "Choisissez votre plan de formation", - "subtitle": "Acc\u00e9dez \u00e0 une formation compl\u00e8te en d\u00e9veloppement web avec nos plans flexibles adapt\u00e9s \u00e0 tous les niveaux", - "monthly": "Mensuel", - "annual": "Annuel", - "mostPopular": "Le plus populaire", - "startTrial": "Commencer l'essai gratuit", - "trialInfo": "14 jours d'essai gratuit, puis facturation", - "plans": { - "starter": { - "name": "D\u00e9butant", - "description": "Parfait pour commencer votre parcours en d\u00e9veloppement web" - }, - "pro": { - "name": "Pro", - "description": "Id\u00e9al pour les d\u00e9veloppeurs qui veulent acc\u00e9l\u00e9rer leur apprentissage" - }, - "expert": { - "name": "Expert", - "description": "Pour ceux qui visent l'excellence et une carri\u00e8re professionnelle" - } - }, - "features": { - "basicCourses": "Acc\u00e8s aux cours de base (HTML, CSS, JavaScript)", - "communityAccess": "Acc\u00e8s \u00e0 la communaut\u00e9 d'apprentissage", - "mobileApp": "Application mobile pour apprendre partout", - "basicSupport": "Support par email", - "certificates": "Certificats de completion", - "allCourses": "Acc\u00e8s \u00e0 tous les cours et technologies", - "liveWorkshops": "Ateliers en direct chaque semaine", - "mentorship": "Sessions de mentorat mensuel", - "prioritySupport": "Support prioritaire 24/7", - "jobBoard": "Acc\u00e8s au tableau d'emploi exclusif", - "portfolioReview": "R\u00e9vision de portfolio par des experts", - "everythingPro": "Tout du plan Pro inclus", - "oneOnOneCoaching": "Coaching individuel hebdomadaire", - "customProjects": "Projets personnalis\u00e9s selon vos objectifs", - "internshipPlacement": "Aide au placement en stage", - "careerGuidance": "Conseils carri\u00e8re personnalis\u00e9s", - "exclusiveContent": "Contenu exclusif et avant-premi\u00e8re", - "networkingEvents": "\u00c9v\u00e9nements de networking avec les pros" - }, - "faq": { - "title": "Questions fr\u00e9quentes", - "items": { - "trial": { - "question": "Comment fonctionne l'essai gratuit ?", - "answer": "Profitez de 14 jours d'acc\u00e8s complet \u00e0 votre plan choisi. Aucun engagement, vous pouvez annuler \u00e0 tout moment." - }, - "cancel": { - "question": "Puis-je annuler mon abonnement \u00e0 tout moment ?", - "answer": "Oui, vous pouvez annuler votre abonnement \u00e0 tout moment depuis votre tableau de bord." - }, - "refund": { - "question": "Offrez-vous une garantie de remboursement ?", - "answer": "Nous offrons une garantie de remboursement de 30 jours si vous n'\u00eates pas satisfait." - }, - "upgrade": { - "question": "Puis-je changer de plan en cours d'abonnement ?", - "answer": "Absolument ! Vous pouvez passer \u00e0 un plan sup\u00e9rieur \u00e0 tout moment. La diff\u00e9rence sera calcul\u00e9e au prorata." - }, - "certificates": { - "question": "Les certificats sont-ils reconnus ?", - "answer": "Nos certificats sont reconnus par de nombreuses entreprises tech et peuvent \u00eatre ajout\u00e9s \u00e0 votre profil LinkedIn." - }, - "support": { - "question": "Quel type de support est disponible ?", - "answer": "Selon votre plan, vous avez acc\u00e8s au support par email, chat en direct, ou sessions de mentorat personnalis\u00e9es." - } - } - } } } diff --git a/src/views/FormationPage.vue b/src/views/FormationPage.vue deleted file mode 100644 index db92245..0000000 --- a/src/views/FormationPage.vue +++ /dev/null @@ -1,170 +0,0 @@ - - - - - diff --git a/src/views/styles/FormationPage.css b/src/views/styles/FormationPage.css deleted file mode 100644 index 4411a35..0000000 --- a/src/views/styles/FormationPage.css +++ /dev/null @@ -1,435 +0,0 @@ -.formation-page { - min-height: 100vh; - background: linear-gradient(135deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); - padding-top: 80px; - color: var(--text-primary); -} - -/* Hero Section */ -.hero-section { - padding: var(--space-4xl) 0 var(--space-2xl); - text-align: center; -} - -.hero-title { - font-size: var(--font-size-5xl); - font-weight: var(--font-weight-extrabold); - color: var(--text-primary); - margin-bottom: var(--space-md); - text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); -} - -.hero-subtitle { - font-size: var(--font-size-xl); - color: var(--text-secondary); - margin-bottom: var(--space-3xl); - max-width: 600px; - margin-left: auto; - margin-right: auto; - line-height: var(--line-height-relaxed); -} - -/* Billing Toggle */ -.billing-toggle { - display: flex; - align-items: center; - justify-content: center; - gap: var(--space-md); - margin-bottom: var(--space-2xl); - background: var(--bg-tertiary); - padding: var(--space-md) var(--space-2xl); - border-radius: var(--border-radius-full); - border: var(--border-width) solid var(--border-color); - display: inline-flex; - box-shadow: var(--shadow-md); -} - -.billing-toggle span { - color: var(--text-secondary); - font-weight: var(--font-weight-medium); - transition: var(--transition-normal); -} - -.billing-toggle span.active { - color: var(--text-primary); - font-weight: var(--font-weight-semibold); -} - -.discount-badge { - background: var(--color-success); - color: var(--text-inverse); - padding: var(--space-xs) var(--space-sm); - border-radius: var(--border-radius-md); - font-size: var(--font-size-xs); - font-weight: var(--font-weight-semibold); - margin-left: var(--space-sm); -} - -/* Toggle Switch */ -.toggle-switch { - position: relative; - display: inline-block; - width: 60px; - height: 30px; -} - -.toggle-switch input { - opacity: 0; - width: 0; - height: 0; -} - -.slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: var(--color-gray-300); - transition: var(--transition-normal); - border-radius: 30px; -} - -.dark .slider { - background-color: var(--color-gray-600); -} - -.slider:before { - position: absolute; - content: ''; - height: 22px; - width: 22px; - left: 4px; - bottom: 4px; - background-color: var(--bg-primary); - transition: var(--transition-normal); - border-radius: 50%; -} - -input:checked + .slider { - background-color: var(--color-primary); -} - -input:checked + .slider:before { - transform: translateX(30px); -} - -/* Pricing Section */ -.pricing-section { - padding: var(--space-2xl) 0 var(--space-4xl); -} - -.pricing-grid { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: var(--space-xl); - max-width: 1600px; - margin: 0 auto; - padding: 0 var(--space-md); - align-items: stretch; -} - -/* Pricing Cards */ -.pricing-card { - background: var(--bg-primary); - border-radius: var(--border-radius-2xl); - padding: var(--space-2xl); - position: relative; - box-shadow: var(--shadow-xl); - transition: var(--transition-normal); - border: 2px solid transparent; - display: flex; - flex-direction: column; - height: 100%; - min-width: 0; -} - -.pricing-card:hover { - transform: translateY(-10px); - box-shadow: var(--shadow-2xl); -} - -.pricing-card.popular { - border-color: var(--color-primary); - transform: scale(1.05); - box-shadow: 0 25px 50px rgba(133, 203, 133, 0.2); -} - -.dark .pricing-card.popular { - box-shadow: 0 25px 50px rgba(163, 214, 163, 0.2); -} - -.pricing-card.popular:hover { - transform: scale(1.05) translateY(-10px); -} - -.popular-badge { - position: absolute; - top: -15px; - left: 50%; - transform: translateX(-50%); - background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark)); - color: var(--text-inverse); - padding: var(--space-sm) var(--space-lg); - border-radius: 25px; - font-size: var(--font-size-sm); - font-weight: var(--font-weight-semibold); - box-shadow: 0 4px 12px rgba(133, 203, 133, 0.3); -} - -.dark .popular-badge { - box-shadow: 0 4px 12px rgba(163, 214, 163, 0.3); -} - -/* Card Header */ -.card-header { - text-align: center; - margin-bottom: var(--space-2xl); -} - -.plan-name { - font-size: var(--font-size-2xl); - font-weight: var(--font-weight-bold); - color: var(--text-primary); - margin-bottom: var(--space-md); -} - -.plan-price { - display: flex; - align-items: baseline; - justify-content: center; - margin-bottom: var(--space-md); -} - -.currency { - font-size: var(--font-size-xl); - font-weight: var(--font-weight-semibold); - color: var(--text-secondary); -} - -.amount { - font-size: var(--font-size-5xl); - font-weight: var(--font-weight-bold); - color: var(--text-primary); - margin: 0 var(--space-xs); -} - -.period { - font-size: var(--font-size-base); - color: var(--text-secondary); -} - -.plan-description { - color: var(--text-secondary); - line-height: var(--line-height-relaxed); - margin-bottom: 0; -} - -/* Card Body */ -.card-body { - flex: 1; - display: flex; - flex-direction: column; -} - -/* Features List */ -.features-list { - list-style: none; - padding: 0; - margin: 0 0 var(--space-lg) 0; - flex: 1; -} - -.feature-item { - display: flex; - align-items: center; - padding: var(--space-md) 0; - border-bottom: var(--border-width) solid var(--border-color); -} - -.feature-item:last-child { - border-bottom: none; -} - -.check-icon { - width: 20px; - height: 20px; - color: var(--color-success); - margin-right: var(--space-md); - flex-shrink: 0; -} - -/* Card Actions */ -.card-actions { - margin-top: auto; - padding-top: var(--space-xl); -} - -/* CTA Button */ -.cta-button { - width: 100%; - padding: var(--space-md) var(--space-2xl); - border: none; - border-radius: var(--border-radius-lg); - font-size: var(--font-size-lg); - font-weight: var(--font-weight-semibold); - cursor: pointer; - transition: var(--transition-normal); - margin-bottom: var(--space-md); - box-shadow: var(--shadow-sm); -} - -.cta-button.primary { - background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark)); - color: var(--text-inverse); - box-shadow: 0 4px 12px rgba(133, 203, 133, 0.3); -} - -.dark .cta-button.primary { - box-shadow: 0 4px 12px rgba(163, 214, 163, 0.3); -} - -.cta-button.primary:hover { - transform: translateY(-2px); - box-shadow: 0 6px 20px rgba(133, 203, 133, 0.4); -} - -.dark .cta-button.primary:hover { - box-shadow: 0 6px 20px rgba(163, 214, 163, 0.4); -} - -.cta-button.secondary { - background: var(--bg-secondary); - color: var(--text-primary); - border: 2px solid var(--border-color); -} - -.cta-button.secondary:hover { - background: var(--bg-tertiary); - border-color: var(--color-primary); - transform: translateY(-2px); - box-shadow: var(--shadow-md); -} - -.trial-info { - text-align: center; - color: var(--text-tertiary); - font-size: var(--font-size-sm); - margin: 0; -} - -/* FAQ Section */ -.faq-section { - background: var(--bg-secondary); - padding: var(--space-4xl) 0; - border-top: var(--border-width) solid var(--border-color); -} - -.section-title { - text-align: center; - font-size: var(--font-size-4xl); - font-weight: var(--font-weight-bold); - color: var(--text-primary); - margin-bottom: var(--space-3xl); -} - -.faq-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); - gap: var(--space-2xl); - max-width: 1000px; - margin: 0 auto; - padding: 0 var(--space-md); -} - -.faq-item { - background: var(--bg-primary); - padding: var(--space-2xl); - border-radius: var(--border-radius-xl); - border: var(--border-width) solid var(--border-color); - box-shadow: var(--shadow-md); - transition: var(--transition-normal); -} - -.faq-item:hover { - box-shadow: var(--shadow-lg); - transform: translateY(-2px); -} - -.faq-question { - color: var(--text-primary); - font-size: var(--font-size-xl); - font-weight: var(--font-weight-semibold); - margin-bottom: var(--space-md); -} - -.faq-answer { - color: var(--text-secondary); - line-height: var(--line-height-relaxed); - margin: 0; -} - -/* Container */ -.container { - max-width: 1600px; - margin: 0 auto; - padding: 0 var(--space-md); -} - -/* Responsive Design */ -@media (max-width: 1024px) { - .pricing-grid { - grid-template-columns: 1fr; - gap: var(--space-xl); - max-width: 500px; - } - - .pricing-card.popular { - transform: none; - } - - .pricing-card.popular:hover { - transform: translateY(-10px); - } -} - -@media (max-width: 768px) { - .hero-title { - font-size: var(--font-size-4xl); - } - - .billing-toggle { - flex-direction: column; - gap: var(--space-sm); - padding: var(--space-lg); - } - - .faq-grid { - grid-template-columns: 1fr; - gap: var(--space-lg); - } -} - -@media (max-width: 480px) { - .hero-title { - font-size: var(--font-size-3xl); - } - - .amount { - font-size: var(--font-size-4xl); - } - - .pricing-card { - padding: var(--space-lg); - } - - .faq-grid { - grid-template-columns: 1fr; - gap: var(--space-md); - } - - .faq-item { - padding: var(--space-lg); - } -}