Add application source code and update project structure

This commit is contained in:
PhongMacbook
2025-11-05 03:20:59 +07:00
parent 95f8296211
commit b145c7844f
155 changed files with 9171 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import 'advice_widget.dart' show AdviceWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class AdviceModel extends FlutterFlowModel<AdviceWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,241 @@
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'advice_model.dart';
export 'advice_model.dart';
class AdviceWidget extends StatefulWidget {
const AdviceWidget({super.key});
@override
State<AdviceWidget> createState() => _AdviceWidgetState();
}
class _AdviceWidgetState extends State<AdviceWidget> {
late AdviceModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => AdviceModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
FlutterFlowTheme.of(context).primaryBackground,
FlutterFlowTheme.of(context).secondaryBackground
],
stops: [0.0, 1.0],
begin: AlignmentDirectional(0.0, -1.0),
end: AlignmentDirectional(0, 1.0),
),
borderRadius: BorderRadius.circular(16.0),
shape: BoxShape.rectangle,
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 1.0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 12.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(12.0),
child: Image.asset(
'assets/images/images.jpg',
width: 120.0,
height: 120.0,
fit: BoxFit.cover,
),
),
Expanded(
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'USING SUNSCREEN',
style: FlutterFlowTheme.of(context)
.headlineSmall
.override(
fontFamily: 'Inter Tight',
letterSpacing: 0.0,
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 8.0, 0.0, 0.0),
child: Text(
'SPF requirements 50+',
style: FlutterFlowTheme.of(context)
.labelLarge
.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
],
),
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 24.0, 0.0, 12.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Stack(
children: [
FFButtonWidget(
onPressed: () {
print('followButton pressed ...');
},
text: 'Follow',
options: FFButtonOptions(
width: 90.0,
height: 36.0,
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: FlutterFlowTheme.of(context).primaryText,
textStyle:
FlutterFlowTheme.of(context).titleSmall.override(
fontFamily: 'Inter Tight',
color: FlutterFlowTheme.of(context)
.secondaryBackground,
fontSize: 14.0,
letterSpacing: 0.0,
),
elevation: 2.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
FFButtonWidget(
onPressed: () {
print('following pressed ...');
},
text: 'Following',
options: FFButtonOptions(
width: 90.0,
height: 36.0,
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color:
FlutterFlowTheme.of(context).secondaryBackground,
textStyle:
FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
elevation: 0.0,
borderSide: BorderSide(
color:
FlutterFlowTheme.of(context).primaryBackground,
width: 2.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
],
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(12.0, 0.0, 0.0, 0.0),
child: FlutterFlowIconButton(
borderColor: Colors.transparent,
borderRadius: 30.0,
borderWidth: 1.0,
buttonSize: 44.0,
icon: Icon(
Icons.notifications_none,
color: FlutterFlowTheme.of(context).secondaryText,
size: 24.0,
),
onPressed: () {
print('IconButton pressed ...');
},
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 0.0, 0.0),
child: FlutterFlowIconButton(
borderColor: Colors.transparent,
borderRadius: 30.0,
borderWidth: 1.0,
buttonSize: 44.0,
icon: Icon(
Icons.settings_outlined,
color: FlutterFlowTheme.of(context).secondaryText,
size: 24.0,
),
onPressed: () {
print('IconButton pressed ...');
},
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 0.0, 0.0),
child: FlutterFlowIconButton(
borderColor: Colors.transparent,
borderRadius: 30.0,
borderWidth: 1.0,
buttonSize: 44.0,
icon: Icon(
Icons.keyboard_control,
color: FlutterFlowTheme.of(context).secondaryText,
size: 24.0,
),
onPressed: () {
print('IconButton pressed ...');
},
),
),
],
),
),
],
),
),
);
}
}

View File

