pub enum Gap {
Bound,
Peer,
Group,
Section,
Pane,
Page,
}Expand description
A named separation between two things.
Pick by relationship. The size is a consequence of the name, not the other way round, and callers should never care what it is.
Variants§
Bound
A control and the thing it belongs to: an edit field and its pop-up, a checkbox and its label, an icon and the text it labels. Reads as one object.
Peer
Items of the same kind in a list: stacked checkboxes, radio buttons, rows, chips in a row. Reads as a set.
Group
A container’s inner margin, and the distance between sibling groups side by side. Reads as “inside this box”.
Section
Separated groups, and rows of actions. The first gap that reads as a deliberate break rather than as breathing room.
Pane
Panel padding and content shells. Layout, not controls.
Page
The outermost shell margin. One per screen, usually.
Implementations§
Source§impl Gap
impl Gap
Sourcepub const fn step_at(self, density: Density) -> Step
pub const fn step_at(self, density: Density) -> Step
The step this relationship resolves to at a given density, on a
SizeClass::Medium or wider window.
Density::Pointer’s values are the HIG’s own. Density::Touch
opens the three gaps that separate distinct tap targets and holds the
rest, per the crate-level “Density presets” section.
Shells tighten on a compact window rather than at touch density. Use
Self::step_at_size where the window width is known; this is the
wider-window answer and the one every existing caller already meant.
Sourcepub const fn step_at_size(self, density: Density, size: SizeClass) -> Step
pub const fn step_at_size(self, density: Density, size: SizeClass) -> Step
The step this relationship resolves to at a given density and window size class.
Only the two shells move, and only on SizeClass::Compact: pane
24 to 16, page 32 to 24, one step down each. The four gaps between
controls do not, because how much room a window has says nothing about
how far apart two tap targets should be.
Which axis owns this (Max). A tighter window edge is a claim about
screen budget, and smuggling screen budget into the density axis is the
bug SizeClass exists to prevent. So the claim goes here and the
quoted Pointer values hold. Both compact values sit on the eighths
scale, so no Step at 7/8 = 14 is needed.
Sourcepub const fn px_at(self, density: Density) -> u16
pub const fn px_at(self, density: Density) -> u16
Size in CSS pixels at the default base, at a given density.
Sourcepub const fn px_at_size(self, density: Density, size: SizeClass) -> u16
pub const fn px_at_size(self, density: Density, size: SizeClass) -> u16
Size in CSS pixels at the default base, at a given density and window size class.