Skip to content

Instantly share code, notes, and snippets.

@israel-oye
Created July 31, 2025 19:56
Show Gist options
  • Select an option

  • Save israel-oye/b5a687b14e116a9b4be840320c49b129 to your computer and use it in GitHub Desktop.

Select an option

Save israel-oye/b5a687b14e116a9b4be840320c49b129 to your computer and use it in GitHub Desktop.
Full solution to design recreation in Flutter
import 'package:flutter/material.dart';
class HomeWidget extends StatelessWidget {
HomeWidget({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Flexible(
flex: 3,
child: Container(
width: double.infinity,
// height: 300,
color: const Color(0xFF13AF71),
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Icon(Icons.import_contacts),
Image.asset(
'assets/img/avatar.png',
height: 150,
),
],
),
),
),
Flexible(
flex: 7,
child: Container(
color: Color(0xFFFBF3EC),
child: Padding(
padding: const EdgeInsets.all(20),
child: Column(
children: [
TextField(
maxLength: 50,
decoration: InputDecoration(
labelText: 'Name',
filled: true,
fillColor: Colors.white,
isDense: true,
labelStyle: TextStyle(
color: Colors.grey[400],
fontSize: 14.0
),
contentPadding: EdgeInsets.symmetric(vertical: 16, horizontal: 14),
border: UnderlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide.none,
),
),
),
TextField(
maxLength: 50,
decoration: InputDecoration(
label: Text('Email'),
filled: true,
fillColor: Colors.white,
contentPadding: EdgeInsets.symmetric(vertical: 16, horizontal: 14),
border: UnderlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide.none),
),
),
TextField(
minLines: 8,
maxLines: 10,
maxLength: 160,
decoration: InputDecoration(
label: Text('Bio'),
alignLabelWithHint: true,
filled: true,
fillColor: Colors.white,
contentPadding:
EdgeInsets.symmetric(vertical: 16, horizontal: 14),
border: UnderlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide.none,
),
),
),
Row(
children: [
Expanded(
child: ElevatedButton(
onPressed: () {},
style: ElevatedButton.styleFrom(
backgroundColor: Color(0xFF71BFE9),
foregroundColor: Colors.white,
elevation: 4,
padding: EdgeInsets.symmetric(vertical: 18, horizontal: 6),
shape: RoundedRectangleBorder(
side: BorderSide(color: Colors.black, width: 2),
borderRadius: BorderRadius.circular(50)
)
),
child: Text(
'Update',
style: TextStyle(fontSize: 18),
),
),
),
],
),
],
),
),
),
)
],
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment