From d0440b221fe0f923260fd1ef8083b637d19d329c Mon Sep 17 00:00:00 2001 From: Stefan Dresselhaus Date: Fri, 13 Jan 2023 22:39:05 +0100 Subject: [PATCH] more theming, added screenshots --- README.md | 11 +++++-- img/2023-01-13_theme_dark.png | Bin 0 -> 39962 bytes img/2023-01-13_theme_light.png | Bin 0 -> 41022 bytes lib/main.dart | 50 ++++++++++++++++++++++++++--- lib/repeating_task.dart | 4 ++- lib/table.dart | 56 +++++++++++++++++++++++++++------ lib/task_item.dart | 4 ++- pubspec.lock | 2 +- pubspec.yaml | 1 + 9 files changed, 108 insertions(+), 20 deletions(-) create mode 100644 img/2023-01-13_theme_dark.png create mode 100644 img/2023-01-13_theme_light.png diff --git a/README.md b/README.md index 47008ce..29e8103 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,10 @@ A Reminder based on todo.txt synced via nextcloud - [ ] make application-settings - [ ] store/load settings - [ ] setting for number of days into the future - - [ ] theme (light/dark mode, system theme) + - [ ] theme + - [x] light/dark mode + - [ ] color theme by system colors + - [ ] own primary/secondary color theme - [ ] fancy pop-animation & sound for the checkbox ## Current looks: @@ -34,4 +37,8 @@ A Reminder based on todo.txt synced via nextcloud ![](img/2023-01-10_Task_details.png) ### Complex repeat patterns -![](img/2023-01-10_repeat_patterns.png) \ No newline at end of file +![](img/2023-01-10_repeat_patterns.png) + +### Light/Dark theme +![](img/2023-01-13_theme_light.png) +![](img/2023-01-13_theme_dark.png) \ No newline at end of file diff --git a/img/2023-01-13_theme_dark.png b/img/2023-01-13_theme_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..acba3b422bb881cec07f0b832a3e7e91c53a6c75 GIT binary patch literal 39962 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