@@ -0,0 +1,16 @@
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import 'advice_copy_widget.dart' show AdviceCopyWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class AdviceCopyModel extends FlutterFlowModel<AdviceCopyWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,241 @@
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'advice_copy_model.dart';
export 'advice_copy_model.dart';
class AdviceCopyWidget extends StatefulWidget {
const AdviceCopyWidget({super.key});
@override
State<AdviceCopyWidget> createState() => _AdviceCopyWidgetState();
}
class _AdviceCopyWidgetState extends State<AdviceCopyWidget> {
late AdviceCopyModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => AdviceCopyModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
FlutterFlowTheme.of(context).primaryBackground,
FlutterFlowTheme.of(context).secondaryBackground
],
stops: [0.0, 1.0],
begin: AlignmentDirectional(0.0, -1.0),
end: AlignmentDirectional(0, 1.0),
),
borderRadius: BorderRadius.circular(16.0),
shape: BoxShape.rectangle,
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 1.0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 12.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(12.0),
child: Image.asset(
'assets/images/How_to_wear_long_coat_for_men_titled_design_10.webp',
width: 120.0,
height: 120.0,
fit: BoxFit.cover,
),
),
Expanded(
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'WEAR A COAT',
style: FlutterFlowTheme.of(context)
.headlineSmall
.override(
fontFamily: 'Inter Tight',
letterSpacing: 0.0,
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 8.0, 0.0, 0.0),
child: Text(
'Long-sleeved and thick',
style: FlutterFlowTheme.of(context)
.labelLarge
.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
],
),
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 24.0, 0.0, 12.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Stack(
children: [
FFButtonWidget(
onPressed: () {
print('followButton pressed ...');
},
text: 'Follow',
options: FFButtonOptions(
width: 90.0,
height: 36.0,
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: FlutterFlowTheme.of(context).primaryText,
textStyle:
FlutterFlowTheme.of(context).titleSmall.override(
fontFamily: 'Inter Tight',
color: FlutterFlowTheme.of(context)
.secondaryBackground,
fontSize: 14.0,
letterSpacing: 0.0,
),
elevation: 2.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
FFButtonWidget(
onPressed: () {
print('following pressed ...');
},
text: 'Following',
options: FFButtonOptions(
width: 90.0,
height: 36.0,
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color:
FlutterFlowTheme.of(context).secondaryBackground,
textStyle:
FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
elevation: 0.0,
borderSide: BorderSide(
color:
FlutterFlowTheme.of(context).primaryBackground,
width: 2.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
],
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(12.0, 0.0, 0.0, 0.0),
child: FlutterFlowIconButton(
borderColor: Colors.transparent,
borderRadius: 30.0,
borderWidth: 1.0,
buttonSize: 44.0,
icon: Icon(
Icons.notifications_none,
color: FlutterFlowTheme.of(context).secondaryText,
size: 24.0,
),
onPressed: () {
print('IconButton pressed ...');
},
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 0.0, 0.0),
child: FlutterFlowIconButton(
borderColor: Colors.transparent,
borderRadius: 30.0,
borderWidth: 1.0,
buttonSize: 44.0,
icon: Icon(
Icons.settings_outlined,
color: FlutterFlowTheme.of(context).secondaryText,
size: 24.0,
),
onPressed: () {
print('IconButton pressed ...');
},
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 0.0, 0.0),
child: FlutterFlowIconButton(
borderColor: Colors.transparent,
borderRadius: 30.0,
borderWidth: 1.0,
buttonSize: 44.0,
icon: Icon(
Icons.keyboard_control,
color: FlutterFlowTheme.of(context).secondaryText,
size: 24.0,
),
onPressed: () {
print('IconButton pressed ...');
},
),
),
],
),
),
],
),
),
);
}
}

View File

@@ -0,0 +1,14 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'battery_widget.dart' show BatteryWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class BatteryModel extends FlutterFlowModel<BatteryWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,155 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'battery_model.dart';
export 'battery_model.dart';
class BatteryWidget extends StatefulWidget {
const BatteryWidget({super.key});
@override
State<BatteryWidget> createState() => _BatteryWidgetState();
}
class _BatteryWidgetState extends State<BatteryWidget> {
late BatteryModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => BatteryModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
width: 349.0,
height: 150.0,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(
0.0,
2.0,
),
spreadRadius: 0.0,
)
],
borderRadius: BorderRadius.circular(16.0),
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Battery Case',
style:
FlutterFlowTheme.of(context).headlineSmall.override(
fontFamily: 'Inter Tight',
letterSpacing: 0.0,
),
),
Text(
'PhoBroth\'s Case',
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Inter',
color: FlutterFlowTheme.of(context).secondaryText,
letterSpacing: 0.0,
),
),
],
),
Container(
width: 60.0,
height: 60.0,
decoration: BoxDecoration(
color: Color(0x4DD23939),
borderRadius: BorderRadius.circular(30.0),
),
child: Icon(
Icons.battery_charging_full,
color: Color(0xFFDD7272),
size: 30.0,
),
),
],
),
Align(
alignment: AlignmentDirectional(-1.0, 0.0),
child: Text(
'Charge Level',
style: FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 200.0,
height: 20.0,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).alternate,
borderRadius: BorderRadius.circular(10.0),
),
child: Container(
width: 160.0,
height: 20.0,
decoration: BoxDecoration(
color: Color(0xFFD42525),
borderRadius: BorderRadius.circular(10.0),
),
),
),
Text(
'80%',
style: FlutterFlowTheme.of(context).bodySmall.override(
fontFamily: 'Inter',
color: FlutterFlowTheme.of(context).secondaryText,
letterSpacing: 0.0,
),
),
].divide(SizedBox(width: 8.0)),
),
],
),
],
),
),
);
}
}

