DroppyLiveActivityMetrics
Native metrics for compact and interactive live-activity rows.
enum DroppyLiveActivityMetrics
A live activity is mini-HUD chrome, not a card. These values mirror Droppy's built-in Pomodoro, media, and compact status surfaces so example droplets do not have to guess typography, control, or host widths.
Type properties
cardContentHeight
static let cardContentHeight: CGFloat
Content height of a standard card, a HUD's, or an expanded live activity's, before the host adds the cutout above and its 16pt inset below. Droppy's own battery and AirPods cards are this tall.
compactIslandWidth
static let compactIslandWidth: CGFloat
Width of the at-rest island live-activity slot.
compactNotchWingWidth
static let compactNotchWingWidth: CGFloat
Width of each notch wing in the at-rest live-activity slot.
contentSpacing
static let contentSpacing: CGFloat
Gap between compact row elements.
controlGlyphSize
static let controlGlyphSize: CGFloat
Glyph size for an inline interactive control.
controlSize
static let controlSize: CGFloat
Hit and background diameter for an inline interactive control.
iconSize
static let iconSize: CGFloat
Standard compact status glyph size.
interactiveIslandWidth
static let interactiveIslandWidth: CGFloat
Width of the interactive island row.
interactiveNotchWingWidth
static let interactiveNotchWingWidth: CGFloat
Width of each notch wing in the interactive row.
islandContentInset
static let islandContentInset: CGFloat
Horizontal inset inside an island capsule.
labelFontSize
static let labelFontSize: CGFloat
Standard compact status label and value size.
progressRingGlyphSize
static let progressRingGlyphSize: CGFloat
Glyph inside a compact progress ring.
progressRingLineWidth
static let progressRingLineWidth: CGFloat
Stroke width of the compact progress ring.
progressRingSize
static let progressRingSize: CGFloat
Progress-ring diameter for a ring that also contains a small glyph.
rowHeight
static let rowHeight: CGFloat
Height of both the at-rest and interactive row.
wingCornerCompensation
static let wingCornerCompensation: CGFloat
Wing-corner compensation: how far a concave notch shoulder carves into the drawable area at the shell's outer edges.
An island is convex and needs none of it. Both notch-styled shells need all of it, cutout or no cutout, because the shell DRAWS the same curve either way.
Type methods
symmetricPadding(iconSize:notchHeight:usesNotchStyle:)
static func symmetricPadding(iconSize: CGFloat, notchHeight: CGFloat = rowHeight, usesNotchStyle: Bool) -> CGFloat
The one padding every compact surface uses, all four edges (DroppyKit 1.1.0).
This is the host's own formula, not an approximation: a symmetric gap derived from how much taller the surface is than the content in it, floored at 6, plus the shoulder compensation on a notch-styled shell. For a 13pt status glyph on a 37pt notch it resolves to 22 against 12 on an island, a 10pt difference at the very edge of a 70pt wing, which is most of the reason a compact surface laid out against one number looks wrong in the other mode.
Pass the LARGEST thing in the row, not the average: the padding exists to centre content vertically, and the tallest item is what decides whether the row is centred.