ProfessionnelFacile

Portfolio d'Abbas Krayani

Un portfolio personnel monopage conçu et livré pour un client, avec sections animées et formulaire de contact validé.

— Vue d'ensemble

Aperçu de l'architecture

graph LR
    A["SPA Vite + React"] --> B["shadcn/ui sur Radix"]
    A --> C[Tailwind CSS v4]
    A --> D["Sections framer-motion"]
    A --> E["react-hook-form + Zod"]
    A --> F[TanStack Query]
    A --> G[Vercel]

Un site portfolio de commande livré sous forme d'application React monopage. Le cahier des charges était simple — présenter clairement le parcours et les travaux du client, charger vite, bien se lire sur téléphone — la réalisation reste donc délibérément sobre : une page, en sections, où le mouvement guide l'attention plutôt qu'il ne décore.

Les composants proviennent de shadcn/ui sur les primitives Radix, ce qui rend les éléments interactifs accessibles par défaut. Le formulaire de contact est validé par Zod via react-hook-form avant tout envoi.

Fonctionnalités clés :

  • Mise en page monopage avec apparition animée des sections
  • Composants interactifs accessibles bâtis sur les primitives Radix
  • Formulaire de contact avec validation par schéma et erreurs en ligne
  • Typographie et mise en page adaptatives, pensées d'abord pour le mobile
  • Déployé sur Vercel avec une URL publique en ligne

Stack technique :

  • Frontend : React, TypeScript, Vite, Tailwind CSS v4
  • Composants : shadcn/ui, Radix UI, framer-motion
  • Formulaires : react-hook-form, Zod
  • Hébergement : Vercel
— Stack
TypeScriptReactViteTailwind CSSVercel