To achieve the cross-fade animation, the open button uses an
AnimatedContainer with a scale transform and an AnimatedOpacity.
The open button scales down and fades out when the ExpandableFab
goes from collapsed to expanded. Then, the open button scales up
and fades in when the ExpandableFab goes from expanded to collapsed.

You’ll notice that the open button is wrapped with an
IgnorePointer widget. This is because the open button always exists,
even when it’s transparent. Without the IgnorePointer,
the open button always receives the tap event,
even when the close button is visible.

Create an ActionButton widget

Each of the buttons that expand from the ExpandableFab
have the same design. They’re  blue circles with white icons.
More precisely, the button background color is the ColorScheme.secondary
color, and the icon color is ColorScheme.onSecondary.

Define a new stateless widget called ActionButton to display
these round buttons.