View File

@@ -0,0 +1,14 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'box_widget.dart' show BoxWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class BoxModel extends FlutterFlowModel<BoxWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,118 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'box_model.dart';
export 'box_model.dart';
class BoxWidget extends StatefulWidget {
const BoxWidget({super.key});
@override
State<BoxWidget> createState() => _BoxWidgetState();
}
class _BoxWidgetState extends State<BoxWidget> {
late BoxModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => BoxModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
borderRadius: BorderRadius.circular(14.0),
),
child: Padding(
padding: EdgeInsets.all(12.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
width: 150.0,
height: 47.0,
decoration: BoxDecoration(
color: Color(0xFFD41818),
borderRadius: BorderRadius.circular(8.0),
),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(12.0, 12.0, 12.0, 12.0),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'Call doctor',
style:
FlutterFlowTheme.of(context).headlineSmall.override(
fontFamily: 'Inter Tight',
color: FlutterFlowTheme.of(context).info,
fontSize: 18.0,
letterSpacing: 0.0,
),
),
],
),
),
),
Container(
width: 150.0,
height: 50.0,
decoration: BoxDecoration(
color: Color(0xFFF64C4C),
borderRadius: BorderRadius.circular(8.0),
),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(12.0, 12.0, 12.0, 12.0),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'Hopital',
style:
FlutterFlowTheme.of(context).headlineSmall.override(
fontFamily: 'Inter Tight',
color: FlutterFlowTheme.of(context).info,
fontSize: 18.0,
letterSpacing: 0.0,
),
),
],
),
),
),
].divide(SizedBox(width: 16.0)),
),
),
),
);
}
}

View File

@@ -0,0 +1,25 @@
import '/flutter_flow/flutter_flow_calendar.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'calendar_widget.dart' show CalendarWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CalendarModel extends FlutterFlowModel<CalendarWidget> {
/// State fields for stateful widgets in this component.
// State field(s) for Calendar widget.
DateTimeRange? calendarSelectedDay;
@override
void initState(BuildContext context) {
calendarSelectedDay = DateTimeRange(
start: DateTime.now().startOfDay,
end: DateTime.now().endOfDay,
);
}
@override
void dispose() {}
}

View File

@@ -0,0 +1,72 @@
import '/flutter_flow/flutter_flow_calendar.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'calendar_model.dart';
export 'calendar_model.dart';
class CalendarWidget extends StatefulWidget {
const CalendarWidget({super.key});
@override
State<CalendarWidget> createState() => _CalendarWidgetState();
}
class _CalendarWidgetState extends State<CalendarWidget> {
late CalendarModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => CalendarModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return FlutterFlowCalendar(
color: FlutterFlowTheme.of(context).primary,
iconColor: FlutterFlowTheme.of(context).secondaryText,
weekFormat: false,
weekStartsMonday: false,
rowHeight: 48.0,
onChange: (DateTimeRange? newSelectedDate) {
safeSetState(() => _model.calendarSelectedDay = newSelectedDate);
},
titleStyle: FlutterFlowTheme.of(context).titleLarge.override(
fontFamily: 'Inter Tight',
letterSpacing: 0.0,
),
dayOfWeekStyle: FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
dateStyle: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
selectedDateStyle: FlutterFlowTheme.of(context).titleSmall.override(
fontFamily: 'Inter Tight',
letterSpacing: 0.0,
),
inactiveDateStyle: FlutterFlowTheme.of(context).labelMedium.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
);
}
}

View File

