using round(clientWidth * devicePixelRatio)
using round(getBoundingClientRect().width * devicePixelRatio)
using ResizeObserver