DroppyAnimation
Droppy's named animation presets.
enum DroppyAnimation
Type properties
bounce
static var bounce: Animation { get }
Icon bounce: playful success feedback.
controlMorph
static var controlMorph: Animation { get }
In-place control width and shape morphs (search field expand and similar).
drag
static var drag: Animation { get }
Drag tracking, follows the pointer precisely.
hover
static var hover: Animation { get }
Standard hover animation. Every hover-driven change (buttons, cards, list items) settles on this snappy clock.
hoverQuick
static var hoverQuick: Animation { get }
Quick hover animation: instant feedback, no bounce. For small indicators and icons. Also the clock every native button animates its pressed state on.
hoverScale
static var hoverScale: Animation { get }
Buttery hover scale. For "ready to expand" preview feedback.
listChange
static var listChange: Animation { get }
List reordering, filtering, insertion, and removal.
panelSlide
static var panelSlide: Animation { get }
Panel slide inside a window (sidebar collapse and expand).
press
static var press: Animation { get }
Press feedback, immediate response.
pressSettle
static var pressSettle: Animation { get }
Two-phase press, phase 2: slower settle on release.
pressSnap
static var pressSnap: Animation { get }
Two-phase press, phase 1: quick snap on press down.
release
static var release: Animation { get }
Release feedback, natural bounce back.
scaleHover
static var scaleHover: Animation { get }
Small hover scale for cards, the host's scaleHover.
segmentedSelection
static var segmentedSelection: Animation { get }
Subtle grouped-button selection transition for settings tiles and segmented rows.
state
static var state: Animation { get }
Standard state change: toggles, selection changes, mode switches, structural reveals.
The host's state is its quiet content cross-fade: a smooth 0.27-second curve, not a spring. This preset previously published a bouncier spring of its own invention; a droplet's mode switches settled on a different clock than the identical native switch beside them. Smooth curves carry no bounce, so there is no Reduce Motion branch, exactly like the host.
stateEmphasis
static var stateEmphasis: Animation { get }
Emphasized state change: favorites, flags, important switches.
tabSelect
static var tabSelect: Animation { get }
Tab and segment selection slide.
transition
static var transition: Animation { get }
View entrance and exit: sheets, popovers, panels.
Type methods
notchPressDown(for:)
static func notchPressDown(for screen: NSScreen? = nil) -> Animation
The spring the host drives the collapsed notch's press-down grow on (DroppyKit 0.4.2). Pair with notchPressRelease(for:), resolving the direction at change time: the host picks the down spring while the press is held and the release spring on let-go, so each direction gets its own curve. Slow enough that the growth visibly travels, instant enough to feel 1:1 with the pointer.
notchPressRelease(for:)
static func notchPressRelease(for screen: NSScreen? = nil) -> Animation
The settle-back spring on release or press-cancel (DroppyKit 0.4.2). Softer damping than the press so the surface relaxes back with a hint of elasticity instead of snapping.