contentReveal static method

double contentReveal(
  1. double sizeT, {
  2. required bool isClosing,
})

Opacity of the sheet's content inside the travelling droplet.

Opening fades in across contentRevealStart..contentRevealEnd with an ease-out, so the content is legible while the droplet is still growing rather than popping in at the handoff (issue #446). Closing holds full opacity down to contentConcealStart and fades out linearly to contentConcealEnd, matching native iOS 27 zoom-dismissal recordings.

Implementation

static double contentReveal(double sizeT, {required bool isClosing}) {
  if (isClosing) {
    return ((sizeT - contentConcealEnd) /
            (contentConcealStart - contentConcealEnd))
        .clamp(0.0, 1.0);
  }
  final t =
      ((sizeT - contentRevealStart) / (contentRevealEnd - contentRevealStart))
          .clamp(0.0, 1.0);
  return Curves.easeOut.transform(t);
}