resolvedStops property

List<double> get resolvedStops

stops when they give one position per colour, otherwise the even spread. The engine refuses any other shape, so this is what reaches it.

Implementation

List<double> get resolvedStops {
  if (stops case var s? when s.length == colors.length) return s;
  var n = colors.length;
  return [for (var i = 0; i < n; i++) n == 1 ? 0.0 : i / (n - 1)];
}