ButtonBackingDecoration constructor
ButtonBackingDecoration({
- required buttonDecorationVariants variant,
- required dynamic decorationVariant,
Implementation
ButtonBackingDecoration({required this.variant, required decorationVariant})
: super(decorationVariant: decorationVariant) {
//defining variants for the specific item
switch (variant) {
// -- CIRCLE ( )
case buttonDecorationVariants.circle:
decorationCornerRadius = BorderRadius.circular(100);
break;
// -- ROUNDED PILL (-----)
case buttonDecorationVariants.roundedPill:
decorationCornerRadius = BorderRadius.circular(30);
break;
// -- ROUNDED RECTANGLE {-----}
case buttonDecorationVariants.roundedRectangle:
decorationCornerRadius = BorderRadius.circular(7);
break;
// -- EDGED RECTANGLE [-----]
case buttonDecorationVariants.edgedRectangle:
decorationCornerRadius = BorderRadius.circular(0);
break;
}
switch (decorationVariant) {
// when something is clickable, but not chosen
case decorationPriority.inactive:
{
decorationFill = coloration.inactiveColor();
return;
}
// when something is active, or chosen
case decorationPriority.active:
{
decorationFill = coloration.contrastColor().withOpacity(0.4);
decorationBorder = Border.all(
color: coloration.contrastColor().withOpacity(0.8), width: 1);
break;
}
// when something is standard, but neither inactive nor active.
case decorationPriority.standard:
{
decorationFill = palette.brightness() == Brightness.light
? palette.lightModeFill()
: palette.darkModeFill();
decorationBorder = palette.brightness() == Brightness.light
? palette.lightModeBorder()
: palette.darkModeBorder();
break;
}
// Super important, needs highest UI CTA
case decorationPriority.important:
{
decorationGradient = palette.brightness() == Brightness.light
? palette.darkGradient()
: palette.lightGradient();
decorationBorder = palette.universalBorder();
break;
}
// item is inverted to have colors of the opposite mode.
case decorationPriority.inverted:
{
decorationFill = palette.brightness() == Brightness.light
? palette.darkModeFill()
: palette.lightModeFill();
decorationBorder = palette.brightness() == Brightness.light
? palette.darkModeBorder()
: palette.lightModeBorder();
break;
}
}
}