@@ -0,0 +1,14 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'daily_trackers_widget.dart' show DailyTrackersWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class DailyTrackersModel extends FlutterFlowModel<DailyTrackersWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,174 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'daily_trackers_model.dart';
export 'daily_trackers_model.dart';
class DailyTrackersWidget extends StatefulWidget {
const DailyTrackersWidget({super.key});
@override
State<DailyTrackersWidget> createState() => _DailyTrackersWidgetState();
}
class _DailyTrackersWidgetState extends State<DailyTrackersWidget> {
late DailyTrackersModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => DailyTrackersModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).primaryBackground,
),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(24.0, 16.0, 16.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
'Hello,',
style: FlutterFlowTheme.of(context).displaySmall.override(
fontFamily: 'Inter Tight',
letterSpacing: 0.0,
fontWeight: FontWeight.normal,
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(2.0, 0.0, 0.0, 0.0),
child: Text(
'Phong',
style: FlutterFlowTheme.of(context).displaySmall.override(
fontFamily: 'Inter Tight',
color: Color(0xFFBF0404),
letterSpacing: 0.0,
),
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
child: Text(
'Below is the progress you have made this week.',
style: FlutterFlowTheme.of(context).labelMedium.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(20.0, 12.0, 20.0, 12.0),
child: Container(
width: double.infinity,
height: 110.0,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x34090F13),
offset: Offset(
0.0,
2.0,
),
)
],
borderRadius: BorderRadius.circular(12.0),
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(12.0, 8.0, 12.0, 8.0),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 4.0),
child: Text(
'Goals',
style: FlutterFlowTheme.of(context).labelSmall.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
Text(
'UV exposure today',
style: FlutterFlowTheme.of(context).titleLarge.override(
fontFamily: 'Inter Tight',
letterSpacing: 0.0,
),
),
Expanded(
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 4.0, 0.0, 0.0),
child: Text(
'Minitues',
style: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 4.0, 0.0, 0.0),
child: Text(
'30/20',
style: FlutterFlowTheme.of(context)
.headlineLarge
.override(
fontFamily: 'Inter Tight',
letterSpacing: 0.0,
),
),
),
],
),
),
],
),
),
),
),
],
),
);
}
}

View File

@@ -0,0 +1,22 @@
import '/flutter_flow/flutter_flow_animations.dart';
import '/flutter_flow/flutter_flow_charts.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'dart:math';
import '/flutter_flow/random_data_util.dart' as random_data;
import 'dashboard01_recent_activity_widget.dart'
show Dashboard01RecentActivityWidget;
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Dashboard01RecentActivityModel
extends FlutterFlowModel<Dashboard01RecentActivityWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,294 @@
import '/flutter_flow/flutter_flow_animations.dart';
import '/flutter_flow/flutter_flow_charts.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'dart:math';
import '/flutter_flow/random_data_util.dart' as random_data;
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'dashboard01_recent_activity_model.dart';
export 'dashboard01_recent_activity_model.dart';
class Dashboard01RecentActivityWidget extends StatefulWidget {
const Dashboard01RecentActivityWidget({super.key});
@override
State<Dashboard01RecentActivityWidget> createState() =>
_Dashboard01RecentActivityWidgetState();
}
class _Dashboard01RecentActivityWidgetState
extends State<Dashboard01RecentActivityWidget>
with TickerProviderStateMixin {
late Dashboard01RecentActivityModel _model;
final animationsMap = <String, AnimationInfo>{};
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => Dashboard01RecentActivityModel());
animationsMap.addAll({
'containerOnPageLoadAnimation': AnimationInfo(
trigger: AnimationTrigger.onPageLoad,
effectsBuilder: () => [
FadeEffect(
curve: Curves.easeInOut,
delay: 0.0.ms,
duration: 300.0.ms,
begin: 0.0,
end: 1.0,
),
MoveEffect(
curve: Curves.easeInOut,
delay: 0.0.ms,
duration: 300.0.ms,
begin: Offset(0.0, 20.0),
end: Offset(0.0, 0.0),
),
TiltEffect(
curve: Curves.easeInOut,
delay: 0.0.ms,
duration: 300.0.ms,
begin: Offset(0.698, 0),
end: Offset(0, 0),
),
],
),
});
setupAnimations(
animationsMap.values.where((anim) =>
anim.trigger == AnimationTrigger.onActionTrigger ||
!anim.applyInitialState),
this,
);
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 24.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 3.0,
color: Color(0x33000000),
offset: Offset(
0.0,
1.0,
),
)
],
borderRadius: BorderRadius.circular(8.0),
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 12.0),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 0.0, 0.0),
child: Text(
'Recent Activity',
style: FlutterFlowTheme.of(context).headlineSmall.override(
fontFamily: 'Inter Tight',
letterSpacing: 0.0,
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 4.0, 0.0, 0.0),
child: Text(
'Below is an overview of tasks & activity completed.',
style: FlutterFlowTheme.of(context).labelMedium.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 4.0, 16.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
height: 32.0,
constraints: BoxConstraints(
maxHeight: 32.0,
),
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
borderRadius: BorderRadius.circular(30.0),
),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 8.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.radio_button_checked_sharp,
color: Color(0xFFEF3939),
size: 20.0,
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
'UV',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
],
),
),
),
Container(
height: 32.0,
constraints: BoxConstraints(
maxHeight: 32.0,
),
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
borderRadius: BorderRadius.circular(30.0),
),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 8.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.radio_button_checked_sharp,
color: Color(0xFFD2AE39),
size: 20.0,
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
'Temperature',
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
],
),
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(10.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).primaryBackground,
borderRadius: BorderRadius.circular(10.0),
),
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: Container(
width: double.infinity,
height: 300.0,
child: FlutterFlowLineChart(
data: [
FFLineChartData(
xData: List.generate(
random_data.randomInteger(5, 5),
(index) => random_data.randomDate()),
yData: List.generate(
random_data.randomInteger(5, 5),
(index) =>
random_data.randomInteger(0, 1000)),
settings: LineChartBarData(
color: Color(0xFFEF3939),
barWidth: 2.0,
isCurved: true,
preventCurveOverShooting: true,
dotData: FlDotData(show: false),
belowBarData: BarAreaData(
show: true,
color: Color(0x4CEF3939),
),
),
),
FFLineChartData(
xData: List.generate(
random_data.randomInteger(5, 5),
(index) => random_data.randomInteger(0, 10)),
yData: List.generate(
random_data.randomInteger(5, 5),
(index) => random_data.randomInteger(0, 10)),
settings: LineChartBarData(
color: Color(0xFFD2AE39),
barWidth: 2.0,
isCurved: true,
preventCurveOverShooting: true,
dotData: FlDotData(show: false),
belowBarData: BarAreaData(
show: true,
color: Color(0x4CD2AE39),
),
),
)
],
chartStylingInfo: ChartStylingInfo(
backgroundColor:
FlutterFlowTheme.of(context).primaryBackground,
showBorder: false,
),
axisBounds: AxisBounds(),
xAxisLabelInfo: AxisLabelInfo(),
yAxisLabelInfo: AxisLabelInfo(),
),
),
),
),
),
),
],
),
),
).animateOnPageLoad(animationsMap['containerOnPageLoadAnimation']!),
);
}
}

