elevation method
elevation.
Matches Material 3 elevated / filled / tonal button elevation tokens
(material_ui defaults): elevated stays at level 1 while pressed.
Implementation
double elevation(M3EButtonStyle style, Set<WidgetState> states) {
final hovered = states.contains(WidgetState.hovered);
final pressed = states.contains(WidgetState.pressed);
final disabled = states.contains(WidgetState.disabled);
if (disabled) {
return 0;
}
switch (style) {
case M3EButtonStyle.elevated:
return _elevatedElevation(pressed: pressed, hovered: hovered);
case M3EButtonStyle.filled:
case M3EButtonStyle.tonal:
if (pressed) {
return 0;
}
if (hovered) {
return 1;
}
return 0;
case M3EButtonStyle.outlined:
case M3EButtonStyle.text:
return 0;
}
}