A small app to measure render performance of various style combinations. Two modes:

Mode: update
1/1000
idlast phaselast duration in msrender countduration average in msduration total in msdifference duration average% difference duration average
[Static CSS] - Vanilla extractmount1.200000047683715811.20000004768371581.2000--
[Static CSS] - Globalmount1.29999971389770511.2999997138977051.3000+0.10000+8.3333%
[Static CSS] - CSS Modulesmount1.299999952316284211.29999995231628421.3000+0.10000+8.3333%
[Inline styles] - stable objectmount2.199999570846557612.19999957084655762.2000+1.0000+83.333%
[Styled components] - static styles only unused dynamic ${props => '',props => '',props => '',props => '',props => ''}mount2.400000095367431612.40000009536743162.4000+1.2000+100.00%
[Inline styles] - dynamic objectmount2.512.52.5000+1.3000+108.33%
[Styled components] - dynamic, unstable style creation ${props => css({...obj})}mount2.50000023841857912.5000002384185792.5000+1.3000+108.33%
[Styled components] - static styles only unused dynamic ${props => css``,props => css``,props => css``,props => css``,props => css``}mount2.79999995231628412.7999999523162842.8000+1.6000+133.33%
[Styled components] - dynamic style creation ${props => css(obj)}mount3.49999976158142113.4999997615814213.5000+2.3000+191.67%
[Styled components] - static styles, unused handful of unused system propsmount3.513.53.5000+2.3000+191.67%
[Box] - SX prop, inside `ThemeProvider`mount3.599999904632568413.59999990463256843.6000+2.4000+200.00%
[Box] - SX prop, stable objectmount3.79999995231628413.7999999523162843.8000+2.6000+216.67%
[Box] - SX prop, dynamic objectmount3.899999856948852513.89999985694885253.9000+2.7000+225.00%
[Styled components] - static styles, unused handful of system props with object propmount3.99999952316284213.9999995231628424.0000+2.8000+233.33%
[Styled components] - SX prop, stable objectmount4144.0000+2.8000+233.33%
[Styled components] - static styles only unused dynamic ${props => css``}mount4.09999990463256814.0999999046325684.1000+2.9000+241.67%
[Box] - SX prop + New css declaration per render {dynamic maxWidth}mount4.100000143051147514.10000014305114754.1000+2.9000+241.67%
[Box] - inline style, inside `ThemeProvider`mount4.50000023841857914.5000002384185794.5000+3.3000+275.00%
[Styled components] - SX prop + Style update from dynamic prop attrsmount5.29999995231628415.2999999523162845.3000+4.1000+341.67%
[Box] - inline stylemount5.69999980926513715.6999998092651375.7000+4.5000+375.00%
[Styled components] - SX prop, dynamic objectmount5.80000019073486315.8000001907348635.8000+4.6000+383.33%
[Styled components] - static styles onlymount6.20000004768371616.2000000476837166.2000+5.0000+416.67%
[Styled components] - SX prop + New css declaration per render {dynamic maxWidth}mount7.59999990463256817.5999999046325687.6000+6.4000+533.33%
Configuration

Adding too many rows/columns will slow the page down.