React + MotionLoaders

Points qui respirent

Trois points qui grossissent et s’estompent dans une respiration lente et coordonnée, plus calme que le rebond habituel.

Réglages

15px
1.5s

Code

import { motion } from "framer-motion";

interface BreathingDotsProps {
  color?: string;
  size?: number;
  /** Duración de una respiración en segundos. */
  speed?: number;
}

export default function BreathingDots({
  color = "#6e6e73",
  size = 15,
  speed = 1.5,
}: BreathingDotsProps) {
  return (
    <div role="status" aria-label="Chargement" className="flex gap-3">
      {[0, 1, 2].map((i) => (
        <motion.span
          key={i}
          className="rounded-full"
          style={{ width: size, height: size, backgroundColor: color }}
          animate={{ scale: [0.72, 1, 0.72], opacity: [0.35, 1, 0.35] }}
          transition={{ duration: speed, delay: i * 0.18, repeat: Infinity }}
        />
      ))}
    </div>
  );
}

Prompt pour l’IA

Collez-le dans ChatGPT, Claude ou Cursor : le bloc sera adapté à votre projet avec ces réglages, même sans React.

Version Markdown avec tout le code, pour les assistants IA

Plus dans Loaders

Voir tout : Loaders

Où l’utiliser

Là où les points qui rebondissent semblent bavards, ces points qui respirent paraissent posés. Ils conviennent aux moments qui doivent rester calmes : un assistant IA qui réfléchit à sa réponse, une appli de méditation qui prépare une séance ou une appli bancaire qui confirme un virement. Ils grandissent l’un après l’autre, comme une inspiration lente.

Donnez-leur une vitesse plus lente qu’un loader classique, entre une seconde et demie et deux par cycle, et ils deviennent presque apaisants. Trop petits, ils se perdent : laissez-leur un peu d’espace autour.