Material constructor
- Key? key,
 - MaterialType type = MaterialType.canvas,
 - double elevation = 0.0,
 - Color? color,
 - Color? shadowColor,
 - Color? surfaceTintColor,
 - TextStyle? textStyle,
 - BorderRadiusGeometry? borderRadius,
 - ShapeBorder? shape,
 - bool borderOnForeground = true,
 - Clip clipBehavior = Clip.none,
 - Duration animationDuration = kThemeChangeDuration,
 - Widget? child,
 - bool animateColor = false,
 
Creates a piece of material.
The elevation must be non-negative.
If a shape is specified, then the borderRadius property must be
null and the type property must not be MaterialType.circle. If the
borderRadius is specified, then the type property must not be
MaterialType.circle. In both cases, these restrictions are intended to
catch likely errors.
Implementation
const Material({
  super.key,
  this.type = MaterialType.canvas,
  this.elevation = 0.0,
  this.color,
  this.shadowColor,
  this.surfaceTintColor,
  this.textStyle,
  this.borderRadius,
  this.shape,
  this.borderOnForeground = true,
  this.clipBehavior = Clip.none,
  this.animationDuration = kThemeChangeDuration,
  this.child,
  this.animateColor = false,
}) : assert(elevation >= 0.0),
     assert(!(shape != null && borderRadius != null)),
     assert(!(identical(type, MaterialType.circle) && (borderRadius != null || shape != null)));