import 'package:flutter/material.dart'; ///登陆Box class LogoBox extends StatelessWidget { const LogoBox({super.key}); @override Widget build(BuildContext context) { return Container( margin: EdgeInsets.only(bottom: 40), child: Column( children: [ Image.asset( "assets/image/logo.png", width: 43, ), Text( "FoodCura", style: Theme.of(context).textTheme.titleSmall, ), ], ), ); } } ///头部文案 class PageHeader extends StatelessWidget { const PageHeader({super.key}); @override Widget build(BuildContext context) { return Container( margin: EdgeInsets.only(bottom: 30), child: Column( children: [ Text( "Create an account", style: TextStyle(fontWeight: FontWeight.w700), ), Text( "Enter your email to sign up for this app", style: Theme.of(context).textTheme.bodySmall, ), ], ), ); } } ///输入框 class InputBox extends StatelessWidget { final bool obscureText; final String hintText; final TextEditingController controller; final Widget? suffix; const InputBox({ super.key, this.obscureText = false, required this.hintText, required this.controller, this.suffix, }); @override Widget build(BuildContext context) { //边框 var inputBorder = OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: BorderSide( color: Theme.of(context).colorScheme.surfaceContainer, ), ); return TextField( controller: controller, maxLength: 100, obscureText: obscureText, style: Theme.of(context).textTheme.bodyMedium, decoration: InputDecoration( hintText: hintText, hintStyle: Theme.of(context).textTheme.labelMedium, counterText: '', border: inputBorder, enabledBorder: inputBorder, suffix: suffix, suffixIconConstraints: BoxConstraints( minWidth: 0, minHeight: 0, ), ), ); } } ///分割线 class LoginDivider extends StatelessWidget { const LoginDivider({super.key}); @override Widget build(BuildContext context) { return Container( margin: EdgeInsets.only(top: 20, bottom: 20), child: Row( spacing: 8, children: [ Expanded( child: Container( height: 1, color: Theme.of(context).colorScheme.surfaceContainer, ), ), Text( "or", style: Theme.of(context).textTheme.labelMedium, ), Expanded( child: Container( height: 1, color: Theme.of(context).colorScheme.surfaceContainer, ), ), ], ), ); } } ///其他登陆按钮 class OtherButton extends StatelessWidget { final Function() onTap; final String title; final String icon; const OtherButton({ super.key, required this.onTap, required this.title, required this.icon, }); @override Widget build(BuildContext context) { return InkWell( onTap: onTap, child: Container( padding: EdgeInsets.all(15), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), color: Theme.of(context).colorScheme.surfaceContainer, ), child: Row( spacing: 10, mainAxisAlignment: MainAxisAlignment.center, children: [ Image.asset(icon, width: 20), Text( title, style: Theme.of(context).textTheme.bodySmall, ), ], ), ), ); } }