feat: add custom widget

This commit is contained in:
Syaroful 2024-09-05 13:02:14 +07:00
parent f383766812
commit e9911c4309
6 changed files with 93 additions and 2 deletions

View File

@ -1,11 +1,13 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class AppColor { class AppColor {
static const Color green = Color(0xFF00B14F); static const Color primary = Color(0xFF00B14F);
static const Color greenLight = Color(0xFFE6F4F1); static const Color greenLight = Color(0xFFE6F4F1);
static const Color greenDark = Color(0xFF00913A); static const Color greenDark = Color(0xFF00913A);
static const Color greenText = Color(0xFF00B14F); static const Color greenText = Color(0xFF00B14F);
static const Color greenTextLight = Color(0xFFE6F4F1); static const Color greenTextLight = Color(0xFFE6F4F1);
static const Color greenTextDark = Color(0xFF00913A); static const Color greenTextDark = Color(0xFF00913A);
static const Color textDisable = Color(0xFFBDBDBD);
} }

View File

@ -0,0 +1,5 @@
class Extenstion {
static String capitalize(String s) {
return s[0].toUpperCase() + s.substring(1);
}
}

View File

@ -0,0 +1,40 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:kebun_pintar/core/constant/app_color.dart';
class AppButton extends StatelessWidget {
const AppButton({
super.key,
required this.onPressed,
required this.text,
this.backgroundColor = AppColor.primary,
this.foregroundColor = Colors.white,
this.borderSide,
});
final VoidCallback onPressed;
final String text;
final Color backgroundColor;
final Color foregroundColor;
final BorderSide? borderSide;
@override
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: onPressed,
style: ElevatedButton.styleFrom(
shadowColor: Colors.transparent,
textStyle: TextStyle(
fontSize: 14.sp, fontWeight: FontWeight.w500, fontFamily: 'Onest'),
backgroundColor: backgroundColor,
foregroundColor: foregroundColor,
minimumSize: Size(double.infinity, 48.h),
shape: RoundedRectangleBorder(
side: borderSide ?? BorderSide.none,
borderRadius: BorderRadius.circular(10.r),
),
),
child: Text(text),
);
}
}

View File

@ -0,0 +1,35 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:kebun_pintar/core/constant/app_color.dart';
class CustomTextField extends StatelessWidget {
const CustomTextField({
super.key,
required this.controller,
this.hintText = 'Enter Here',
this.suffixIcon,
});
final TextEditingController controller;
final String hintText;
final Widget? suffixIcon;
@override
Widget build(BuildContext context) {
return TextField(
controller: controller,
decoration: InputDecoration(
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: AppColor.textDisable, width: 1.r),
borderRadius: BorderRadius.circular(8.r),
gapPadding: 10.r),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: AppColor.primary, width: 1.r),
borderRadius: BorderRadius.circular(8.r),
gapPadding: 10.r),
hintText: hintText,
// hintStyle: AppTheme.hintStyle,
suffixIcon: suffixIcon),
);
}
}

View File

@ -102,6 +102,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.0" version: "4.0.0"
flutter_screenutil:
dependency: "direct main"
description:
name: flutter_screenutil
sha256: "8239210dd68bee6b0577aa4a090890342d04a136ce1c81f98ee513fc0ce891de"
url: "https://pub.dev"
source: hosted
version: "5.9.3"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter

View File

@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 1.0.0+>1 version: 1.0.0+1
environment: environment:
sdk: ^3.5.1 sdk: ^3.5.1
@ -40,6 +40,7 @@ dependencies:
intl: ^0.19.0 intl: ^0.19.0
dio: ^5.7.0 dio: ^5.7.0
go_router: ^14.2.7 go_router: ^14.2.7
flutter_screenutil: ^5.9.3
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: