Skip to content

Commit 35c0b01

Browse files
authored
Merge pull request #84 from layground/dev/mvp
Bug fixes and styling refresh
2 parents 8145bd7 + d78534e commit 35c0b01

File tree

95 files changed

+971
-546
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+971
-546
lines changed

lib/core/components/buttons/button_chip.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class ButtonChip extends StatelessWidget {
2929
border: Border.all(
3030
color: active
3131
? context.purpleBorderLighter
32-
: context.purpleButtonBorder,
32+
: context.secondaryBorderLighter,
3333
),
3434
borderRadius: BorderRadius.circular(AppRadius.radiusFull),
3535
),
@@ -40,11 +40,11 @@ class ButtonChip extends StatelessWidget {
4040
AppSpacing.spacing8,
4141
),
4242
child: Row(
43-
mainAxisAlignment: MainAxisAlignment.center,
43+
mainAxisAlignment: MainAxisAlignment.start,
4444
children: [
4545
HugeIcon(
4646
icon: active
47-
? HugeIcons.strokeRoundedCheckmarkCircle01
47+
? HugeIcons.strokeRoundedCheckmarkCircle02
4848
: HugeIcons.strokeRoundedCircle,
4949
color: active ? context.purpleIcon : null,
5050
),

lib/core/components/buttons/menu_tile_button.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class MenuTileButton extends StatelessWidget {
3535
? context.disabledTileBackground
3636
: context.purpleBackground,
3737
shape: RoundedRectangleBorder(
38-
borderRadius: BorderRadius.circular(AppRadius.radius8),
38+
borderRadius: BorderRadius.circular(AppRadius.radius12),
3939
// Use context.colors.outline or a custom color that adapts
4040
side: BorderSide(color: context.purpleBorderLighter),
4141
),
@@ -45,10 +45,10 @@ class MenuTileButton extends StatelessWidget {
4545
), // Ensure text color adapts
4646
subtitle: subtitle != null
4747
? DefaultTextStyle.merge(
48-
style: AppTextStyles.body3.copyWith(
48+
style: AppTextStyles.body4.copyWith(
4949
color: disabled
5050
? context.disabledTileForeground
51-
: context.colors.onSurfaceVariant,
51+
: context.placeholderForeground,
5252
), // Subtitle color
5353
child: subtitle!,
5454
)

lib/core/components/buttons/secondary_button.dart

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,31 @@ class SecondaryButton extends OutlinedButton {
2222
shape: RoundedRectangleBorder(
2323
borderRadius: BorderRadius.circular(AppSpacing.spacing8),
2424
),
25+
padding: const EdgeInsets.symmetric(
26+
vertical: AppSpacing.spacing16,
27+
),
2528
),
2629
child: isLoading
2730
? SizedBox.square(dimension: 22, child: LoadingIndicator())
2831
: Row(
2932
mainAxisAlignment: MainAxisAlignment.center,
3033
children: [
31-
if (icon != null) HugeIcon(icon: icon, size: 22),
34+
if (icon != null)
35+
HugeIcon(
36+
icon: icon,
37+
size: 22,
38+
color: context.purpleIcon,
39+
),
3240
if (label != null) const Gap(AppSpacing.spacing8),
3341
if (label != null)
3442
Padding(
3543
padding: const EdgeInsets.only(top: 1),
36-
child: Text(label, style: AppTextStyles.body3.semibold),
44+
child: Text(
45+
label,
46+
style: AppTextStyles.body3.semibold.copyWith(
47+
color: context.secondaryText,
48+
),
49+
),
3750
),
3851
],
3952
),

lib/core/components/buttons/small_button.dart

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:pockaw/core/constants/app_colors.dart';
55
import 'package:pockaw/core/constants/app_radius.dart';
66
import 'package:pockaw/core/constants/app_spacing.dart';
77
import 'package:pockaw/core/constants/app_text_styles.dart';
8+
import 'package:pockaw/core/extensions/text_style_extensions.dart';
89

910
class SmallButton extends StatelessWidget {
1011
final String label;
@@ -33,14 +34,16 @@ class SmallButton extends StatelessWidget {
3334
onTap: onTap,
3435
borderRadius: BorderRadius.circular(AppRadius.radius8),
3536
child: Container(
36-
padding: const EdgeInsetsDirectional.symmetric(
37-
horizontal: AppSpacing.spacing4,
38-
vertical: AppSpacing.spacing4,
37+
padding: const EdgeInsets.fromLTRB(
38+
AppSpacing.spacing12,
39+
AppSpacing.spacing4,
40+
AppSpacing.spacing8,
41+
AppSpacing.spacing4,
3942
),
4043
decoration: BoxDecoration(
4144
color: backgroundColor ?? context.secondaryButtonBackground,
4245
border: Border.all(color: borderColor ?? context.secondaryBorder),
43-
borderRadius: BorderRadius.circular(AppRadius.radius8),
46+
borderRadius: BorderRadius.circular(AppRadius.radius24),
4447
),
4548
child: Row(
4649
mainAxisSize: MainAxisSize.min,
@@ -57,15 +60,18 @@ class SmallButton extends StatelessWidget {
5760
),
5861
Text(
5962
label,
60-
style: labelTextStyle.copyWith(color: foregroundColor),
63+
style: labelTextStyle.bold.copyWith(
64+
color: foregroundColor,
65+
height: 2,
66+
),
6167
),
6268
],
6369
),
64-
if (suffixIcon != null) const Gap(AppSpacing.spacing8),
70+
if (suffixIcon != null) const Gap(AppSpacing.spacing4),
6571
if (suffixIcon != null)
6672
HugeIcon(
6773
icon: suffixIcon!,
68-
size: 14,
74+
size: 12,
6975
color: foregroundColor ?? AppColors.secondary400,
7076
),
7177
],

lib/core/components/charts/chart_container.dart

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ class ChartContainer extends StatelessWidget {
2929
margin: margin,
3030
padding: padding ?? const EdgeInsets.all(AppSpacing.spacing16),
3131
decoration: BoxDecoration(
32-
color: context.purpleBackground,
32+
color: context.secondaryBackground,
3333
borderRadius: BorderRadius.circular(AppRadius.radius12),
34-
border: Border.all(color: AppColors.neutralAlpha25),
34+
border: Border.all(color: context.secondaryBorderLighter),
3535
),
3636
child: Column(
3737
spacing: AppSpacing.spacing4,
@@ -44,14 +44,22 @@ class ChartContainer extends StatelessWidget {
4444
),
4545
Text(
4646
subtitle,
47-
style: AppTextStyles.body3.copyWith(
47+
style: AppTextStyles.body4.copyWith(
4848
color: context.cardSubtitleText,
4949
),
5050
),
51-
Gap(AppSpacing.spacing16),
51+
Divider(color: context.secondaryBorderLighter),
52+
Gap(AppSpacing.spacing8),
5253
Expanded(child: chart),
5354
],
5455
),
5556
);
5657
}
58+
59+
static Widget errorText([String text = 'No data to display']) => Center(
60+
child: Text(
61+
text,
62+
style: AppTextStyles.body3,
63+
),
64+
);
5765
}

lib/core/components/date_picker/custom_date_picker.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class CustomDatePicker {
3232
return await context.openBottomSheet<DateTime?>(
3333
child: DateTimePickerDialog(
3434
title: title,
35-
initialdate: selectedDate,
35+
initialDate: selectedDate,
3636
onDateSelected: onDateSelected,
3737
onDateTimeChanged: onDateTimeChanged,
3838
),

lib/core/components/date_picker/date_time_picker_dialog.dart

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,19 @@ import 'package:pockaw/core/components/bottom_sheets/custom_bottom_sheet.dart';
55
import 'package:pockaw/core/components/buttons/primary_button.dart';
66
import 'package:pockaw/core/constants/app_colors.dart';
77
import 'package:pockaw/core/constants/app_spacing.dart';
8+
import 'package:pockaw/core/constants/app_text_styles.dart';
9+
import 'package:pockaw/core/extensions/text_style_extensions.dart';
810

911
class DateTimePickerDialog extends StatelessWidget {
1012
final String title;
11-
final DateTime? initialdate;
13+
final DateTime? initialDate;
1214
final ValueChanged<DateTime>? onDateTimeChanged;
1315
final ValueChanged<DateTime>? onDateSelected;
1416

1517
const DateTimePickerDialog({
1618
super.key,
1719
this.title = 'Select Date & Time',
18-
this.initialdate,
20+
this.initialDate,
1921
this.onDateTimeChanged,
2022
this.onDateSelected,
2123
});
@@ -29,14 +31,63 @@ class DateTimePickerDialog extends StatelessWidget {
2931
spacing: AppSpacing.spacing20,
3032
children: [
3133
CupertinoCalendar(
32-
mainColor: AppColors.purple,
34+
mainColor: AppColors.primary,
3335
minimumDateTime: DateTime.now().subtract(Duration(days: 30)),
34-
initialDateTime: initialdate,
36+
initialDateTime: initialDate,
3537
maximumDateTime: DateTime.now(),
3638
timeLabel: 'Time',
3739
mode: CupertinoCalendarMode.dateTime,
3840
onDateTimeChanged: onDateTimeChanged,
3941
onDateSelected: onDateSelected,
42+
weekdayDecoration: CalendarWeekdayDecoration(
43+
textStyle: AppTextStyles.body3.extraBold,
44+
),
45+
headerDecoration: CalendarHeaderDecoration(
46+
monthDateStyle: AppTextStyles.body3.extraBold.copyWith(
47+
color: AppColors.primary,
48+
),
49+
monthDateArrowColor: AppColors.primary,
50+
backwardButtonColor: AppColors.primary,
51+
forwardButtonColor: AppColors.primary,
52+
backwardDisabledButtonColor: context.disabledText,
53+
forwardDisabledButtonColor: context.disabledText,
54+
),
55+
footerDecoration: CalendarFooterDecoration(
56+
timeLabelStyle: AppTextStyles.body3.extraBold.copyWith(
57+
color: AppColors.primary,
58+
),
59+
timeStyle: AppTextStyles.body3.extraBold.copyWith(
60+
color: AppColors.primary,
61+
),
62+
),
63+
monthPickerDecoration: CalendarMonthPickerDecoration(
64+
defaultDayStyle: CalendarMonthPickerDefaultDayStyle(
65+
textStyle: AppTextStyles.body3,
66+
),
67+
disabledDayStyle: CalendarMonthPickerDisabledDayStyle(
68+
textStyle: AppTextStyles.body3.copyWith(
69+
color: context.disabledText,
70+
),
71+
),
72+
selectedDayStyle: CalendarMonthPickerSelectedDayStyle(
73+
textStyle: AppTextStyles.body3.extraBold.copyWith(
74+
color: AppColors.purple,
75+
),
76+
backgroundCircleColor: context.purpleIcon,
77+
),
78+
currentDayStyle: CalendarMonthPickerCurrentDayStyle(
79+
textStyle: AppTextStyles.body3.extraBold.copyWith(
80+
color: AppColors.primary,
81+
),
82+
),
83+
selectedCurrentDayStyle:
84+
CalendarMonthPickerSelectedCurrentDayStyle(
85+
textStyle: AppTextStyles.body3.extraBold.copyWith(
86+
color: AppColors.purple,
87+
),
88+
backgroundCircleColor: context.purpleIcon,
89+
),
90+
),
4091
),
4192
PrimaryButton(
4293
label: 'Confirm',

lib/core/components/form_fields/custom_confirm_checkbox.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class CustomConfirmCheckbox extends StatelessWidget {
3939
context,
4040
onPressed: onChanged,
4141
icon: checked
42-
? HugeIcons.strokeRoundedCheckmarkSquare01
42+
? HugeIcons.strokeRoundedCheckmarkSquare02
4343
: HugeIcons.strokeRoundedSquare,
4444
),
4545
const Gap(AppSpacing.spacing8),

lib/core/components/form_fields/custom_text_field.dart

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:pockaw/core/components/form_fields/custom_input_border.dart';
66
import 'package:pockaw/core/constants/app_colors.dart';
77
import 'package:pockaw/core/constants/app_spacing.dart';
88
import 'package:pockaw/core/constants/app_text_styles.dart';
9+
import 'package:pockaw/core/extensions/text_style_extensions.dart';
910

1011
class CustomTextField extends TextField {
1112
static const int maxInputLength = 30;
@@ -42,15 +43,24 @@ class CustomTextField extends TextField {
4243
decoration: InputDecoration(
4344
hintText: hint,
4445
hintStyle: AppTextStyles.body3.copyWith(
45-
color: context?.placeholderForeground,
46+
color: onTap != null
47+
? context?.placeholderForeground
48+
: context?.placeholderButtonForeground,
4649
),
4750
label: label == null
4851
? const SizedBox()
4952
: Padding(
5053
padding: const EdgeInsets.only(top: 6),
5154
child: Row(
5255
children: [
53-
Text(label, style: AppTextStyles.body3),
56+
Text(
57+
label,
58+
style: AppTextStyles.body3.bold.copyWith(
59+
color: onTap != null
60+
? context?.formButtonLabelTextColor
61+
: context?.formLabelTextColor,
62+
),
63+
),
5464
if (isRequired) const Gap(AppSpacing.spacing4),
5565
if (isRequired)
5666
Text(
@@ -94,7 +104,11 @@ class CustomTextField extends TextField {
94104
padding: const EdgeInsets.symmetric(
95105
horizontal: AppSpacing.spacing12,
96106
),
97-
child: HugeIcon(icon: prefixIcon, size: 24),
107+
child: HugeIcon(
108+
icon: prefixIcon,
109+
size: 24,
110+
color: context?.purpleIcon,
111+
),
98112
),
99113
suffixIcon: suffixIcon == null
100114
? null
@@ -107,7 +121,7 @@ class CustomTextField extends TextField {
107121
),
108122
child: HugeIcon(
109123
icon: suffixIcon,
110-
color: AppColors.neutral200,
124+
color: context?.purpleIcon,
111125
size: 24,
112126
),
113127
),
@@ -121,7 +135,7 @@ class CustomTextField extends TextField {
121135
}) => CustomInputBorder(
122136
borderSide: BorderSide(
123137
color: !asButton
124-
? AppColors.neutral600
138+
? AppColors.neutral700
125139
: context?.purpleButtonBorder ?? AppColors.purple,
126140
),
127141
borderRadius: BorderRadius.circular(AppSpacing.spacing8),

lib/core/components/progress_indicators/custom_progress_indicator_legend.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:flutter/material.dart';
22
import 'package:pockaw/core/constants/app_spacing.dart';
33
import 'package:pockaw/core/constants/app_text_styles.dart';
4+
import 'package:pockaw/core/extensions/text_style_extensions.dart';
45

56
class CustomProgressIndicatorLegend extends StatelessWidget {
67
final String label;
@@ -18,7 +19,7 @@ class CustomProgressIndicatorLegend extends StatelessWidget {
1819
spacing: AppSpacing.spacing4,
1920
children: [
2021
CircleAvatar(backgroundColor: color, radius: 5),
21-
Text(label, style: AppTextStyles.body5),
22+
Text(label, style: AppTextStyles.body5.semibold),
2223
],
2324
);
2425
}

0 commit comments

Comments
 (0)