크기와 위치는 그대로이고 겉모습만 바뀌어 픽셀을 다시 칠하는 일. 리플로우는 건너뛰지만 합성만 하는 경우보다는 비싸다.
- 대표적인 원인:
color,background,border-color,outline,box-shadow,visibility visibility: hidden은 자리를 그대로 차지하므로 리페인트만 일어난다.display: none은 렌더 트리에서 빠지므로 리플로우까지 일어난다opacity와transform은 요소가 별도 합성 레이어에 있으면 페인트 없이 합성만 다시 한다- 큰 영역의 그림자나 필터를 애니메이션하면 프레임마다 다시 칠하느라 느려질 수 있다
DevTools의 Rendering 패널에서 "Paint flashing"을 켜면 다시 칠해지는 영역이 초록색으로 깜빡여서 확인할 수 있다 → 크롬 개발자 도구 팁