DroppySettingsLayoutMetrics
Shared layout metrics for settings rows and cards.
enum DroppySettingsLayoutMetrics
Type properties
controlSpacing
static let controlSpacing: CGFloat
Spacing between a row's label block and its trailing control.
dividerLeadingInset
static let dividerLeadingInset: CGFloat
Leading inset of in-card dividers.
pageContentReadableMaxWidth
static let pageContentReadableMaxWidth: CGFloat
Widest a full settings page's content column grows on a wide window (DroppyKit 0.4.1).
A CEILING, not a width. Droppy resolves the actual column from the live window (base width minus sidebar, floor 380) and only reaches this cap when the user widens the window, so a pane must fill the width the host proposes (preferredContentWidth, or the proposed layout width) rather than framing itself at a flat 900. Clamp to this value only when you own the whole page (the harness case), the same rule as pageHorizontalInset.
pageHorizontalInset
static let pageHorizontalInset: CGFloat
Horizontal inset of a full settings PAGE's content column: the cards themselves, not the rows inside them.
This is the inset THE HOST applies around every settings page, droplet detail pages included (.padding(.horizontal, 16) on the settings scroll in Droppy/SettingsView.swift). Under dropletDetail the host has already paid it, so a pane must NOT add it again: a pane that self-applies a page inset renders its cards narrower than every native page beside it. Apply it yourself only when you own the whole page, which is the harness and standalone-tool case.
Was 24 before 0.4.2, which taught exactly that double-inset: the proof-bundle pane rendered 24pt narrower per side than the built-in detail pages the same shop shows. 24 is an info-view-local inset, not a page inset; the Store preserves it rather than applying a negative counter-inset that can push narrow three-column content out of bounds.
pageVerticalInset
static let pageVerticalInset: CGFloat
Vertical inset of a full settings page's content column. The host's own value (.padding(.top/.bottom, 16) on the settings scroll); see pageHorizontalInset for who pays it.
pickerTileSpacing
static let pickerTileSpacing: CGFloat
Spacing between picker tiles.
rowPadding
static let rowPadding: CGFloat
Inner padding of a settings row.
stackedRowSpacing
static let stackedRowSpacing: CGFloat
Vertical spacing between a stacked row's title and its content.