anchor.diff:  /// placed inside Material.) Otherwise, in-progress ink features (e.g., ink
   /// splashes and ink highlights) won't move to account for the new layout.
   ///
  +/// In general, the features of a [Material] should not change over time (e.g. a
  +/// [Material] should not change its [color] or [type]). The one exception is
  +/// the [elevation], changes to which will be animated.
  +///
   /// See also:
   ///
  +/// * [MergeableMaterial], a piece of material that can split and remerge.
  +/// * [Card], a wrapper for a [Material] of [type] [MaterialType.card].
   /// * <https://material.google.com/>
   class Material extends StatefulWidget {
     /// Creates a piece of material.
  
positive.code:     this.elevation: 0,
      this.color,
      this.textStyle,
      this.child
    }) : super(key: key) {
      assert(type != null);
      assert(elevation != null);
    }
  
    /// The widget below this widget in the tree.
  
negative.code:         curve: Curves.fastOutSlowIn,
          duration: kThemeChangeDuration,
          decoration: new BoxDecoration(
            borderRadius: radius,
            boxShadow: config.elevation == 0 ? null : kElevationToShadow[config.elevation],
            shape: config.type == MaterialType.circle ? BoxShape.circle : BoxShape.rectangle
          ),
          child: new Container(
            decoration: new BoxDecoration(
              borderRadius: radius,
              backgroundColor: backgroundColor,
              shape: config.type == MaterialType.circle ? BoxShape.circle : BoxShape.rectangle
            ),
  