diff --git a/lib/pages/signup.dart b/lib/pages/signup.dart new file mode 100644 index 0000000..7ff6fce --- /dev/null +++ b/lib/pages/signup.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; + + +Widget _buildTextField({ + required bool isDarkMode, + required TextEditingController controller, + required String hintText, + bool obscureText = false, + TextInputType? keyboardType, + required IconData prefixIcon, + Widget? suffixIcon, + String? Function(String?)? validator, +}) { + final primaryColor = Color(0xFF137FEC); + final textColor = isDarkMode ? Colors.white : Color(0xFF101922); + final placeholderColor = isDarkMode ? Colors.white70 : Colors.black54; + final inputBackgroundColor = isDarkMode + ? Color(0xFF1C2A3A) + : Color(0xFFF3F6F9); + + return TextFormField( + controller: controller, + obscureText: obscureText, + keyboardType: keyboardType, + style: TextStyle(color: textColor, fontFamily: 'Poppins'), + validator: validator, + decoration: InputDecoration( + hintText: hintText, + hintStyle: TextStyle(color: placeholderColor, fontFamily: 'Poppins'), + filled: true, + fillColor: inputBackgroundColor, + prefixIcon: Icon(prefixIcon, color: placeholderColor), + suffixIcon: suffixIcon, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide.none, + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: primaryColor, width: 2), + ), + errorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: Colors.redAccent, width: 1), + ), + focusedErrorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: Colors.redAccent, width: 2), + ), + contentPadding: const EdgeInsets.symmetric(vertical: 18, horizontal: 16), + ), + ); +}