View File

@@ -0,0 +1,14 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'healthy_widget.dart' show HealthyWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class HealthyModel extends FlutterFlowModel<HealthyWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,107 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'healthy_model.dart';
export 'healthy_model.dart';
class HealthyWidget extends StatefulWidget {
const HealthyWidget({super.key});
@override
State<HealthyWidget> createState() => _HealthyWidgetState();
}
class _HealthyWidgetState extends State<HealthyWidget> {
late HealthyModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => HealthyModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 12.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 7.0,
color: Color(0x2F1D2429),
offset: Offset(
0.0,
3.0,
),
)
],
borderRadius: BorderRadius.circular(8.0),
),
child: Padding(
padding: EdgeInsets.all(12.0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/ultraviolet_radiation_hero_image.jpg',
width: double.infinity,
height: 100.0,
fit: BoxFit.cover,
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 8.0, 0.0, 8.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Text(
'UV Damage Skin cells',
style: FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
],
),
),
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Text(
'UV rays can damage skin cells, leading to DNA mutations, which increase the risk of skin cancers such as melanoma',
style: FlutterFlowTheme.of(context).labelMedium.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
],
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,14 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'healthy_copy_widget.dart' show HealthyCopyWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class HealthyCopyModel extends FlutterFlowModel<HealthyCopyWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,107 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'healthy_copy_model.dart';
export 'healthy_copy_model.dart';
class HealthyCopyWidget extends StatefulWidget {
const HealthyCopyWidget({super.key});
@override
State<HealthyCopyWidget> createState() => _HealthyCopyWidgetState();
}
class _HealthyCopyWidgetState extends State<HealthyCopyWidget> {
late HealthyCopyModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => HealthyCopyModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 12.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 7.0,
color: Color(0x2F1D2429),
offset: Offset(
0.0,
3.0,
),
)
],
borderRadius: BorderRadius.circular(8.0),
),
child: Padding(
padding: EdgeInsets.all(12.0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/sun-eye.jpg',
width: double.infinity,
height: 100.0,
fit: BoxFit.cover,
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 8.0, 0.0, 8.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Text(
'The Eyes',
style: FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
],
),
),
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Text(
'UV exposure can contribute to macular degeneration, a leading cause of age-related blindness.',
style: FlutterFlowTheme.of(context).labelMedium.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
],
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,14 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'material_card2_widget.dart' show MaterialCard2Widget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class MaterialCard2Model extends FlutterFlowModel<MaterialCard2Widget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,140 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'material_card2_model.dart';
export 'material_card2_model.dart';
class MaterialCard2Widget extends StatefulWidget {
const MaterialCard2Widget({super.key});
@override
State<MaterialCard2Widget> createState() => _MaterialCard2WidgetState();
}
class _MaterialCard2WidgetState extends State<MaterialCard2Widget> {
late MaterialCard2Model _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => MaterialCard2Model());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 12.0),
child: Container(
width: double.infinity,
constraints: BoxConstraints(
maxWidth: 530.0,
),
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 3.0,
color: Color(0x33000000),
offset: Offset(
0.0,
1.0,
),
)
],
borderRadius: BorderRadius.circular(12.0),
border: Border.all(
color: FlutterFlowTheme.of(context).primaryBackground,
width: 1.0,
),
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 0.0, 0.0),
child: Container(
width: 44.0,
height: 44.0,
decoration: BoxDecoration(
color: Color(0xFFEF3939),
shape: BoxShape.circle,
),
alignment: AlignmentDirectional(0.0, 0.0),
child: Text(
'AD',
style: FlutterFlowTheme.of(context).titleMedium.override(
fontFamily: 'Inter Tight',
color: Colors.white,
letterSpacing: 0.0,
),
),
),
),
Expanded(
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(12.0, 0.0, 0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Our Advice ',
style: FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 4.0, 0.0, 0.0),
child: Text(
'Pay Attention',
style:
FlutterFlowTheme.of(context).labelMedium.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
),
],
),
),
),
Container(
width: 100.0,
height: 80.0,
decoration: BoxDecoration(
color: Color(0xFFF4D23D),
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(0.0),
bottomRight: Radius.circular(12.0),
topLeft: Radius.circular(0.0),
topRight: Radius.circular(12.0),
),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,14 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'team_widget.dart' show TeamWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class TeamModel extends FlutterFlowModel<TeamWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,179 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'team_model.dart';
export 'team_model.dart';
class TeamWidget extends StatefulWidget {
const TeamWidget({super.key});
@override
State<TeamWidget> createState() => _TeamWidgetState();
}
class _TeamWidgetState extends State<TeamWidget> {
late TeamModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => TeamModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsets.all(16.0),
child: Container(
width: double.infinity,
constraints: BoxConstraints(
maxWidth: 1170.0,
),
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 3.0,
color: Color(0x33000000),
offset: Offset(
0.0,
1.0,
),
)
],
borderRadius: BorderRadius.circular(8.0),
border: Border.all(
color: FlutterFlowTheme.of(context).alternate,
width: 1.0,
),
),
child: Padding(
padding: EdgeInsets.all(16.0),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 12.0, 0.0),
child: AnimatedDefaultTextStyle(
style: FlutterFlowTheme.of(context).headlineMedium.override(
fontFamily: 'Roboto',
color: Colors.black,
fontSize: 28.0,
letterSpacing: 0.0,
fontWeight: FontWeight.w600,
),
duration: Duration(milliseconds: 600),
curve: Curves.easeInOut,
child: Text(
'Meet Our Team',
),
),
),
ListView(
padding: EdgeInsets.zero,
shrinkWrap: true,
scrollDirection: Axis.vertical,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 1.0),
child: Container(
width: 100.0,
decoration: BoxDecoration(
color:
FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 0.0,
color: FlutterFlowTheme.of(context)
.primaryBackground,
offset: Offset(
0.0,
1.0,
),
)
],
),
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 1.0),
child: Container(
width: 100.0,
decoration: BoxDecoration(
color:
FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 0.0,
color: FlutterFlowTheme.of(context)
.primaryBackground,
offset: Offset(
0.0,
1.0,
),
)
],
),
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 1.0),
child: Container(
width: 100.0,
decoration: BoxDecoration(
color:
FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 0.0,
color: FlutterFlowTheme.of(context)
.primaryBackground,
offset: Offset(
0.0,
1.0,
),
)
],
),
),
),
],
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/White_Purple_Modern_Meet_Our_Team_LinkedIn_Post_(2).png',
width: 1194.0,
height: 620.0,
fit: BoxFit.contain,
),
),
],
),
),
),
),
);
}
}

