Skip to content

Fix: Audit on the website (Bugs, Performance, Quality, etc...) - #8

Merged
Edmond22-prog merged 17 commits into
mainfrom
fix/audit-frontend
Aug 15, 2026
Merged

Fix: Audit on the website (Bugs, Performance, Quality, etc...)#8
Edmond22-prog merged 17 commits into
mainfrom
fix/audit-frontend

Conversation

@Edmond22-prog

Copy link
Copy Markdown
Contributor

No description provided.

Edmond22-prog and others added 17 commits August 14, 2026 17:06
Adds a fixed banner above the navbar that counts down to the September
17 event and links to cm.pycon.org. It disappears once the countdown
reaches zero and the page layout shifts to avoid any overlap.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
--primary, --secondary, --muted, and --accent used comma-separated
HSL values (e.g. 166, 95%, 29%) instead of the space-separated shadcn
convention. Tailwind's hsl(var(--x) / <alpha>) syntax requires the
space form, so with commas the resulting hsl(166, 95%, 29% / .1)
was invalid CSS and silently dropped — breaking every bg-primary/xx,
border-primary/xx, and gradient utility across the site.
The CSS variables held HSL triples (166, 95%, 29% / 50, 96%, 59%),
which is invalid inside rgba(...), silently killing every inline
glow/box-shadow/gradient built from them (Hero, Team, FAQ, Sponsors,
Newsletter, About, Applications, Statistics, HowItWorks, Services).
Recomputed the precise RGB equivalents and fixed Statistics.tsx's
stray hsl(var(--primary-rgb)) usage to match the rgba(...) pattern
used everywhere else.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Newsletter form promised subscriptions that never actually sent
anywhere (setTimeout + console.log). Hide the section until a real
backend is decided, and remove its now-dead nav link.

Hero CTAs also pointed at broken/removed anchors:
- "Explore Python" (#About) now links to python.org
- Secondary CTA (#newsletter) is now a "Contact Us" mailto link to
  organizers@pythoncameroon.org
Add AUDIT.md documenting the frontend audit findings.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The switcher toggled state and localStorage but never changed any
visible text, misleading users in a French-speaking country. i18n
provider/setup left in place for the future full i18n implementation.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…Menu onClick

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- P1: framer-motion en LazyMotion strict (composants m.*), manualChunks
  react/motion/i18n -> JS 590,9 -> 533,6 kB min (189,2 -> 174,0 kB gzip)
- P2: suppression des ~93 animations repeat: Infinity (particules retirees,
  blobs/gradients statiques), useInView once: true partout ; HeroNetwork
  pause hors ecran/onglet cache, 28 noeuds sur mobile
- P3: 6 images Applications en WebP 800px locales + loading lazy,
  favicon.svg 428 kB supprime, flag-cameroon.webp 264 -> 117 kB
- P4: MotionConfig reducedMotion=user + media query
  prefers-reduced-motion (CSS et canvas)
- P5: activeSection navbar via IntersectionObserver, listeners scroll
  passifs (Navbar, ScrollToTop)
- P6: fonts auto-hebergees @fontsource (sous-ensembles latins uniquement),
  liens Google Fonts retires

Corrige au passage 3 warnings React preexistants (div dans p,
AnimatePresence sans cles dans Hero). package-lock inclut un refresh
de versions issu d'un npm install anterieur.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ontrastes)

- A1: Applications - description + tech stack visibles par defaut (plus
  d'overlay hover-only); Sponsors - "Visit" declenche aussi au focus clavier
- A2: FAQ - accordion Radix (ui/accordion) a la place du bouton fait main,
  aria-expanded/aria-controls et clavier fournis, style conserve
- A3: sr-only "Open menu" enfant direct du SheetTrigger, icone aria-hidden
- A4: deja traite avec P2 (flou anime des titres supprime)
- A5: un seul h1 (hero fusionne), Newsletter h3->h2, compteurs Statistics
  h2->div; --secondary clair 59%->32% et hero to-[#B8860B] en clair
  (AA texte large); --muted clair remis en gris neutre; PyConBanner 9px->11px

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ges par overflow-hidden et le contexte d'empilement, ils inondaient l'interieur au survol et rendaient le titre illisible (visible en dark); rotation 360 remplacee par un fondu/scale maintenant qu'ils sont derriere la carte

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…es, robots.txt, sitemap, JSON-LD Organization, favicons/manifest/og-image dans public/

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Q1: composants de section partages (GlowBackground, SectionHeader,
  TitleGradient) dans src/components/section/, appliques a toutes les
  sections (About, Sponsors, HowItWorks, Services, Applications, Team,
  Newsletter, FAQ, Footer, Navbar, Statistics)
- Q2: code mort supprime (Features, HeroCards, ui/avatar, ui/badge,
  ~9,5 Mo de PNG inutilises, theme commente d'App.css, .shadow)
- Q3: plugin-react-swc en devDeps, doublon plugin-react supprime,
  i18next-browser-languagedetector et radix react-avatar retires
- Q4: index.css = Tailwind + theme / App.css = utilitaires (convention),
  components.json corrige, donnees Sponsors/FAQ/Applications/Footer
  centralisees dans src/data/ + types, Team ajoute au routeList
- Q5: setActiveCard jamais lu supprime, m.section imbrique du Hero en
  m.div; bonus: lint a 0 warning (useCallback language.tsx + override
  react-refresh pour shadcn/providers)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e par lettre

L'animation caractere par caractere (AnimatedCharacter/SplitTextAnimation
+ stagger par mot) est supprimee. Chaque ligne du titre glisse desormais
depuis le bas derriere un masque overflow-hidden (0,5 s, decalees de
0,25 s), le reste du bloc entre en simple fondu. Variante choisie parmi
4 prototypees (fondu simple, fondu + glissement, revelation par ligne,
fondu + zoom). Degrades de couleur conserves.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e GitHub, "Join Python Cameroon" redirige vers le groupe WhatsApp

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… regeneres

- Remplace les wordmarks light/dark.svg par logo.png (source) + logo-nav.webp (80px, ~4kB, charge par la navbar)
- LogoIcon: une seule variante, le texte "Python Cameroon" herite de la couleur du theme
- Favicons regeneres depuis la nouvelle source: favicon.ico (16/32/48), favicon-96x96, apple-touch-icon (fond blanc), manifest 192/512 (fond blanc + marge, purpose maskable)
- og-image.png non touche (contient encore l'ancien logo)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit 476b415):

https://python-cameroon--pr8-fix-audit-frontend-7nk8vsld.web.app

(expires Sat, 22 Aug 2026 00:59:33 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 6e7a4246deab054fa48a836ee820b158eab2848b

@Edmond22-prog
Edmond22-prog merged commit 002039e into main Aug 15, 2026
2 checks passed
@Edmond22-prog
Edmond22-prog deleted the fix/audit-frontend branch August 15, 2026 01:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant