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.

Plus dans 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.