8GB884VJl6j!$jHvQss^cx22ZoVBckW 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 T>Zwm6K={Nl!=uzAr!M{<3}>{+ literal 0 HcmV?d00001 diff --git a/img/2023-01-13_theme_light.png b/img/2023-01-13_theme_light.png new file mode 100644 index 0000000000000000000000000000000000000000..746a6031426c5909e24449dfcbbe78e8efecde7f GIT binary patch literal 41022 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

olRbM zdOBl(IG{@OICCMUrMU9-{siAQ1t$eV6vKLdVr%@0L&7r0>y$_DsaPGXbN8aFUjC-x zZ@D^F>OQp{I!lIs23}Z;KJt2n=x6)UsX~bi406IWCaq_>kAeD=AYSVGWFjWQyNs+y zPxb11YA!l;?=??P<{UP$T^)6vn3=sym%fN>KG|Ju^eTn)&~3OZy9s-%NzSJupfG+D z>TNBjk~Dw`B4HB zJB3sC!>PRlFuJ4W`$Qa+(AkS^m(8MlYIwBs(fx#qH2b^^?ft|RSpSy1NrAM;P2WsX z{}M$1t5*wZW@k=yrnukIYs9%R<$_1;@9s7wyA}4wX1dk&ClBUuc%4}Anf60NEf((N zx^yG10d`8GzcFvJ35#yJkH$psdMXdprnlKCwQb#+$>JT%G9gNZR8!~^zBS@RRcy$mekCYn7&ik4(qa5L+cZ34p0va4M zvQq@?<$QR^Y>-7%Lp{p)AI}kyc!qUZsmeSw`!vb>_?~#5!AZpB+Ot*lN)a4Le4nL% zfthZYLMm>7V)LqGdDjezn6$s!qgpihchYWzZHOz6a_Ml0D{L<%|^1 zc7Inw9U#JiU!BK|Y?EtqoIe$WEC0BSNZv67TrY#wLr>Kf^4}gp;oYp;V5(_f1cVXs znTx|d9{;MIP+<5fl|(?qL{;=GGn)#efDKHK_1Ro6ew0qszK|r|0Vlm>oY!3%y=)KP z^>5d9^0_M}7Bm)*t)hb5=ri6&a<1}N16ln0BN#5@KuH@1kuI%xJ~aPIEGV{?+^t=| zG9(<7NG}!|i&6f`_MrIye<{cX2EmXDVBKpwv{o}rc0PT_fU&Iar(m1r&4S`q5=hbpVA8 zwI0{+IroJO{*~bg4g>RGe{KOB)dd=^LheWWm#ZtPL7`LgVCTtd6>gi66W222I{$Q& ztVx8=-UeA|#E1Na?8ai;e9Gt`r!0(&ln(xb`tgcglDrRhTp4&0f$w5E126#N0RnZs zy(t_PQEQms*fEll-BIH9ji{=O(6k_rfhI}R&PM|m{h??uN7#iOZWWYM^MR?TWp`Kp z(cEmpx`A3Rv}N*6?T{L2Ir=rhk#0-ZPl`$x*WdZ<#GAi8MfwZFCjW4=O*nt#5oJt#c)`?mn&>QcN3{-!jcA0+@K5_<$iickc1g%L&n<*X zEG|T?>I+tv4s3KspP@^l>kQ#^^h#+ID?(#utaz2Th>she7XNk2S82qPN)@H zHd}uydk<3Z$gLuZeiLyNhPa0pefyan!(%<7NVXx}QPF%n$+->~TGwF$p3jd+Y|NX6 zbMIXX8|R3hjK&jIsx||Xz-9KCGSf)eAS5_Ap{$~EQooVt=K@#*X4CzFt&)`G80|BN z|Gi_2JTcP5AmLP<&D{s~d_C<_Tp=oapgq-BBHAZb(8=^!U{yF@1 zt*a1A#ed@Si;M-CL-r0M&1Vya6d%{vnYc_XcH5bJa&uZfFwEnZ|Leji-8Rr;@g~|!#dL}IEEJUb=J% z$t1!rjKC1J(J#3$xc?i4xocKmls&SqDvgu_MXP{iEvpJgx?@O)1CQxwNH>*iocKnm z21KR>6u^ol0Z>~p(m*J#6t&>hygwTbvr4yuwdewuUJtCJ(h$Ms*NnI1+QIHhrp*QLw_W%==hb3GH zfn3PzxcF^qT()>OoO|#3r3Fb$a&!^+4*PBmM+w{^h(LjQ1?CZ)GRRP=$Z)hU2*#uY zUJkC~rOJ zK1#%F7PyO=IQha(2jea2Uc{9oO6yNDgj|}iY2z&xI4gQO{|Vl^?TCP9MXYGs;fps~ zDcDSQw<1)tQ6x_j3;Uw{0%*0t{eur!WSNkA6C`AXeanV!Q~@G1VWz(adL;c4S+rQS z5t<3^+66=tvWfhh7caJH9bD`eJ?WPQAy45VAe!W?}v4 zL$5`wD-anRW*=0RcH<8NIb|GOOf$$g8X*!Bsj%CmB2Bt}S?&#Cn}QCi2H8|X+TPvS zScB}|NMHdy00~=M%0PB<#H4gggtT(#mS~_uc$s~j2qFV^cXgn3qws{v5=8pyO!Aa| zQy(hbCNuu)7C-tYT(zW8W_+wf8OyhPgP008U+ja+_nK7IztW}Qz@LKt77!twaV5KacP2v=s%lfxh&s(;0=W%OXMw`%>lpaXA2v z2}B)n|K-jnB013~=#Krp5dRm?<)^nu$A8gvccCmrwsPH7~tobxf|KB zvje*wF)zu0<{_^KMG~V(k}7BsHi;ozlYkL#j~%cFt26>E+kqIY{n0n1$mTSz9v`4{TQ(yR z)Ur!{;nTV&-~aQI?z3FE>EIvw)6^Ci3R@B+7~_jqNk0kx>NnDS zmTm?Q2u||YGVJSkL}B60W;A;bwX>FA0K!5BcHlym|1YAKMt%zZN=H?B4?8WJ!`jPCHt=pq`}kgOt6KK z0&yf42>+GH#=GZB=vpC(F;UQnMy&<4$4xt_D;6+Otp47ViiMypxuaezPsDgft$~fk zts;3G5gv8l!-K<_JsI!Qp4%B^9oU*cg#c%qstHE{kBF0C!uMc|SZE<31bH1FhVYxdkPUu@H@3~x zef0XuL!WcqlCP|OCL8(TdHAt zHtH*1h(dw`!e)(i)7iZD4!$G^E;Iu-BoOKK{E0t9+>>1)bI46evOg@dX8?*&oi}(r zpjNy`?41@CM^xPFRC4sBD-MJsLx@*D-}dCY$I*umfa&HX>bl>~3TOmrsl0bT{^N|q zR({BR)j^z1XCB1>J{(|$L}UP2@Q)nQ@ClQ)sVQe91xtr@=eiC&!nD-f#!|(b6U~P= z+~HBEpcn%w0oa3XTZ0z;$4z|yu4yC=fkPqo8(~E~Xv0++PMP;6D2H;AVHyux)VRSf z9KXyzx&cnV)u2N4tdXfxwgIik=?5!zcsR9rUx&=lJG_y1hwPpJd5axe47NO2Jb7SY z-+@iQ!15d#(li%d2mae8v0eXL&-B;9nM)r6)iLq6H|rlq8U9-!**|vA|2CxY-~Pe> z|I%rYm{a8Sf8ap-e^jIXzIp#_=KsSn4zSR=|I=!f(*ycOiLjiW?}j`^C@MZ)*H$E$ zc=@l26@2&0z?O^~Iri}R&nF#OdwXfbQbC_zVZ0E;iv;pQ7;k<~SW*D?p2jzb*S(@b zfb`nSS5)?g^BNX4IC#^z_)YSBWlG8P(ug}b_RlwzCcrwqhLpmEmssYD7l)Ju1O#r} zl0cI_zb>mTbA3sK_&>lZ?7*342aS09;>npiMrOXUfEB5MEc&~v0ckTNu$~3Xe6>1) z{LFO77arI|)X4k&dd8<}%c(u=^n>Ujk zB^wo8Q(RZ-m26o988_(HQLA2CMTFpyd@}hYgj!gs3+Ly< ziq20Q{0yblT+RkSErrW1}2`Q7mQGrO8u7F4znA_5G& z8QA8Kw7!KLzJg2MHYL2VMC&cqh4BrDWehiG{SHelW_fbIcjj%2M@JVesnua_Y*NA^M) zoEfKE7uqa-FOTMnefyU&hf|bvuPO7Z}KTrCpZkXh9Tm zvxx~C=a~+(jr}4_0K@>>g0Z4{^XSL@sU4?LT?jRa%N<_}74(;ue+g+ho_~b@hpOCa zRS^fLL{m;SEzo=QYVMks^ykO*>87n$tt=z(&@ssZa!9VDHdaX-Wq7~xc7a@*eC5Y$S?SX#1fT)G_Ah&Z8r)U>WCT3Q)p)l=+i%)?^x&W3MW;U z3wDc@I0JGXU|0_9CnTSxRMJ3z!HBYQz=I&LM7E*N3=hn<3?R9Af&mNySUcJmJx<0x z{N-(st*NV?0g}Z6PZG$b?>(!S=%^_2WtlI zDm(O08!p-PXwJI2hWrBTbg!BJl5-a34MAOo?X$s^@8~k;{rZF_cC~_DZTc6@)ee1>JWbl<6uU>kb;Li{MTDtq3wQW9kW`^ATW(M1CIfcZQ zHpOrDv%n?8StD|#2_UitiDANHt%b^&I9%{UAqR(wv-{iMEhS zec@AMqprF6#kr+NK?|M>14!_rroS9V&vs4vof7{#umz4**%tJGz+b2sgjYVKp3rNK zt)bw!H<=nHy@oL>-UU|%|8MGUqNtFcSaqXK>!+~nBdgW6xJU8Tw8ja=UfVX`4nV`_ ze&q~@5RqTU`JU#V+fipi##G9Td)c?zsv8gW>M)mcXOz!qgoyk?G#*`hBSkMSm}szn z{G*1P`-z;ndV)_x)Ag(|+Tz!^WQpddSU#}7p0hGB)-O?VtYvu=!@y(i@x`lFnkQ9w zKQ%eeq$aLY7&;Q%Sr#+f(Q?Wq*1SCV+WU2Tqq>bp3=C#g`fZRttNwh2yNH0gc>C`b z(ki|N;v$T=geT7q91w^wRu(v8l=12Jl=r%iKj%~X=C*M0J_(Zp1JBvDoZ9NJ#I?#L zLnSiPwbRVbC?C5eo2mEkBe_je+G@9VGxfJS(Cj3)j82^3_D;7mJCG(ZxPdriQWah3 z-8IrZa;m`n0;0@aI@c5wXR0}i=sz|!%5p8-DP6RXLld0)@tKfMw&t+8`4o0O zrfM&A&f^$E-h>)TBrOj85-63}=o^H_&Cw6pN z7vCqB`;FQZ6i*lom5D6=jgK$LkDp-;R-1R~(IpqUyF;6{yi|;@#nlfSlnduJxfj$b zIDG0TQ=6Pp3o4$!M$1JzZ(L|vHW#nL>%L>g{^7Tcb+RVc(Kttv{&fC&{5szMQva|R zkntH8)lD>IzF3;GkN4&#m(f<$5-gvwaGgX`3zC<-dQP4!4ba3VYBOU|Of9%!6Rq73 znbZDDX39QN8-ED7(CPFl2E*J8gOSvZDn)aOe#Xy9aLr~ey51hDW_Au$Y`Ziyk@F-% zN#vlmwze%~dRA9gA8lmg+%-z+UQpiW-H@7o>e#?H-N!cYGY z`kB*azdH;s#F;VdV+C59nVLFWY==m;jX!W(N3T>Pn{zqX^xsTUS+zwXWK&!>7Ra`UfY;ogyD%YECsc%$!rh&Vh{9x^?xMbOF; zqZe6RT)-uFM_rcq4Sl1;gB_{=8D?#!ab z(zk0|X6N2i_vtEMrOjKn2N_o-P9k?GCWcCWni%k6zViBhl1fW`mhIZ>R@~j9vmQYU z+Q=ZNGT3WiMqzuneUq|0ce@Yki>F$c{$G%_nw!#HzRW`>dy4jB1RbpK1?&+y| z^X9}*rzzyZ(a#=U2lDuNh45=jA(n5#UeIYr4_gH@*r>k>8#?r{r!qTQq*EA?!?l&v{n~OJ4ZcD*Mixn@P-u7Gn;o`2yS;uZ_mpRvWRQ~Y} z(q59-NvroI6TBtLzu;3>`Y~N#;NU91}2g1n1lp;zUAi`)6v3C0s1=n z2D(7UV5{h?2n?T4z2-Bv2p^+7Bp&>tuOMlrFV;oF>RmE&VW zEiT5}P;+xH+qBT>&~4INT4L|m6bIQ4p}RcrFSm14Q50LU!jPV8WckYyyt|ncHzEkj zaleKM6t&`Ll~marmJh`jucqEX)CFwLT>bRi?P#PGEdgeq5> zOjp4V`pc$bgGh?>lj0v2`yvNw{9PkMUYfKUo5*#XGx2kmpjT2W$+fwjT}P{Ci9_Z07HHp~jM zJB)3rsyA6t=(p=b^ZFc`T5qv>&&ObNnU78YW?Xh?1#kDd69GSai5(r)80Ib?>Uo&m zV>LAL?1B7&Z(U@L(BjXSXuW)T&jD*0`mxvKR?*W{-nrR?*(*8;yX%CE%Ic1tu;LYl zXx}Z>7yE-F)w9>Qj$gW+`5VT+Ea2e0UHueeX^zS?@9Mt1N`Kq>48FLE!c|`KaaVL{ z!bkBO^&w#yaouVQYinsCh+bNt=wCh0JZXNDyvj{s%h!I_T0M9Y+dzu7w)kdFx8v3#LxXy(Gp`|j+X4}&d$nu0=Wco`p6A^ zrT+LTo17Mgy`DBp`RP8e<(7j_!*Fc055$B00K0I+XiuHIK7t#*QkOmOihYUEv$@a# z*T5lJ7QYl8C0UnQL2r&00r5%q0`7Hab^n3F$1!_=w>jO&N&Z^nqB3W<{a#(06^M(#*Z{Gigvr>@x^0)4~NfAtzGX+>+IjRP96DtXEgOR JNGHx;`(GaA?qdJ| literal 0 HcmV?d00001 diff --git a/lib/main.dart b/lib/main.dart index 8482097..090ad5b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,25 +1,65 @@ import 'package:flutter/material.dart'; +import 'package:intl/date_symbol_data_local.dart'; +import 'package:intl/intl_standalone.dart'; import 'package:nextcloud_reminder/homescreen.dart'; void main() { - runApp(const TodoTxtReminderApp()); + findSystemLocale().then((value) => + initializeDateFormatting(value).then((_) => + runApp(const TodoTxtReminderApp()) + )); } class TodoTxtReminderApp extends StatelessWidget { const TodoTxtReminderApp({super.key}); + static const primaryColor = Colors.pink; + static const secondaryColor = Colors.amber; + + getInteractColor(Color a, Color b) { + return (Set states) { + const Set interactiveStates = { + MaterialState.pressed, + MaterialState.hovered, + MaterialState.focused, + }; + if (states.any(interactiveStates.contains)) { + return b; + } + return a; + }; + } + + Color getColor(Set states) { + return getInteractColor(primaryColor, secondaryColor)(states); + } // This widget is the root of your application. @override Widget build(BuildContext context) { + const inputDecorationTheme = InputDecorationTheme(border: OutlineInputBorder(), focusColor: secondaryColor); + return MaterialApp( title: 'Nextcloud Reminder', theme: ThemeData( - // This is the theme of your application. - primarySwatch: Colors.pink, - inputDecorationTheme: const InputDecorationTheme(border: OutlineInputBorder(), ), - + brightness: Brightness.light, + colorScheme: ThemeData.light().colorScheme.copyWith(primary: primaryColor, secondary: secondaryColor, background: primaryColor.shade50), + inputDecorationTheme: inputDecorationTheme, + checkboxTheme: ThemeData.light().checkboxTheme.copyWith( + fillColor: MaterialStateProperty.resolveWith(getColor), + checkColor: MaterialStateProperty.resolveWith(getInteractColor(Colors.white,Colors.black)) + ), ), + darkTheme: ThemeData( + brightness: Brightness.dark, + colorScheme: ThemeData.dark().colorScheme.copyWith(primary: primaryColor, secondary: secondaryColor, background: primaryColor.shade500.withAlpha(32)), + inputDecorationTheme: inputDecorationTheme, + checkboxTheme: ThemeData.dark().checkboxTheme.copyWith( + fillColor: MaterialStateProperty.resolveWith(getColor), + checkColor: MaterialStateProperty.resolveWith(getInteractColor(Colors.white,Colors.black)) + ), + ), + themeMode: ThemeMode.system, home: const HomeWidget(title: 'todo.txt reminder'), ); } diff --git a/lib/repeating_task.dart b/lib/repeating_task.dart index cd6776a..9da4693 100644 --- a/lib/repeating_task.dart +++ b/lib/repeating_task.dart @@ -33,7 +33,9 @@ class _RepeatingTaskState extends State { @override Widget build(BuildContext context) { return Container( - decoration: const BoxDecoration(border: Border(bottom: BorderSide(),)), + decoration: BoxDecoration(border: Border( + bottom: BorderSide(color: Theme.of(context).colorScheme.background, width: 1), + ),), margin: const EdgeInsets.all(0.0), child: Row( crossAxisAlignment: CrossAxisAlignment.start, diff --git a/lib/table.dart b/lib/table.dart index 0e58428..fea6571 100644 --- a/lib/table.dart +++ b/lib/table.dart @@ -1,4 +1,7 @@ +import 'dart:math'; + import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; import 'package:nextcloud_reminder/repeating_task.dart'; import 'package:nextcloud_reminder/types/tasks.dart'; @@ -26,6 +29,7 @@ class ScrollTable extends StatefulWidget { class _ScrollTableState extends State { final List _content = []; + final _contentStart = DateTime.now(); addTask(RepeatingTask task) { setState(() { @@ -52,7 +56,7 @@ class _ScrollTableState extends State { children: [ Text(t.task.title), Text("Projects: ${t.task.projects.isEmpty ? "none" : t.task.projects.join(", ")}"), Text("Contexts: ${t.task.contexts.isEmpty ? "none" : t.task.contexts.join(", ")}"), - Padding(padding: EdgeInsets.only(top: 16), + Padding(padding: const EdgeInsets.only(top: 16), child: Text(t.task.meta.isEmpty ? "" : "Meta:", style: Theme.of(context).textTheme.bodyLarge,) ), ] + List.of(t.task.meta.entries.map((e) => Text("${e.key}: ${e.value}"))), @@ -75,19 +79,51 @@ class _ScrollTableState extends State { }); } + Widget _todoHeader(BuildContext context) { + return Container( + width: 200, + height: 60, + alignment: Alignment.bottomLeft, + padding: const EdgeInsets.only(left: 8, right: 8, bottom: 12), + decoration: BoxDecoration(color: Theme.of(context).colorScheme.background), + child: Text("TODO", style: Theme.of(context).textTheme.titleSmall?.copyWith(color: Theme.of(context).colorScheme.primary),), + ); + } + + Widget _datesHeader(BuildContext context) { + return Row( + children: List.generate(10, (i) => Container( + width: 60, + height: 60, + alignment: Alignment.bottomCenter, + padding: const EdgeInsets.only(left: 8, right: 8, bottom: 16), + decoration: BoxDecoration(color: Theme.of(context).colorScheme.background), + child: Transform.rotate(angle: -pi/3, + child: Text(DateFormat.Md().format(_contentStart.add(Duration(days: i))), + style: Theme.of(context).textTheme.titleMedium?.copyWith(color: Theme.of(context).colorScheme.primary),), + ) + )) + ); + } + + List _buildTitles(BuildContext context) { return List.from(_content.map((RepeatingTask t) => Container( alignment: Alignment.centerLeft, - width: 150.0, + width: 200.0, height: 60.0, - margin: const EdgeInsets.only(left: 4, top: 1), - decoration: const BoxDecoration(color: Colors.white, border: Border(bottom: BorderSide(),)), - child: TextButton( + margin: const EdgeInsets.only(top: 1), + decoration: BoxDecoration(color: Theme.of(context).canvasColor, border: Border(bottom: BorderSide(color: Theme.of(context).colorScheme.background, width: 1),)), + child: SizedBox(width: 200, child: TextButton( onPressed: () => _showDetailsAndRemoveTask(context,t), + style: const ButtonStyle(alignment: AlignmentDirectional.centerStart), child: Text(t.task.title, - style: Theme.of(context).textTheme.labelMedium), - ) + softWrap: true, + textAlign: TextAlign.left, + style: Theme.of(context).textTheme.titleSmall, + ) + )), ) ) ); @@ -97,19 +133,19 @@ class _ScrollTableState extends State { Widget build(BuildContext context) { return SingleChildScrollView( child: Row( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, //TODO: Text in container wie bei _buildTitles oben und width/height/margin/etc. festnageln. - children: List.from([Text("Todo", style: Theme.of(context).dataTableTheme.headingTextStyle,)]) + _buildTitles(context), + children: List.from([_todoHeader(context)]) + _buildTitles(context), ), Flexible( child: SingleChildScrollView( scrollDirection: Axis.horizontal, child: Column( crossAxisAlignment: CrossAxisAlignment.start, - children: List.from([Text("header ... date, date, date .. fancy turned 60 degrees", style: Theme.of(context).dataTableTheme.headingTextStyle)]) + List.from(_content), + children: [_datesHeader(context)] + List.from(_content), ), ), ) diff --git a/lib/task_item.dart b/lib/task_item.dart index 8b1d7ed..220f679 100644 --- a/lib/task_item.dart +++ b/lib/task_item.dart @@ -26,7 +26,9 @@ class _TaskItemState extends State{ alignment: Alignment.center, width: 60.0, height: 60.0, - color: Colors.white, + decoration: BoxDecoration(border: Border( + left: BorderSide(color: Theme.of(context).colorScheme.background, width: 1) + ),), margin: const EdgeInsets.all(0.0), child: _done == null ? null : Checkbox(value: _done, onChanged: (newState) => setState(() { _done = newState!; diff --git a/pubspec.lock b/pubspec.lock index dd2a70e..0441561 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -108,7 +108,7 @@ packages: source: hosted version: "2.0.1" intl: - dependency: transitive + dependency: "direct main" description: name: intl url: "https://pub.dartlang.org" diff --git a/pubspec.yaml b/pubspec.yaml index 930291f..d9c64fc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,6 +43,7 @@ dependencies: collection: ^1.16.0 date_field: ^3.0.2 gap: ^2.0.1 + intl: ^0.17.0 dev_dependencies: flutter_test: