blobRadius static method

double blobRadius({
  1. required Size blobSize,
  2. required double target,
  3. required double sizeT,
})

Corner radius of the droplet as it inflates from trigger into the sheet.

Starts fully rounded (clamped by maxRadius = shortestSide / 2 so a trigger-sized droplet is a circle) and scales proportionally from 65% of target up to target as sizeT progresses from 0.0 to 1.0. Never balloons above target mid-flight (which would turn a mid-morph sheet into a giant semicircle pill and clip the sheet's top navigation bar controls), matching native iOS 27 .navigationTransition(.zoom) captures.

Implementation

static double blobRadius({
  required Size blobSize,
  required double target,
  required double sizeT,
}) {
  final maxRadius = math.min(blobSize.width, blobSize.height) / 2.0;
  final double s = sizeT.clamp(0.0, 1.0);
  final scaledTarget = target * (0.65 + 0.35 * s);
  return math.min(maxRadius, scaledTarget);
}