Files

586 lines
26 KiB
Dart

import 'package:flutter/material.dart';
void main() {
runApp(const App());
}
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Colors.black,
body: Column(
children: [
const SizedBox(
height: 50,
),
Padding(
padding: const EdgeInsets.all(20),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ElevatedButton(
clipBehavior: Clip.hardEdge,
style: ElevatedButton.styleFrom(
shape: const CircleBorder(),
fixedSize: const Size(60, 60),
),
onPressed: () {},
child: Transform.scale(
scale: 4,
child: Image.asset(
"imgs/haku.png",
fit: BoxFit.cover,
),
),
),
const Icon(
Icons.add_rounded,
color: Colors.white,
opticalSize: 50,
size: 40,
),
],
),
),
const Padding(
padding: EdgeInsets.symmetric(
vertical: 10,
),
child: Row(
children: [
SizedBox(
width: 20,
),
Text(
'MONDAY 16',
style: TextStyle(
color: Colors.white,
fontSize: 18,
fontWeight: FontWeight.w500,
),
),
],
),
),
Row(
children: [
const SizedBox(
width: 20,
),
const Text(
'TODAY',
style: TextStyle(
color: Colors.white,
fontSize: 40,
fontWeight: FontWeight.w400),
),
const SizedBox(width: 10), // 간격
// 핑크색 점
Container(
width: 8,
height: 8,
decoration: const BoxDecoration(
color: Colors.pink,
shape: BoxShape.circle,
),
),
const SizedBox(width: 5), // 간격
// 숫자들
Expanded(
// Row의 자식이 가로로 확장될 수 있도록 설정
child: SingleChildScrollView(
scrollDirection: Axis.horizontal, // 수평 스크롤 활성화
child: Row(
children: [
for (int i = 17; i <= 31; i++) // 반복문으로 숫자 생성
Padding(
padding:
const EdgeInsets.symmetric(horizontal: 8.0),
child: Text(
'$i',
style: const TextStyle(
fontSize: 40,
fontWeight: FontWeight.w400,
color: Colors.grey,
),
),
),
],
),
),
),
],
),
const SizedBox(
height: 20,
),
Expanded(
child: SingleChildScrollView(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(4),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: const Color(0xfffef754),
borderRadius: BorderRadius.circular(25),
),
child: Column(
children: [
Padding(
padding:
const EdgeInsets.symmetric(horizontal: 15),
child: Row(
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
const SizedBox(
height: 10,
),
const Text(
'11',
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.w600,
),
),
const Text(
'30',
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.w400,
),
),
const SizedBox(height: 5), // 구분선 간격
Container(
width: 1,
height: 30,
color: Colors.black, // 세로 구분선
),
const SizedBox(height: 5),
const Text(
'12',
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.w600,
),
),
const Text(
'20',
style: TextStyle(
fontSize: 15,
height: 0.88,
fontWeight: FontWeight.w400,
),
),
],
),
const Padding(
padding: EdgeInsets.only(
top: 30,
left: 15,
bottom: 30,
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
//mainAxisSize: MainAxisSize.min,
children: [
SizedBox(
height: 5,
),
Text(
'DESIGN',
style: TextStyle(
fontSize: 70,
fontWeight: FontWeight.w500,
height: 0.88,
),
),
Text(
'MEETING',
style: TextStyle(
fontSize: 70,
fontWeight: FontWeight.w500,
height: 0.88,
),
),
],
),
)
],
),
),
Padding(
padding: const EdgeInsets.only(bottom: 15),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
const SizedBox(
width: 35,
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 17,
),
child: Text(
'ALEX',
style: TextStyle(
fontSize: 17,
color: Colors.black.withOpacity(0.4),
),
),
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 17,
),
child: Text(
'HELENA',
style: TextStyle(
fontSize: 17,
color: Colors.black.withOpacity(0.4),
),
),
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 17,
),
child: Text(
'NANA',
style: TextStyle(
fontSize: 17,
color: Colors.black.withOpacity(0.4),
),
),
),
],
),
),
],
),
),
),
Padding(
padding: const EdgeInsets.all(4),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: const Color(0xff9c6bce),
borderRadius: BorderRadius.circular(25),
),
child: Column(
children: [
Padding(
padding:
const EdgeInsets.symmetric(horizontal: 15),
child: Row(
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
const SizedBox(
height: 10,
),
const Text(
'12',
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.w600,
),
),
const Text(
'35',
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.w400,
),
),
const SizedBox(height: 5), // 구분선 간격
Container(
width: 1,
height: 30,
color: Colors.black, // 세로 구분선
),
const SizedBox(height: 5),
const Text(
'14',
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.w600,
),
),
const Text(
'10',
style: TextStyle(
fontSize: 15,
height: 0.88,
fontWeight: FontWeight.w400,
),
),
],
),
const Padding(
padding: EdgeInsets.only(
top: 30,
left: 15,
bottom: 30,
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
//mainAxisSize: MainAxisSize.min,
children: [
Text(
'DAILY',
style: TextStyle(
fontSize: 70,
fontWeight: FontWeight.w500,
height: 0.88,
),
),
Text(
'PROJECT',
style: TextStyle(
fontSize: 70,
fontWeight: FontWeight.w500,
height: 0.88,
),
),
],
),
)
],
),
),
Padding(
padding: const EdgeInsets.only(bottom: 15),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
const SizedBox(
width: 35,
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 17,
),
child: Text(
'ME',
style: TextStyle(
fontSize: 17,
fontWeight: FontWeight.bold,
color: Colors.black.withOpacity(1),
),
),
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 17,
),
child: Text(
'RICHARD',
style: TextStyle(
fontSize: 18,
color: Colors.black.withOpacity(0.4),
),
),
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 17,
),
child: Text(
'CIRY',
style: TextStyle(
fontSize: 18,
color: Colors.black.withOpacity(0.4),
),
),
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 17,
),
child: Text(
'+4',
style: TextStyle(
fontSize: 18,
color: Colors.black.withOpacity(0.4),
),
),
),
],
),
),
],
),
),
),
Padding(
padding: const EdgeInsets.all(4),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
color: const Color(0xffbcee4b),
borderRadius: BorderRadius.circular(25),
),
child: Column(
children: [
Padding(
padding:
const EdgeInsets.symmetric(horizontal: 15),
child: Row(
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
const SizedBox(
height: 10,
),
const Text(
'15',
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.w600,
),
),
const Text(
'00',
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.w400,
),
),
const SizedBox(height: 5), // 구분선 간격
Container(
width: 1,
height: 30,
color: Colors.black, // 세로 구분선
),
const SizedBox(height: 5),
const Text(
'16',
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.w600,
),
),
const Text(
'30',
style: TextStyle(
fontSize: 15,
height: 0.88,
fontWeight: FontWeight.w400,
),
),
],
),
const Padding(
padding: EdgeInsets.only(
top: 30,
left: 15,
bottom: 30,
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
//mainAxisSize: MainAxisSize.min,
children: [
Text(
'WEEKLY',
style: TextStyle(
fontSize: 70,
fontWeight: FontWeight.w500,
height: 0.88,
),
),
Text(
'PLANNING',
style: TextStyle(
fontSize: 65,
fontWeight: FontWeight.w500,
height: 0.88,
),
),
],
),
)
],
),
),
Padding(
padding: const EdgeInsets.only(bottom: 15),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
const SizedBox(
width: 35,
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 17,
),
child: Text(
'DEN',
style: TextStyle(
fontSize: 18,
color: Colors.black.withOpacity(0.4),
),
),
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 17,
),
child: Text(
'NANA',
style: TextStyle(
fontSize: 18,
color: Colors.black.withOpacity(0.4),
),
),
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 17,
),
child: Text(
'MARK',
style: TextStyle(
fontSize: 18,
color: Colors.black.withOpacity(0.4),
),
),
),
],
),
),
],
),
),
),
],
),
),
),
],
),
),
);
}
}