LoginViewTheme constructor

LoginViewTheme({
  1. TextStyle? formTitleStyle,
  2. TextStyle? welcomeTitleStyle,
  3. TextStyle? welcomeDescriptionStyle,
  4. TextStyle? changeActionTextStyle,
  5. TextStyle? useEmailStyle,
  6. TextStyle? forgotPasswordStyle,
  7. TextStyle? hintTextStyle,
  8. TextStyle? errorTextStyle,
  9. TextStyle? textFormStyle,
  10. InputDecoration? textFormFieldDeco,
  11. Widget? nameIcon,
  12. Widget? emailIcon,
  13. Widget? passwordIcon,
  14. double? formFieldElevation,
  15. Color? formFieldBackgroundColor,
  16. Color? formFieldShadowColor,
  17. BorderRadius? formFieldBorderRadius,
  18. Size? formFieldSize,
  19. Color? formFieldHoverColor,
  20. Color? backgroundColor,
  21. Color? errorBorderColor,
  22. Color? focusedErrorBorderColor,
  23. Color? enabledBorderColor,
  24. Color? focusedBorderColor,
  25. InputBorder? errorBorder,
  26. InputBorder? enabledBorder,
  27. InputBorder? focusedBorder,
  28. InputBorder? focusedErrorBorder,
  29. bool showLabelTexts = true,
  30. Color? socialLoginHoverColor,
  31. BorderSide? socialLoginBorder,
  32. ButtonStyle? changeLangButtonStyle,
  33. Color? changeLangContentColor,
  34. TextStyle? changeLangButtonTextStyle,
  35. ButtonStyle? actionButtonStyle,
  36. ButtonStyle? changeActionButtonStyle,
  37. Curve animationCurve = const Cubic(0.85, 0.40, 0.40, 0.85),
  38. double formWidthRatio = 60,
  39. Duration? animationDuration,
  40. double? formElementsSpacing,
  41. EdgeInsets? formPadding,
  42. Size? logoSize,
  43. double? socialLoginsSpacing,
  44. EdgeInsets? welcomePadding,
  45. AnimatedDialogTheme? dialogTheme,
  46. double? titleDescriptionSpace,
  47. double? spacingWithoutSocial,
  48. double? spacingFormAndAction,
  49. EdgeInsets? forgotPasswordPadding,
  50. double? actionAndChangeActionSpacing,
  51. EdgeInsets? logoPadding,
  52. Color? socialHighlightColor,
  53. EdgeInsets? inputPadding,
  54. double? loadingButtonSize,
  55. bool showLoadingButton = true,
  56. bool showLoadingSocialButton = true,
  57. Color? loadingButtonColor,
  58. Color? loadingSocialButtonColor,
  59. EdgeInsets? titlePadding,
  60. EdgeInsets? descriptionPadding,
  61. EdgeInsets? changeActionPadding,
  62. EdgeInsets? changeActionButtonPadding,
  63. EdgeInsets? useEmailPadding,
  64. EdgeInsets? socialLoginPadding,
  65. EdgeInsets? formTitlePadding,
  66. EdgeInsets? actionButtonPadding,
  67. TextStyle? privacyPolicyStyle,
  68. TextStyle? privacyPolicyLinkStyle,
  69. Color? checkColor,
  70. Color? borderColor,
  71. Color? fillColor,
  72. List<AnimatedComponent> animatedComponentOrder = const <AnimatedComponent>[AnimatedComponent(component: LoginComponents.logo, animationType: AnimationType.left), AnimatedComponent(component: LoginComponents.title, animationType: AnimationType.left), AnimatedComponent(component: LoginComponents.description, animationType: AnimationType.left), AnimatedComponent(component: LoginComponents.formTitle, animationType: AnimationType.left), AnimatedComponent(component: LoginComponents.socialLogins), AnimatedComponent(component: LoginComponents.useEmail), AnimatedComponent(component: LoginComponents.form), AnimatedComponent(component: LoginComponents.notHaveAnAccount), AnimatedComponent(component: LoginComponents.forgotPassword, animationType: AnimationType.left), AnimatedComponent(component: LoginComponents.changeActionButton, animationType: AnimationType.left), AnimatedComponent(component: LoginComponents.policyCheckbox), AnimatedComponent(component: LoginComponents.actionButton, animationType: AnimationType.left)],
})

