DroppyGlassControl

The Liquid Glass control recipe: the fill vocabulary, the ink, and the wash for one state.

enum DroppyGlassControl

The Liquid Glass control recipe: the fill vocabulary, the ink, and the wash for one state. DroppyGlassControlChrome draws it; the button styles in this module are built on it.

Cases

DroppyGlassControl.Fill.veil

case veil

Plain Liquid Glass. The neutral control.

DroppyGlassControl.Fill.tinted(_:)

case tinted(Color)

The colour washed over the glass, for a confirming or accent action.

DroppyGlassControl.Fill.solid(_:)

case solid(Color)

The colour as an opaque disc or pill, no glass: a classic notch puck beside black nav capsules, a green success flash.

Type methods

fill(for:)

static func fill(for color: Color?) -> Fill

Neutral when color is nil or is the highlight the user picked in Settings, Theming (the default preset resolves to the label colour, so a "tinted" pill would wash grey over the glass); tinted otherwise.

ink(for:isEnabled:)

static func ink(for fill: Fill, isEnabled: Bool = true) -> Color

Label colour for a control painted with fill.

isThemeHighlight(_:)

static func isThemeHighlight(_ color: Color) -> Bool

True when color is the app highlight from Settings, Theming.

needsDarkInk(_:)

static func needsDarkInk(_ color: Color) -> Bool

Dark ink on a light solid fill: luminance decides.

static func neutralInk(isEnabled: Bool = true) -> Color

The reference ink: the adaptive label colour, dimmed when disabled.

wash(for:isHovering:isPressed:isEnabled:)

static func wash(for fill: Fill, isHovering: Bool, isPressed: Bool, isEnabled: Bool) -> Color

The wash over the glass for one state: nothing at rest on the neutral control and a whisper under the pointer, the accent on a tinted one, the colour itself on a solid one.