import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; ThemeData theme({bool? useMaterial3}) { return ThemeData( useMaterial3: useMaterial3, scaffoldBackgroundColor: Colors.white, appBarTheme: appBarTheme(), textTheme: textTheme(), fontFamily: 'Nunito', inputDecorationTheme: inputDecorationTheme(), visualDensity: VisualDensity.adaptivePlatformDensity, textSelectionTheme: const TextSelectionThemeData( cursorColor: Color(0xFFFFC700), ), ); } Theme disableMaterial3({required Widget child}) { return Theme(data: theme(useMaterial3: false), child: child); } Theme enableMaterial3({required Widget child}) { return Theme(data: theme(useMaterial3: true), child: child); } AppBarTheme appBarTheme() { return const AppBarTheme( color: Colors.white, // backwardsCompatibility: false, systemOverlayStyle: SystemUiOverlayStyle( statusBarColor: Colors.white, statusBarIconBrightness: Brightness.dark, ), surfaceTintColor: Colors.white, elevation: 0, // textTheme: TextTheme( // headline6: TextStyle(color: Color(0XFF8B8B8B), fontSize: 18), // ), ); } TextTheme textTheme() { return const TextTheme( bodyLarge: TextStyle( color: Color(0xFF0E0F0F), fontSize: 16, fontWeight: FontWeight.normal, ), ); } InputDecorationTheme inputDecorationTheme() { // OutlineInputBorder outlineInputBorder = OutlineInputBorder( // borderRadius: BorderRadius.circular(28), // borderSide: BorderSide(color: Pallete.textPrimary), // gapPadding: 10, // ); // return const InputDecorationTheme( // // If you are using latest version of flutter then lable text and hint text shown like this // // if you r using flutter less then 1.20.* then maybe this is not working properly // // if we are define our floatingLabelBehavior in our theme then it's not applayed // // floatingLabelBehavior: FloatingLabelBehavior.always, // // contentPadding: EdgeInsets.symmetric(horizontal: 42, vertical: 20), // // enabledBorder: outlineInputBorder, // // focusedBorder: outlineInputBorder, // // border: outlineInputBorder, // ); return const InputDecorationTheme( focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: Color(0xFFFFC700), // Ganti dengan warna yang diinginkan width: 2, // Atur lebar border sesuai kebutuhan ), borderRadius: BorderRadius.all(Radius.circular(8)))); }