View File

@@ -0,0 +1,19 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'temp_widget.dart' show TempWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class TempModel extends FlutterFlowModel<TempWidget> {
/// State fields for stateful widgets in this component.
// State field(s) for Slider widget.
double? sliderValue;
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,185 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'temp_model.dart';
export 'temp_model.dart';
class TempWidget extends StatefulWidget {
const TempWidget({super.key});
@override
State<TempWidget> createState() => _TempWidgetState();
}
class _TempWidgetState extends State<TempWidget> {
late TempModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => TempModel());
WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {}));
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
child: Container(
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(
0.0,
2.0,
),
spreadRadius: 0.0,
)
],
borderRadius: BorderRadius.circular(12.0),
),
child: Padding(
padding: EdgeInsets.all(16.0),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Heating',
style:
FlutterFlowTheme.of(context).headlineSmall.override(
fontFamily: 'Inter Tight',
letterSpacing: 0.0,
),
),
Text(
'Current temperature',
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Inter',
color: FlutterFlowTheme.of(context).secondaryText,
letterSpacing: 0.0,
),
),
],
),
Container(
width: 60.0,
height: 60.0,
decoration: BoxDecoration(
color: Color(0xFFEF3939),
borderRadius: BorderRadius.circular(30.0),
),
child: Icon(
Icons.thermostat,
color: FlutterFlowTheme.of(context).info,
size: 30.0,
),
),
],
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'22°C',
style: FlutterFlowTheme.of(context).displaySmall.override(
fontFamily: 'Inter Tight',
color: Color(0xFFA10808),
letterSpacing: 0.0,
),
),
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
'Target',
style: FlutterFlowTheme.of(context).bodySmall.override(
fontFamily: 'Inter',
color: FlutterFlowTheme.of(context).secondaryText,
letterSpacing: 0.0,
),
),
Text(
'24°C',
style: FlutterFlowTheme.of(context).titleLarge.override(
fontFamily: 'Inter Tight',
color: Color(0xFFA10808),
letterSpacing: 0.0,
),
),
],
),
].divide(SizedBox(width: 16.0)),
),
Container(
width: double.infinity,
child: Slider(
activeColor: Color(0xFFA10808),
inactiveColor: Color(0x33000000),
min: 15.0,
max: 30.0,
value: _model.sliderValue ??= 24.0,
onChanged: (newValue) {
newValue = double.parse(newValue.toStringAsFixed(4));
safeSetState(() => _model.sliderValue = newValue);
},
),
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'15°C',
style: FlutterFlowTheme.of(context).bodySmall.override(
fontFamily: 'Inter',
color: FlutterFlowTheme.of(context).secondaryText,
letterSpacing: 0.0,
),
),
Text(
'30°C',
style: FlutterFlowTheme.of(context).bodySmall.override(
fontFamily: 'Inter',
color: FlutterFlowTheme.of(context).secondaryText,
letterSpacing: 0.0,
),
),
],
),
].divide(SizedBox(height: 16.0)),
),
),
),
);
}
}

View File

@@ -0,0 +1,21 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'temp_and_u_v_widget.dart' show TempAndUVWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class TempAndUVModel extends FlutterFlowModel<TempAndUVWidget> {
/// State fields for stateful widgets in this component.
// State field(s) for Slider widget.
double? sliderValue1;
// State field(s) for Slider widget.
double? sliderValue2;
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,182 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'temp_and_u_v_model.dart';
export 'temp_and_u_v_model.dart';
class TempAndUVWidget extends StatefulWidget {
const TempAndUVWidget({super.key});
@override
State<TempAndUVWidget> createState() => _TempAndUVWidgetState();
}
class _TempAndUVWidgetState extends State<TempAndUVWidget> {
late TempAndUVModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => TempAndUVModel());
WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {}));
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Opacity(
opacity: 0.8,
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: Color(0xFF710F0F),
borderRadius: BorderRadius.circular(16.0),
),
child: Padding(
padding: EdgeInsets.all(16.0),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'UV Index',
style: FlutterFlowTheme.of(context)
.headlineSmall
.override(
fontFamily: 'Inter Tight',
color: Colors.white,
letterSpacing: 0.0,
),
),
Text(
'Moderate',
style:
FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Inter',
color: Color(0xFF96989C),
letterSpacing: 0.0,
),
),
],
),
Text(
'5.6',
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Inter',
color: Color(0xFFFDFAF9),
fontSize: 29.0,
letterSpacing: 0.0,
fontWeight: FontWeight.bold,
),
),
],
),
Container(
width: double.infinity,
child: Slider(
activeColor: Color(0xFF00FFFD),
inactiveColor: Color(0xFFE0E0E0),
min: 0.0,
max: 11.0,
value: _model.sliderValue1 ??= 5.0,
onChanged: (newValue) {
newValue = double.parse(newValue.toStringAsFixed(4));
safeSetState(() => _model.sliderValue1 = newValue);
},
),
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Temperature',
style: FlutterFlowTheme.of(context)
.headlineSmall
.override(
fontFamily: 'Inter Tight',
color: Colors.white,
letterSpacing: 0.0,
),
),
Text(
'Warm',
style:
FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Inter',
color: Color(0xFF9EA1A3),
letterSpacing: 0.0,
),
),
],
),
Text(
'28°C',
style:
FlutterFlowTheme.of(context).headlineMedium.override(
fontFamily: 'Inter Tight',
color: Colors.white,
letterSpacing: 0.0,
),
),
],
),
Container(
width: double.infinity,
child: Slider(
activeColor: Color(0xFFFFC122),
inactiveColor: Color(0xFFE0E0E0),
min: -10.0,
max: 40.0,
value: _model.sliderValue2 ??= 28.0,
onChanged: (newValue) {
newValue = double.parse(newValue.toStringAsFixed(4));
safeSetState(() => _model.sliderValue2 = newValue);
},
),
),
Text(
'28°C',
style: FlutterFlowTheme.of(context).headlineMedium.override(
fontFamily: 'Inter Tight',
color: Colors.white,
letterSpacing: 0.0,
),
),
].divide(SizedBox(height: 16.0)),
),
),
),
),
);
}
}

