The tricky part in building carousel was always CSS part, not JavaScript part.<p>If we removed HTML code from your JSX, you would have ~15 lines of JavaScript. It&#x27;s simple, right? But it was always simple. I&#x27;ve built carousels in jQuery and JS part was also like 15-18 lines of code maybe.<p>CSS was trickier and I admit that CSS tweaking can actually take &quot;day or two&quot; (have you tried building simple carousel in pure JavaScript + &lt;canvas&gt;? It is be super easy when we exclude CSS problem from it).<p>Because CSS is a big freestyle there are many possible implementations of carousel in CSS. You used translate3D. Maybe this made all the difference. I think that you don&#x27;t need React to calculate variable `offset` and assign it to CSS property `translate3D`. You could do this in jQuery as well.<p>Although React components are more modular and reusable off course. And if you have project written in React it&#x27;s natural that everything is declared as React component. I just don&#x27;t buy &quot;React made possible to do it in simple way&quot; part.