You can customize the colors, text styles, elevation, borders and lots of other customizable fields implemented in this package. For the values that are indirectly used from theme, you should customize your theme.

Implementation

LoginViewTheme({
  this.formTitleStyle,
  this.welcomeTitleStyle,
  this.welcomeDescriptionStyle,
  this.changeActionTextStyle,
  this.useEmailStyle,
  this.forgotPasswordStyle,
  this.hintTextStyle,
  this.errorTextStyle,
  this.textFormStyle,
  this.textFormFieldDeco,
  this.nameIcon,
  this.emailIcon,
  this.passwordIcon,
  this.formFieldElevation,
  this.formFieldBackgroundColor,
  this.formFieldShadowColor,
  this.formFieldBorderRadius,
  this.formFieldSize,
  this.formFieldHoverColor,
  this.backgroundColor,
  this.errorBorderColor,
  this.focusedErrorBorderColor,
  this.enabledBorderColor,
  this.focusedBorderColor,
  this.errorBorder,
  this.enabledBorder,
  this.focusedBorder,
  this.focusedErrorBorder,
  this.showLabelTexts = true,
  this.socialLoginHoverColor,
  this.socialLoginBorder,
  this.changeLangButtonStyle,
  this.changeLangContentColor,
  this.changeLangButtonTextStyle,
  this.actionButtonStyle,
  this.changeActionButtonStyle,
  this.animationCurve = const Cubic(0.85, 0.40, 0.40, 0.85),
  this.formWidthRatio = 60,
  this.animationDuration,
  this.formElementsSpacing,
  this.formPadding,
  this.logoSize,
  this.socialLoginsSpacing,
  this.welcomePadding,
  this.dialogTheme,
  this.titleDescriptionSpace,
  this.spacingWithoutSocial,
  this.spacingFormAndAction,
  this.forgotPasswordPadding,
  this.actionAndChangeActionSpacing,
  this.logoPadding,
  this.socialHighlightColor,
  this.inputPadding,
  this.loadingButtonSize,
  this.showLoadingButton = true,
  this.showLoadingSocialButton = true,
  this.loadingButtonColor,
  this.loadingSocialButtonColor,
  this.titlePadding,
  this.descriptionPadding,
  this.changeActionPadding,
  this.changeActionButtonPadding,
  this.useEmailPadding,
  this.socialLoginPadding,
  this.formTitlePadding,
  this.actionButtonPadding,
  this.privacyPolicyStyle,
  this.privacyPolicyLinkStyle,
  this.checkColor,
  this.borderColor,
  this.fillColor,
  this.animatedComponentOrder = const <AnimatedComponent>[
    AnimatedComponent(
      component: LoginComponents.logo,
      animationType: AnimationType.left,
    ),
    AnimatedComponent(
      component: LoginComponents.title,
      animationType: AnimationType.left,
    ),
    AnimatedComponent(
      component: LoginComponents.description,
      animationType: AnimationType.left,
    ),
    AnimatedComponent(
      component: LoginComponents.formTitle,
      animationType: AnimationType.left,
    ),
    AnimatedComponent(component: LoginComponents.socialLogins),
    AnimatedComponent(component: LoginComponents.useEmail),
    AnimatedComponent(component: LoginComponents.form),
    AnimatedComponent(component: LoginComponents.notHaveAnAccount),
    AnimatedComponent(
      component: LoginComponents.forgotPassword,
      animationType: AnimationType.left,
    ),
    AnimatedComponent(
      component: LoginComponents.changeActionButton,
      animationType: AnimationType.left,
    ),
    AnimatedComponent(component: LoginComponents.policyCheckbox),
    AnimatedComponent(
      component: LoginComponents.actionButton,
      animationType: AnimationType.left,
    ),
  ],
})  : assert(formWidthRatio >= 50, 'Form width ratio should be at least 50.'),
      assert(
        formElementsSpacing == null || formElementsSpacing <= 70,
        'Spacing between the form elements cannot be more than 70.',
      ),
      assert(
        socialLoginsSpacing == null || socialLoginsSpacing <= 200,
        'Social logins spacing cannot be more than 200.',
      ),
      assert(
        socialLoginsSpacing == null || socialLoginsSpacing <= 200,
        'Social logins spacing cannot be more than 200.',
      ),
      assert(
        logoSize == null || logoSize <= const Size(500, 400),
        'Logo size cannot be more than Size(500, 400).',
      );