I forked this RN starter project and tried a different approach about putting borders & spaces around different blocks. https://github.com/pinarol/react-native-starter
The example is in a super primitive state but I tried to write down my mindset in code comments here: https://github.com/pinarol/react-native-starter/blob/124a7e9d4d9060753760b996957c708823da8434/src/modules/home/HomeView.js#L60

The frame view is absolutely positioned behind the blue view, but it is not blue view’s parent, they are at the same level
So we don’t need to make calculations for blue view’s paddings/margins/borders for different states.
All we need to do is positioning the frame view relative to blue view.
So when ready, we can give this approach a chance
cc @jbinda @lukewalczak