anchor.diff:      double radius = size.shortestSide / 2.0;
       Offset center = new Offset(size.width / 2.0, size.height / 2.0);
       Point centerPoint = center.toPoint();
  -    canvas.drawCircle(centerPoint, radius, new Paint()..color = Colors.grey[200]);
  +    canvas.drawCircle(centerPoint, radius, new Paint()..color = backgroundColor);
   
       const double labelPadding = 24.0;
       double labelRadius = radius - labelPadding;
  
positive.code: 
    @override
    Widget build(BuildContext context) {
      ThemeData theme = Theme.of(context);
      TextTheme headerTheme = theme.primaryTextTheme;
  
      Color activeColor;
      Color inactiveColor;
      switch(theme.primaryColorBrightness) {
        case ThemeBrightness.light:
          activeColor = Colors.black87;
          inactiveColor = Colors.black54;
  
negative.code:         inactiveColor = Colors.white70;
          break;
      }
  
      Color backgroundColor;
      switch (themeData.brightness) {
        case ThemeBrightness.light:
          backgroundColor = themeData.primaryColor;
          break;
        case ThemeBrightness.dark:
          backgroundColor = themeData.backgroundColor;
          break;
      }
  
      TextStyle activeStyle = headerTextTheme.display3.copyWith(
        fontSize: _kHeaderFontSize, color: activeColor
      );
      TextStyle inactiveStyle = headerTextTheme.display3.copyWith(
        fontSize: _kHeaderFontSize, color: inactiveColor
      );
  
      TextStyle hourStyle = mode == _TimePickerMode.hour ? activeStyle : inactiveStyle;
      TextStyle minuteStyle = mode == _TimePickerMode.minute ? activeStyle : inactiveStyle;
  
      TextStyle amStyle = headerTextTheme.subhead.copyWith(
        color: selectedTime.period == DayPeriod.am ? activeColor: inactiveColor
      );
      TextStyle pmStyle = headerTextTheme.subhead.copyWith(
        color: selectedTime.period == DayPeriod.pm ? activeColor: inactiveColor
      );
  
      return new Container(
        height: 100.0,
        padding: const EdgeInsets.symmetric(horizontal: 24.0),
        decoration: new BoxDecoration(backgroundColor: backgroundColor),
        child: new Row(
          children: <Widget>[
            new Flexible(
              child: new Align(
                alignment: FractionalOffset.centerRight,
                child: new GestureDetector(
                  onTap: () => _handleChangeMode(_TimePickerMode.hour),
                  child: new Text(selectedTime.hourOfPeriodLabel, style: hourStyle)
                )
              )
            ),
            new Text(':', style: inactiveStyle),
            new Flexible(
              child: new Align(
                alignment: FractionalOffset.centerLeft,
                child: new Row(
                  children: <Widget>[
                    new GestureDetector(
                      onTap: () => _handleChangeMode(_TimePickerMode.minute),
                      child: new Text(selectedTime.minuteLabel, style: minuteStyle)
                    ),
                    new Container(width: 16.0, height: 0.0),  // Horizontal spacer
                    new GestureDetector(
                      onTap: _handleChangeDayPeriod,
                      behavior: HitTestBehavior.opaque,
                      child: new Column(
                        mainAxisAlignment: MainAxisAlignment.collapse,
                        children: <Widget>[
                          new Text('AM', style: amStyle),
                          new Container(width: 0.0, height: 8.0),  // Vertical spsacer
                          new Text('PM', style: pmStyle),
                        ]
                      )
                    )
                  ]
                )
              )
            )
          ]
        )
      );
    }
  }
  
  List<TextPainter> _initPainters(TextTheme textTheme, List<String> labels) {
    TextStyle style = textTheme.subhead;
    List<TextPainter> painters = new List<TextPainter>(labels.length);
    for (int i = 0; i < painters.length; ++i) {
      String label = labels[i];
  