Portfolio web moderne et performant pour artiste multidisciplinaire (peintures, aquarelles, sculptures, character design).
- 🎨 Design artistique inspiré de awwwards.com
- 🌟 Animations Three.js fluides et optimisées
- 📱 Mobile-first, optimisé pour Safari iOS
- ⚡ Performances optimales (lazy loading, code splitting)
- 🎭 Animations fluides avec Framer Motion
- 🎯 TypeScript pour la sécurité des types
- 🏗️ Architecture moderne et maintenable
- Framework: React 18 + Vite
- Language: TypeScript
- 3D/Animations: Three.js + @react-three/fiber + @react-three/drei
- Animations: Framer Motion + GSAP
- Routing: React Router
- Build Tool: Vite (avec optimisations mobile)
- Code Quality: ESLint + Prettier
- Node.js >= 20.0.0
- Yarn 1.22.19
# Assurez-vous d'utiliser Node 20+
node --version
# Installer les dépendances
yarn install# Lancer le serveur de développement
yarn dev
# Le site sera accessible sur http://localhost:3000# Build de production
yarn build
# Prévisualiser le build
yarn previewyarn dev # Lancer le serveur de développement
yarn build # Build de production
yarn preview # Prévisualiser le build
yarn lint # Lancer ESLint
yarn format # Formater le code avec Prettiersrc/
├── components/ # Composants réutilisables
│ ├── common/ # Composants communs (Button, LoadingScreen)
│ ├── layout/ # Layout (Header, Footer, Navigation)
│ ├── gallery/ # Composants galerie
│ └── three/ # Composants Three.js
├── pages/ # Pages principales
│ ├── Home.tsx
│ ├── Gallery.tsx
│ ├── About.tsx
│ └── Contact.tsx
├── hooks/ # Custom React hooks
├── utils/ # Utilitaires et helpers
├── styles/ # Styles globaux et thème
├── assets/ # Images, fonts, etc.
└── types/ # TypeScript types/interfaces
- Pixel Ratio Limité: Max 2x (pas 3x sur iPhone) pour économiser GPU
- Code Splitting: Chargement par route avec React.lazy
- Lazy Loading: Images et composants chargés à la demande
- Compression: Gzip et Brotli activés
- Three.js Optimisé:
- Antialiasing désactivé sur mobile
- Nombre de particules réduit (1000 au lieu de 10000+)
- GPU usage contrôlé
- Compatibilité testée avec les spécificités Safari
- Gestion WebGL optimisée
- Prévention du zoom sur focus des inputs
- Media queries compatibles avec anciens Safari
- Support
prefers-reduced-motion - Navigation clavier optimisée
- Attributs ARIA appropriés
- Contraste respecté
Les variables CSS sont définies dans src/styles/global.css:
:root {
--color-bg-primary: #0a0a0a;
--color-accent: #f5f5f5;
/* ... */
}Les œuvres sont définies dans le type Artwork (src/types/artwork.ts). Pour ajouter des œuvres:
- Créer un fichier de données (ex:
src/data/artworks.ts) - Utiliser les composants de galerie existants
- Implémenter le lazy loading des images
- Connecter le repository
- Build command:
yarn build - Publish directory:
dist - Node version: 20.x
# netlify.toml
[build]
command = "yarn build"
publish = "dist"
[[redirects]]
from = "/*"
to = "/index.html"
status = 200- Voir
CLAUDE.mdpour l'architecture détaillée - Chaque composant est documenté avec des commentaires
- Les hooks customs incluent des exemples d'utilisation
- Respecter les conventions de code (ESLint + Prettier)
- Maintenir le principe DRY (Don't Repeat Yourself)
- Tester sur mobile et Safari avant commit
- Optimiser les images avant ajout
Propriété de l'artiste. Tous droits réservés.
Pour tout problème ou question, créer une issue sur le repository.