Spinner façon macOS
Douze bâtonnets arrondis qui s’estompent tour à tour en cercle, comme le spinner que vous connaissez sur Mac.
Réglages
Code
import { motion } from "framer-motion";
interface MacOSSpinnerProps {
size?: number;
/** Segundos por vuelta. */
speed?: number;
}
export default function MacOSSpinner({
size = 56,
speed = 1,
}: MacOSSpinnerProps) {
return (
<div
role="status"
aria-label="Chargement"
className="relative"
style={{ width: size, height: size }}
>
{Array.from({ length: 12 }, (_, i) => (
<motion.span
key={i}
className="absolute left-1/2 top-0 block rounded-full bg-[#1d1d1f] dark:bg-[#f5f5f7]"
style={{
width: size / 11,
height: size / 3.4,
marginLeft: -size / 22,
transformOrigin: `${size / 22}px ${size / 2}px`,
rotate: i * 30,
}}
animate={{ opacity: [0.16, 1, 0.16] }}
transition={{ duration: speed, repeat: Infinity, delay: (i * speed) / 12 }}
/>
))}
</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
Ce spinner façon macOS se sent chez lui dans les interfaces qui rappellent un logiciel de bureau : un éditeur photo dans le navigateur, une application Electron ou l’indicateur de synchronisation dans la barre d’outils d’un outil de notes. Il prend la couleur du texte de la page et passe tout seul du mode clair au mode sombre.
Il rend mieux en petite ou moyenne taille, à côté d’un libellé comme « Synchronisation… » ou dans une barre d’outils. En très grand, les bâtonnets deviennent lourds et un anneau plus léger vous conviendra peut-être mieux.