I just dug up some option called BoxExpandable
which does this job. I found it by inspecting the set of FrameBoxOptions
:
CurrentValue[$FrontEndSession, {StyleDefinitions, "Input",
FrameBoxOptions}] /.
s_Symbol?(StringStartsQ[SymbolName[#], "FrameBoxOptions"] &) :>
StringTrim[SymbolName[s], "FrameBoxOptions"]
{"BaseStyle" -> {}, "DefaultBaseStyle" -> "Framed",
"Enabled" -> Automatic,
"Appearance" -> {Automatic, "Framed", "Normal", Automatic},
"Background" -> Automatic, "ImageSize" -> Automatic,
"ImageMargins" -> 0., "FrameMargins" -> Automatic,
"ContentPadding" -> True, "BaselinePosition" -> Automatic,
"Alignment" -> {Automatic, Automatic}, "BoxFrame" -> 1.,
"FrameStyle" -> {}, "DefaultFrameStyle" -> {},
"BoxExpandable" -> False, "StripOnInput" -> True,
"RoundingRadius" -> {0., 0.},
"BoxMargins" -> {{0.4, 0.4}, {0.5, 0.5}}}
Unfortunately this only handles in initial case as it is missing from this:
CurrentValue[$FrontEndSession, {StyleDefinitions, "Input",
PaneSelectorBoxOptions}] /.
s_Symbol?(StringStartsQ[SymbolName[#],
"PaneSelectorBoxOptions"] &) :>
StringTrim[SymbolName[s], "PaneSelectorBoxOptions"]
{"BaseStyle" -> {}, "DefaultBaseStyle" -> "PaneSelector",
"Enabled" -> Automatic,
"Appearance" -> {Automatic, "Palette", "Normal", Automatic},
"Background" -> Automatic, "ImageSize" -> All,
"ImageMargins" -> Automatic, "FrameMargins" -> Automatic,
"ContentPadding" -> True, "BaselinePosition" -> Automatic,
"Alignment" -> {Automatic, Automatic}, "AutoAction" -> False,
"ContinuousAction" -> True, "TransitionDirection" -> Horizontal,
"TransitionDuration" -> 0.5, "TransitionEffect" -> Automatic}
Column@Table[Button[i!, {}, Appearance -> "Framed"], {i, 1, 16, 5}]
? $\endgroup$