Site vitrine · Next.js 16 — Projet personnel

Celeste Fard

Le site d'une chanteuse qui n'existe pas — et qui ne s'en cache pas. Un parcours narratif en douze sections, avec lecteur audio maison, galerie, clips verticaux et boutique. Tout est écrit à la main : trois dépendances au total, aucune librairie d'animation.

En ligne Next.js 16 React 19 CSS Modules Vercel
Page d'accueil : portrait en clair-obscur rouge et titre « Je suis une IA. Écoute. ».

Assumer l'artifice plutôt que le cacher

Une artiste générée par IA pose une question de ton : faire semblant, ou le dire. Le site choisit la seconde option et en fait sa ligne éditoriale — « Je suis une IA. Écoute. » dès le premier écran, une galerie qui précise elle-même qu'aucune de ses photos n'existe. La direction artistique suit : noir profond, rouge incandescent, typographie d'affiche condensée.

Une seule source de vérité

Couleurs, échelle typographique fluide, espacements, halos et rayons vivent dans un unique fichier de tokens. Aucune section ne redéfinit une valeur : elle consomme les variables. Changer l'ambiance du site tient en quelques lignes.

Douze sections autonomes

Chaque section porte son fond, sa gouttière, ses halos et son grain — la page d'accueil n'est qu'un assemblage. On peut réordonner le parcours sans toucher au style.

Trois dépendances

Next, React et React DOM. Pas de GSAP, pas de Framer Motion, pas de kit d'interface : chaque transition, chaque halo et chaque révélation est écrit en CSS.

Les quatre moments du parcours

Le site alterne les registres pour éviter l'effet catalogue : on écoute, on regarde, on parcourt, on achète. Chaque étape a sa propre grammaire visuelle, mais toutes partagent les mêmes tokens.

Lecteur audio : pochette, forme d'onde, commandes de lecture et rangée de titres.
Salle d'écoute. Forme d'onde, file d'attente et lecture continue d'une page à l'autre — sans lecteur tiers.
Galerie : mosaïque asymétrique de portraits sous lumière rouge et rose.
Galerie sans filtre. Mosaïque asymétrique, ouverture en lightbox. Aucune de ces images n'existe, et la légende le dit.
Carrousel de clips verticaux avec boutons de lecture.
Clips verticaux. Carrousel de formats courts, lecture au clic, sans lecteur embarqué externe.
Boutique : trois fiches produit sombres avec pastilles de prix.
Boutique. Trois pièces, pas trente. Même grammaire visuelle du teaser jusqu'à la fiche produit.

Pensé pour le téléphone, pas rétréci pour lui

Page d'accueil sur mobile : le titre passe sous le portrait, les boutons prennent toute la largeur.

L'échelle typographique est fluide de 375 à 1920 px : les titres ne « sautent » pas d'un palier à l'autre, ils se redimensionnent en continu. Sur mobile, le portrait passe en fond, le titre se réordonne sous lui et les boutons prennent toute la largeur.

Les effets coûteux sont dégradés plutôt que subis : le flou d'arrière-plan des cartes de verre est remplacé par un fond opaque sous 640 px, et le débordement des visuels hors de leur section est réduit puis annulé. Les animations respectent prefers-reduced-motion.

Échelle fluide Gouttière sûre iOS Reduced motion Zéro scroll horizontal

Technologies utilisées

ComposantTechnologie
FrameworkNext.js 16 (App Router, Turbopack)
InterfaceReact 19
StylesCSS Modules + fichier de tokens
TypographieAnton, Inter, Cormorant Garamond
AudioLecteur maison, sans librairie
LanguesFR / EN (dictionnaire unique)
Imagesnext/image, WebP
HébergementVercel

Surface du projet

Sections d'accueil12
Pages6
Modules CSS14
Dépendances3
Sans animation JS0
Next.js React CSS Modules Design tokens Vercel

Un site qui raconte, pas seulement qui affiche

Créé par Mathieu — Irkeedia. Direction artistique, développement et mise en ligne.

Voir tous les projets