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.