When Flex=true, controls flex direction. 'column' (default) stacks
children vertically; 'row' for left-rail + content sub-page layouts.
Ignored when Flex=false.
When true, switches the body to a flex container so children with
flex: 1 can fill remaining space (e.g. sidebar + content). Defaults to
false (block flow with vertical scroll).
When false, removes the responsive gutter. Defaults to true.
<mj-page-body-interior>— Body-region sibling of<mj-page-header-interior>.Paired primitive for sub-pages that render inside a left-nav workspace shell. Where
<mj-page-body>is for top-level pages (sits inside<mj-page-layout>), this component is for sub-pages whose host element already has the flex-column layout (typically via_admin-patterns.css's:hostrule or an equivalent).Owns:
flex: 1so it fills the space below<mj-page-header-interior>.overflow-y: autoso the body scrolls (the host typically hasoverflow: hidden)..scrollable-contentrules inpackages/Angular/Explorer/explorer-settings/src/lib/shared/styles/_admin-patterns.css.Background is fixed to
--mj-bg-pageto match<mj-left-nav-content>'s background (the typical parent in shell sub-page contexts). The interior chrome's own surface + shadow provides the visual delineation between chrome and body — no second background tone needed.Escape hatches:
[Padding]="false"— remove the gutter (e.g. when inner content owns padding).[Flex]="true"+[Direction]="'row'"— switch the body to a flex container so children withflex: 1can grow (e.g. sidebar + content panes).Example:
See Section 10 of
plans/explorer-chrome-conventions.mdfor the full "interior chrome" contract.