Fix the app logo in the center of login form
This commit is contained in:
committed by
Dat H. Pham
parent
a16fab5562
commit
af92c6d213
@@ -35,13 +35,7 @@ class LoginView extends BaseLoginView {
|
|||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(top: 67),
|
padding: const EdgeInsets.only(top: 67),
|
||||||
child: (SloganBuilder(arrangedByHorizontal: true)
|
child: _buildAppLogo(context)
|
||||||
..setSloganText(AppLocalizations.of(context).app_name)
|
|
||||||
..setSloganTextAlign(TextAlign.center)
|
|
||||||
..setSloganTextStyle(const TextStyle(color: Colors.black, fontSize: 24, fontWeight: FontWeight.bold))
|
|
||||||
..setSizeLogo(36)
|
|
||||||
..setLogo(imagePaths.icLogoTMail))
|
|
||||||
.build()
|
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(top: 67),
|
padding: const EdgeInsets.only(top: 67),
|
||||||
@@ -70,126 +64,138 @@ class LoginView extends BaseLoginView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildWebForm(BuildContext context) {
|
Widget _buildWebForm(BuildContext context) {
|
||||||
return Stack(
|
return Padding(
|
||||||
children: [
|
padding: const EdgeInsets.only(top: 60, bottom: 60),
|
||||||
Padding(
|
child: Row(
|
||||||
padding: const EdgeInsets.only(top: 60, bottom: 60),
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
child: Row(
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
children: [
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
Padding(
|
||||||
children: [
|
padding: const EdgeInsets.only(right: 86),
|
||||||
Padding(
|
child: Column(
|
||||||
padding: const EdgeInsets.only(right: 86),
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
child: Column(
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
AppLocalizations.of(context).jmapBasedMailSolution,
|
|
||||||
style: const TextStyle(fontSize: 36, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900)
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 24),
|
|
||||||
child: (SloganBuilder(arrangedByHorizontal: true, )
|
|
||||||
..setLogoSVG(imagePaths.icJMAPStandard)
|
|
||||||
..setSizeLogo(48.0)
|
|
||||||
..setPadding(const EdgeInsets.only(left: 12))
|
|
||||||
..setSloganText(AppLocalizations.of(context).jmapStandard)
|
|
||||||
..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail)))
|
|
||||||
.build()
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 16),
|
|
||||||
child: (SloganBuilder(arrangedByHorizontal: true, )
|
|
||||||
..setLogoSVG(imagePaths.icEncrypted)
|
|
||||||
..setSizeLogo(48.0)
|
|
||||||
..setPadding(const EdgeInsets.only(left: 12))
|
|
||||||
..setSloganText(AppLocalizations.of(context).encryptedMailbox)
|
|
||||||
..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail)))
|
|
||||||
.build()
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 16),
|
|
||||||
child: (SloganBuilder(arrangedByHorizontal: true, )
|
|
||||||
..setLogoSVG(imagePaths.icTeam)
|
|
||||||
..setSizeLogo(48.0)
|
|
||||||
..setPadding(const EdgeInsets.only(left: 12))
|
|
||||||
..setSloganText(AppLocalizations.of(context).manageEmailAsATeam)
|
|
||||||
..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail)))
|
|
||||||
.build()
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 16),
|
|
||||||
child: (SloganBuilder(arrangedByHorizontal: true, )
|
|
||||||
..setLogoSVG(imagePaths.icIntegration)
|
|
||||||
..setSizeLogo(48.0)
|
|
||||||
..setPadding(const EdgeInsets.only(left: 12))
|
|
||||||
..setSloganText(AppLocalizations.of(context).multipleIntegrations)
|
|
||||||
..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail)))
|
|
||||||
.build()
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 44),
|
|
||||||
child: Image(
|
|
||||||
image: AssetImage(imagePaths.loginGraphic),
|
|
||||||
fit: BoxFit.fill,
|
|
||||||
alignment: Alignment.center
|
|
||||||
)
|
|
||||||
)
|
|
||||||
],
|
|
||||||
)
|
|
||||||
),
|
|
||||||
Column(
|
|
||||||
children: [
|
children: [
|
||||||
SizedBox(
|
Text(
|
||||||
height: 690,
|
AppLocalizations.of(context).jmapBasedMailSolution,
|
||||||
width: 445,
|
style: const TextStyle(fontSize: 36, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900)
|
||||||
child: Card(
|
|
||||||
shape: RoundedRectangleBorder(
|
|
||||||
borderRadius: BorderRadius.circular(20.0),
|
|
||||||
),
|
|
||||||
elevation: 10,
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(left: 31, right: 31),
|
|
||||||
child: Column(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 66),
|
|
||||||
child: (SloganBuilder(arrangedByHorizontal: true)
|
|
||||||
..setSloganText(AppLocalizations.of(context).app_name)
|
|
||||||
..setSloganTextAlign(TextAlign.center)
|
|
||||||
..setSloganTextStyle(const TextStyle(color: Colors.black, fontSize: 24, fontWeight: FontWeight.bold))
|
|
||||||
..setSizeLogo(36)
|
|
||||||
..setLogo(imagePaths.icLogoTMail))
|
|
||||||
.build()
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 67),
|
|
||||||
child: Text(
|
|
||||||
AppLocalizations.of(context).signIn,
|
|
||||||
style: const TextStyle(fontSize: 32, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900)
|
|
||||||
)
|
|
||||||
),
|
|
||||||
Obx(() => buildLoginMessage(context, loginController.loginState.value)),
|
|
||||||
buildInputCredentialForm(context),
|
|
||||||
buildLoginButton(context)
|
|
||||||
],
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(top: 44, bottom: 10),
|
padding: const EdgeInsets.only(top: 24),
|
||||||
child: SvgPicture.asset(imagePaths.icPowerByLinagora, width: 97, height: 44, fit: BoxFit.fill))
|
child: (SloganBuilder(arrangedByHorizontal: true, )
|
||||||
]
|
..setLogoSVG(imagePaths.icJMAPStandard)
|
||||||
|
..setSizeLogo(48.0)
|
||||||
|
..setPadding(const EdgeInsets.only(left: 12))
|
||||||
|
..setSloganText(AppLocalizations.of(context).jmapStandard)
|
||||||
|
..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail)))
|
||||||
|
.build()
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 16),
|
||||||
|
child: (SloganBuilder(arrangedByHorizontal: true, )
|
||||||
|
..setLogoSVG(imagePaths.icEncrypted)
|
||||||
|
..setSizeLogo(48.0)
|
||||||
|
..setPadding(const EdgeInsets.only(left: 12))
|
||||||
|
..setSloganText(AppLocalizations.of(context).encryptedMailbox)
|
||||||
|
..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail)))
|
||||||
|
.build()
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 16),
|
||||||
|
child: (SloganBuilder(arrangedByHorizontal: true, )
|
||||||
|
..setLogoSVG(imagePaths.icTeam)
|
||||||
|
..setSizeLogo(48.0)
|
||||||
|
..setPadding(const EdgeInsets.only(left: 12))
|
||||||
|
..setSloganText(AppLocalizations.of(context).manageEmailAsATeam)
|
||||||
|
..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail)))
|
||||||
|
.build()
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 16),
|
||||||
|
child: (SloganBuilder(arrangedByHorizontal: true, )
|
||||||
|
..setLogoSVG(imagePaths.icIntegration)
|
||||||
|
..setSizeLogo(48.0)
|
||||||
|
..setPadding(const EdgeInsets.only(left: 12))
|
||||||
|
..setSloganText(AppLocalizations.of(context).multipleIntegrations)
|
||||||
|
..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail)))
|
||||||
|
.build()
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 44),
|
||||||
|
child: Image(
|
||||||
|
image: AssetImage(imagePaths.loginGraphic),
|
||||||
|
fit: BoxFit.fill,
|
||||||
|
alignment: Alignment.center
|
||||||
|
)
|
||||||
|
)
|
||||||
|
],
|
||||||
)
|
)
|
||||||
],
|
),
|
||||||
|
Column(
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 690,
|
||||||
|
width: 445,
|
||||||
|
child: Card(
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(20.0),
|
||||||
|
),
|
||||||
|
elevation: 10,
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(left: 31, right: 31),
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 66),
|
||||||
|
child: _buildAppLogo(context)
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 67),
|
||||||
|
child: Text(
|
||||||
|
AppLocalizations.of(context).signIn,
|
||||||
|
style: const TextStyle(fontSize: 32, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
Obx(() => buildLoginMessage(context, loginController.loginState.value)),
|
||||||
|
buildInputCredentialForm(context),
|
||||||
|
buildLoginButton(context)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 44, bottom: 10),
|
||||||
|
child: SvgPicture.asset(imagePaths.icPowerByLinagora, width: 97, height: 44, fit: BoxFit.fill)
|
||||||
|
)
|
||||||
|
]
|
||||||
)
|
)
|
||||||
)
|
],
|
||||||
],
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildAppLogo(BuildContext buildContext) {
|
||||||
|
return Row(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
Image(
|
||||||
|
image: AssetImage(imagePaths.icLogoTMail),
|
||||||
|
fit: BoxFit.fill,
|
||||||
|
width: 36,
|
||||||
|
height: 36,
|
||||||
|
alignment: Alignment.center),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 10),
|
||||||
|
child: Text(
|
||||||
|
AppLocalizations.of(buildContext).app_name,
|
||||||
|
style: const TextStyle(color: Colors.black, fontSize: 24, fontWeight: FontWeight.bold),
|
||||||
|
textAlign: TextAlign.center),
|
||||||
|
),
|
||||||
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user