anchor.diff:        'white70': Colors.white70,
       }),
     ];
  -  print(
  -    'This app will display a sequence of images. For each one, tap "s" in the console to take '
  -    'a screenshot, then tap the screen to advance. When all is done, a script will be dumped that '
  -    'shows the commands to run to convert all the screenshots to images.'
  -  );
  -  StringBuffer buffer = new StringBuffer();
  +  print('This app will display a sequence of images. For each one, tap "s"');
  +  print('in the console to take a screenshot, then tap the screen to');
  +  print('advance. When all is done, a script will be dumped that shows the');
  +  print('commands to run to convert all the screenshots to images.');
  +  print('BASH: N=1 # set this to the number of the first screenshot file');
  +  Map<String, WidgetBuilder> routes = <String, WidgetBuilder>{};
     for (Page page in pages) {
  -    Completer<Null> completer = new Completer<Null>();
  -    runApp(
  -      new GestureDetector(
  -        onTap: () { completer?.complete(); completer = null; },
  -        child: new MaterialApp(
  -          home: new Material(
  -            color: Colors.white,
  -            child: new Center(
  -              child: new Builder(builder: page.build),
  -            ),
  -          ),
  -        ),
  -      ),
  -    );
  -    await SchedulerBinding.instance.endOfFrame;
  -    final Rect area = page.interestingArea;
  -    buffer.writeln('BASH: convert flutter_`printf %02d \$N`.png -crop ${area.width}x${area.height}+${area.left}+${area.top} -resize \'400x600>\' ${page.filename}.png; ((N++))');
  -    await completer.future;
  -  }
  -  debugPrint('BASH: N=1 # set this to the number of the first screenshot file\n$buffer');
  -}
  +    routes['/' + page.filename] = page.build;
  +    print('COLOR: ${page.filename}');
  +  }
  +  runApp(new MaterialApp(onGenerateRoute: (RouteSettings settings) {
  +    if (settings.isInitialRoute &&
  +        settings.name == Navigator.defaultRouteName) {
  +      return new MaterialPageRoute<Null>(
  +        builder: (BuildContext context) {
  +          return new HomePage(pages);
  +        },
  +        settings: settings,
  +      );
  +    } else {
  +      return new MaterialPageRoute<Null>(
  +        builder: routes[settings.name],
  +        settings: settings,
  +      );
  +    }
  +  }));
  +}
  
positive.code:     const SwatchPage('Colors.redAccent', Colors.redAccent, accentPalette),
      const SwatchPage('Colors.pinkAccent', Colors.pinkAccent, accentPalette),
      const SwatchPage('Colors.purpleAccent', Colors.purpleAccent, accentPalette),
      const SwatchPage('Colors.deepPurpleAccent', Colors.deepPurpleAccent, accentPalette),
      const SwatchPage('Colors.indigoAccent', Colors.indigoAccent, accentPalette),
      const SwatchPage('Colors.blueAccent', Colors.blueAccent, accentPalette),
      const SwatchPage('Colors.lightBlueAccent', Colors.lightBlueAccent, accentPalette),
      const SwatchPage('Colors.cyanAccent', Colors.cyanAccent, accentPalette),
      const SwatchPage('Colors.tealAccent', Colors.tealAccent, accentPalette),
      const SwatchPage('Colors.greenAccent', Colors.greenAccent, accentPalette),
      const SwatchPage('Colors.lightGreenAccent', Colors.lightGreenAccent, accentPalette),
      const SwatchPage('Colors.limeAccent', Colors.limeAccent, accentPalette),
      const SwatchPage('Colors.yellowAccent', Colors.yellowAccent, accentPalette),
      const SwatchPage('Colors.amberAccent', Colors.amberAccent, accentPalette),
      const SwatchPage('Colors.orangeAccent', Colors.orangeAccent, accentPalette),
      const SwatchPage('Colors.deepOrangeAccent', Colors.deepOrangeAccent, accentPalette),
      const SwatchPage('Colors.grey', Colors.grey, greyPalette),
      const ColorListPage('Colors.blacks', Colors.white, const <String, Color>{
        'black': Colors.black,
  
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,
                ),
              ),
            ),
          ));
    }
  }
  
  