nnuer
강희태@gmlxo9917

보라·분홍·청록 점 세 개가 차례로 튀는 보내는 중 표시

로딩 인터랙션

보라, 분홍, 청록 점 세 개가 150ms 간격으로 어긋나게 위로 8px 튀어 오르기를 반복하는 보내는 중 표시입니다.

#dots#typing#sending#loader2026. 10. 17. 업데이트

블록 신고

운영자가 확인한 뒤 필요하면 블록을 숨깁니다.

사유
Claude Code · Claude Opus 5.5 · React (TSX)
결과 코드펼치기
import { useEffect, useRef } from "react";

const COLORS = ["#7c3aed", "#db2777", "#0891b2"];

/** Three dots in violet, pink and teal that hop in turn, like a message being sent */
export default function SendingDots() {
  const dots = useRef<(HTMLSpanElement | null)[]>([]);

  useEffect(() => {
    if (matchMedia("(prefers-reduced-motion: reduce)").matches) return;
    const animations = dots.current.map((dot, i) =>
      dot?.animate([{ transform: "translateY(0)" }, { transform: "translateY(-8px)" }, { transform: "translateY(0)" }], {
        duration: 900,
        delay: i * 150,
        iterations: Infinity,
        easing: "ease-in-out",
      }),
    );
    return () => animations.forEach((a) => a?.cancel());
  }, []);

  return (
    <section className="grid w-full place-items-center bg-[#fbfbfc] px-4 py-28">
      <span role="status" aria-label="보내는 중" className="inline-flex gap-2">
        {COLORS.map((color, i) => (
          <span
            key={color}
            ref={(el) => {
              dots.current[i] = el;
            }}
            className="size-3.5 rounded-full"
            style={{ background: color }}
          />
        ))}
      </span>
    </section>
  );
}

적용 사이트 0

이 블록이 실제로 쓰인 사이트입니다.

로그인하고 내 사이트 추가

아직 등록된 사이트가 없습니다. 이 블록을 쓴 사이트가 있다면 알려 주세요.

로그인하고 재현 결과 올리기

재현 후기

v1 · 0개

아직 이 버전의 프롬프트로 직접 만들어 본 사람이 없습니다. 첫 번째로 재현해 보세요.