When you use Colors.blue, for example this returns a constant Color object, but if you choose to use a shade instead, i.e. Colors.blue[300], then this object is NOT constant. This is important, for example, when you have a method that takes an optional Color parameter, whose default value must be constant. So how do we make a Color shade constant?
static const Color mainColor = Colors.blue \\All good!
static const Color shade = Colors.blue[400] \\ERROR: Const variables must be initialized with a constant value