based on: #29706
So fresh wind here: What if:
- The columns will been used when a dev groups its fields additionaly by fieldsets:
< fieldset name="myTab">
< fieldset name="basics">
< field>< /field>
< /fieldset>
< fieldset name="borders">
< field>< /field>
< /fieldset>
< /fieldset>
And when no fieldsets are used INSIDE the main fieldset the columns are limited to one column...
every additional fieldset (level 3 and after) should be ignored by this changes
This solution could have this benefits:
- the dev can define if she / he likes to use columns
- columns count would / could still be possible to define if another PR will be created to define the columns
- both sides got what they want to have (multiple columns and single column)
- "Jumping issue" for hidden and later visible fields are not solved in general, yes but it will not happen anymore with this structure
- you have nothing to change for existing J3 extensions XML to migrate
In my test it was necessary to put div's arround the fieldsets to have a nice looking GUI
In my test the generated HTML would need to look like this:
https://ibb.co/PWhx0V7
https://ibb.co/6Yw0Pjx


Things ToDo for this:
- Check in Form Renderer for fieldsets in main fieldsets
-- Add the column classes as already been done in the actual release & wrap fieldset element inside a div
-- Otherwise add column class for 1 column (because there are only fields and all of you are happy)
- Small CSS changes (add rule to remove display inline block for sub sub fieldsets
-- gets actually broken by [class^="column-"] > div, [class*=" column-"] > div {
/* display: inline-flex; ... } in template.css on 10062 (Beta 5) (disable in console while live testing and it worked like a charm)
And yes a small note inside the J4 docs would also be necessary to understand the logic and as i can see it should be backwards compatible too.
I'm sorry but i have no clue how to create build that for you to testing - but the GUI changes can be simulated by changing the HTML directly in the browser. What do you guys think?
Originally posted by @marcorensch in #29706 (comment)