Good old flex item default min-height issue: the min-height of the VerticalLayout (a flexbox column) is expanded past 100% of the page body by the tabsheet’s contents.
I’ve spent several hours just this week trying to come up with a tweak to HL and VL that would avoid this issue without breaking thousands of existing applications. Not sure if I’ll find one yet.
I’m happy that we have HorizontalLayout/VerticalLayout to ease the migration of our app, but I have wondered if they are part of the problem. Would any of this become easier if we replaced them with Span and Div?
Span and Div are not layouts. You can put stuff in them but you’ll still need something to define how those things should be laid out in them.
For all practical purposes, flexbox is the way to layout stuff in divs (or any html element). The issue you’re facing is a “feature” of flexbox, and you’re experiencing it with HL and VL because they are (from V10 onwards) really just flexboxes with fancy names (and Java APIs).