anchor.diff:  
     GlobalKey get key => new GlobalObjectKey(this);
   
  +  Widget buildSwatch(BuildContext context, Widget child) {
  +    return new GestureDetector(
  +        onTap: () async {
  +          await SchedulerBinding.instance.endOfFrame;
  +          final Rect area = interestingArea;
  +          print('BASH: convert flutter_`printf %02d \$N`.png -crop '
  +              '${area.width}x${area.height}+${area.left}+${area.top} -resize '
  +              '\'400x600>\' ${filename}.png; ((N++))');
  +          Navigator.of(context).pop();
  +        },
  +        child: child);
  +  }
  +
     Rect get interestingArea {
       final RenderBox box = key.currentContext.findRenderObject();
  -    final Rect area = ((box.localToGlobal(Offset.zero) * ui.window.devicePixelRatio) & (box.size * ui.window.devicePixelRatio));
  +    final Rect area =
  +        ((box.localToGlobal(Offset.zero) * ui.window.devicePixelRatio) &
  +            (box.size * ui.window.devicePixelRatio));
       return area;
     }
   }
  
positive.code:           mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              new Text(key, style: style),
              new Text('0x${textColor.value.toRadixString(16).toUpperCase()}', style: style),
            ],
          ),
        ));
      }
      return new Container(
        key: key,
        width: 300.0,
        color: background,
        child: new Column(
          mainAxisSize: MainAxisSize.min,
          children: items,
        ),
      );
    }
  }
  
  Future<Null> main() async {
    const List<int> palette = const <int>[ 50, 100, 200, 300, 400, 500, 600, 700, 800, 900 ];
    const List<int> accentPalette = const <int>[ 100, 200, 400, 700 ];
    const List<int> greyPalette = const <int>[ 50, 100, 200, 300, 350, 400, 500, 600, 700, 800, 850, 900 ];
    final List<Page> pages = <Page>[
      const SwatchPage('Colors.red', Colors.red, palette),
      const SwatchPage('Colors.pink', Colors.pink, palette),
  
negative.code:           mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              new Text(label, style: style),
              new Text('0x${swatch[key].value.toRadixString(16).toUpperCase()}',
                  style: style),
            ],
          ),
        ));
      }
      return buildSwatch(
          context,
          new Material(
            color: Colors.white,
            child: new Center(
              child: new Container(
                key: key,
                width: 300.0,
                child: new Column(
                  mainAxisSize: MainAxisSize.min,
                  children: items,
                ),
              ),
            ),
          ));
    }
  }
  
  