anchor.diff:  
     final int width;
     final int height;
  -  final List<Color> colors;
     final ClickHandler onClick;
  -
  -  const MandelbrotView({
  +  final List<String> colors;
  +  double scalePixel;
  +
  +  MandelbrotView({
       this.center: const Complex(0, 0),
       this.radius: 2.0,
   
       this.width: 400,
       this.height: 400,
  -    this.colors,
  -    this.onClick
  -  });
  +    List<Color >colors,
  +    this.onClick}) :
  +      colors = colors == null ? defaultColors : _makeCssColors(colors)
  +  {
  +    var radiusPixels = width < height ? width/2.0 : height/2.0;
  +    scalePixel = radius / radiusPixels;
  +  }
   
     @override
     bool operator==(Object other) {
  
positive.code:       p.nextState = p.nextState.zoom(scaleAmount);
      }
      var center = p.state.center;
      var colors = colorRange(
          new Color.hsl(1, 80, 70),
          new Color.hsl(360 * 10, 100, 0),
          1000);
      return $.Div(inner: [
        new MandelbrotView(center: center, radius: p.state.radius, onClick: onClick,
            colors: colors),
        $.Div(inner: [
          $.Button(onClick: (_) => zoom(0.5), inner: "Zoom In"),
          $.Button(onClick: (_) => zoom(2.0), inner: "Zoom Out"),
  
negative.code: 
      int left = null;
      String prevColor = null;
      int maxIterations = colors.length - 1;
      for (int x = 0; x < width; x++) {
        num real = pixelToCoordX(x);
        int count = probe(real, imag, maxIterations);
        String color = colors[count];
        if (color != prevColor) {
          if (prevColor != null) {
            context.fillStyle = prevColor;
  