DroppyWashSize

The wash sizes, by where the control sits: Droppy's own ShelfWashSize.

enum DroppyWashSize

Every number is the one Pomodoro and Stay Awake draw at, and the one every built-in widget's controls take since 2026-10-03. Read them instead of writing 34, 28 or 24 in a droplet: washControlSize picks the right one for the mount in hand.

Added in 1.22.0; a droplet that uses it declares minAPI 1.22.0.

Type properties

choiceSpacing

static let choiceSpacing: CGFloat

Between two options of a choice: Pomodoro's Focus and Break (spacing).

Available from DroppyKit 1.23.0.

paired

static let paired: CGFloat

Beside another widget: Pomodoro's paired discs. Also the height of a grouped card's last row of controls, so control rows on either side of a divider share their centre line.

row

static let row: CGFloat

A small choice, or a control inside a list row: Pomodoro's narrowest disc and its Focus / Break pill (DroppyWashChoiceButtonStyle).

solo

static let solo: CGFloat

Alone on the shelf: Pomodoro's discs and its Start Timer pill.

wrapped

static let wrapped: CGFloat

In the row wrapped beside the camera (notchWrap): Stay Awake's wrapped mode control. Two of them and their gap fit the narrowest band Droppy's own widgets wrap into.

Type methods

control(isWrapped:isPaired:)

static func control(isWrapped: Bool, isPaired: Bool) -> CGFloat

The disc or pill for a widget's own row controls: wrapped beats paired beats solo, the order Pomodoro resolves them in.

glyph(forDiameter:)

static func glyph(forDiameter diameter: CGFloat) -> CGFloat

Pomodoro's glyph for each disc (14.5 at 34, 12.5 at 28, 11 at 24), and the same proportion past them.