View File

@@ -0,0 +1,15 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import 'time_count_widget.dart' show TimeCountWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class TimeCountModel extends FlutterFlowModel<TimeCountWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,136 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'time_count_model.dart';
export 'time_count_model.dart';
class TimeCountWidget extends StatefulWidget {
const TimeCountWidget({super.key});
@override
State<TimeCountWidget> createState() => _TimeCountWidgetState();
}
class _TimeCountWidgetState extends State<TimeCountWidget> {
late TimeCountModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => TimeCountModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(
0.0,
2.0,
),
spreadRadius: 0.0,
)
],
borderRadius: BorderRadius.circular(16.0),
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'30 Minutes',
style: FlutterFlowTheme.of(context).headlineLarge.override(
fontFamily: 'Inter Tight',
color: Color(0xFFEF3939),
letterSpacing: 0.0,
),
),
Icon(
Icons.access_time,
color: Color(0xFFEF3939),
size: 32.0,
),
],
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Monday',
style: FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Inter',
letterSpacing: 0.0,
),
),
Text(
'May 15, 2023',
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Inter',
color: FlutterFlowTheme.of(context).secondaryText,
letterSpacing: 0.0,
),
),
],
),
FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text: 'Dangerous!',
options: FFButtonOptions(
width: 120.0,
height: 40.0,
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
color: Color(0x63ECCC44),
textStyle: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Open Sans',
color: Colors.black,
fontSize: 17.0,
letterSpacing: 0.0,
),
elevation: 0.0,
borderRadius: BorderRadius.circular(20.0),
),
),
],
),
].divide(SizedBox(height: 12.0)),
),
),
);
}
}

View File

@@ -0,0 +1,14 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'what_widget.dart' show WhatWidget;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class WhatModel extends FlutterFlowModel<WhatWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@@ -0,0 +1,78 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'what_model.dart';
export 'what_model.dart';
class WhatWidget extends StatefulWidget {
const WhatWidget({super.key});
@override
State<WhatWidget> createState() => _WhatWidgetState();
}
class _WhatWidgetState extends State<WhatWidget> {
late WhatModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => WhatModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
width: 248.0,
height: 100.0,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(
0.0,
2.0,
),
spreadRadius: 0.0,
)
],
borderRadius: BorderRadius.circular(8.0),
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'WHAT TODAY ?',
style: FlutterFlowTheme.of(context).headlineSmall.override(
fontFamily: 'Inter Tight',
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
),
),
],
),
),
);
}
}