FTileStyle.inherit constructor

FTileStyle.inherit({
  1. required FColors colors,
  2. required FTypography typography,
  3. required FStyle style,
})

Creates a FTileStyle that inherits its properties.

Implementation

factory FTileStyle.inherit({required FColors colors, required FTypography typography, required FStyle style}) {
  final border = FWidgetStateMap({
    WidgetState.focused: Border.all(width: style.borderWidth, color: colors.primary),
    WidgetState.any: Border.all(width: style.borderWidth, color: colors.border),
  });

  final divider = FWidgetStateMap({
    WidgetState.any: FDividerStyle(color: colors.border, width: style.borderWidth, padding: EdgeInsets.zero),
  });

  return FTileStyle(
    pressable: FTileStateStyle(
      border: border,
      borderRadius: style.borderRadius,
      backgroundColor: FWidgetStateMap({
        WidgetState.disabled: colors.disable(colors.secondary),
        WidgetState.hovered | WidgetState.pressed: colors.secondary,
        WidgetState.any: colors.background,
      }),
      dividerStyle: divider,
      contentStyle: FTileContentStyle.inherit(colors: colors, typography: typography),
      tappableStyle: style.tappableStyle.copyWith(
        animationTween: FTappableAnimations.none,
        pressedEnterDuration: Duration.zero,
        pressedExitDuration: const Duration(milliseconds: 25),
      ),
    ),
    unpressable: FTileStateStyle(
      border: border,
      borderRadius: style.borderRadius,
      backgroundColor: FWidgetStateMap({
        WidgetState.disabled: colors.disable(colors.secondary),
        WidgetState.any: colors.background,
      }),
      dividerStyle: divider,
      contentStyle: FTileContentStyle.inherit(colors: colors, typography: typography),
      tappableStyle: style.tappableStyle.copyWith(
        cursor: FWidgetStateMap.all(MouseCursor.defer),
        animationTween: FTappableAnimations.none,
        pressedEnterDuration: Duration.zero,
        pressedExitDuration: const Duration(milliseconds: 25),
      ),
    ),
  );
}