Skip to main content

Gap

Enum Gap 

Source
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

Source

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.

Source

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, 2026-08-09). The Pointer preset was carrying a retune to pane 14 / page 16 on the strength of a specimen that wanted a tighter window edge. A tighter window edge is a claim about screen budget, and the 0.3.0 Touch re-derivation had already ruled that smuggling screen budget into the density axis was the whole bug the old Touch preset embodied — it just had nowhere else to put it, because SizeClass did not exist yet. It does now, so the claim goes where it belongs and the quoted Pointer values hold.

Two things fall out. There is no need for a Step at 7/8 = 14, which is off the eighths scale and would have wanted a public name; both compact values are already on it. And no consumer migrates, because no quoted value changed.

Source

pub const fn step(self) -> Step

The step this relationship resolves to at the default density.

Source

pub const fn px_at(self, density: Density) -> u16

Size in CSS pixels at the default base, at a given density.

Source

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.

Source

pub const fn px(self) -> u16

Size in CSS pixels at the default base and density.

Source

pub const fn token(self) -> &'static str

The CSS custom-property name, without the leading --.

Source

pub const fn all() -> [Self; 6]

Every relationship, tightest first.

Trait Implementations§

Source§

impl Clone for Gap

Source§

fn clone(&self) -> Gap

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Gap

Source§

impl Debug for Gap

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Gap

Source§

impl Hash for Gap

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for Gap

Source§

fn cmp(&self, other: &Gap) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Gap

Source§

fn eq(&self, other: &Gap) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PartialOrd for Gap

Source§

fn partial_cmp(&self, other: &Gap) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl StructuralPartialEq for Gap

Auto Trait Implementations§

§

impl Freeze for Gap

§

impl RefUnwindSafe for Gap

§

impl Send for Gap

§

impl Sync for Gap

§

impl Unpin for Gap

§

impl UnsafeUnpin for Gap

§

impl UnwindSafe for Gap

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.