From 04a2a430cc4e9228413cf01770f44fd7415ecef9 Mon Sep 17 00:00:00 2001 From: Arkaprabha Chakraborty Date: Sun, 1 Mar 2026 15:13:07 +0530 Subject: [PATCH] feat: beautify the UI --- .../res/mipmap-hdpi/ic_launcher_round.png | Bin 5844 -> 7046 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 3276 -> 4223 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 8713 -> 10206 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 15358 -> 17131 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 22918 -> 24631 bytes generate-app-icons | 45 ++++ package.json | 4 +- src/components/CustomBottomSheet.tsx | 4 + src/components/SummaryCard.tsx | 9 +- src/components/TransactionItem.tsx | 2 +- .../dashboard/FinancialHealthGauges.tsx | 4 + src/components/dashboard/NetWorthHeroCard.tsx | 251 ++++++++++++++---- .../dashboard/RecentActivityList.tsx | 2 +- .../dashboard/WealthDistributionChart.tsx | 4 +- src/constants/index.ts | 2 + src/i18n/en.ts | 6 +- src/navigation/AppNavigator.tsx | 4 +- src/screens/DashboardScreen.tsx | 22 +- src/screens/ExpensesScreen.tsx | 58 ++-- src/screens/ModernDashboard.tsx | 6 +- src/screens/NetWorthScreen.tsx | 8 +- src/screens/SettingsScreen.tsx | 4 +- src/theme/md3.ts | 39 +-- 23 files changed, 362 insertions(+), 112 deletions(-) create mode 100755 generate-app-icons diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png index e0f650569c810922dfbfbfa07aa80cfa86f8f5c1..ecf0b5ad6dbcb6147cf8e031f442d39349061a33 100644 GIT binary patch delta 6906 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 delta 5695 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 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png index 811e686e2cd66bccc837a59dafd0d0df4b1214bb..cb8dddcad4505b4089d39f166498a81f03a67313 100644 GIT binary patch delta 4061 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 F{})tqXsiGL delta 3106 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 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png index dea7d2dd6ca1d0dc5965942b5ce5942a0ad948c0..8937dbd8a9411e4130bd2b0307b8adb00c38ddd9 100644 GIT binary patch literal 10206 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 Qga7~l07*qoM6N<$f^hma-T(jq diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png index a092d4179ffd9e53696cd0573dd172836b85a041..8ce14ac04db06d3555c664b665de41b9d2840772 100644 GIT binary patch literal 17131 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 Bg$e)w delta 15285 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 Hu0mjfQtw3K diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index cbd23c109c77a7d2f06e32c024eeb1acccd3b818..a3451b992f40c352a0bbaf508a05f970734c6f1b 100644 GIT binary patch literal 24631 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

IUGody47< zv|FhRsAtGB{bL44h_&8gOJ#)Vh5vZIfZt^CU@_!WuZzI(2B}+gW5hiugN1T(kZ5zq z=z@f>EhPTRl2D}S%Xh$q>Fjrw6&&-|vzUcHLYz;RIGi129NR4nkNevC$~9a2^g{=Ab`j#q z9nUikLtxatsG&}_;f5nMibCq5Pm%rl$! zuHTAQ#W;+^bu1(0FI?seNTi;Sy44?*tgoAQsn=T{>ta;tmuD;5Jg$R;*{pp=koe5| z_(OjoU(m-Y(RZ~EpzPZ8Z~Z^uOvb~-aFrb#yr&&T$fIxhb`4_jdN@ni2M>1h{p&tT zlb)IvM28j+@9}z|u%HWdVW_& zpFJNOrf$u^ne(m~Iw`}1hFuv3yp7rO{Ef0*XU6`}j@Fho=Qdy@$eF@*>@UfI^5kDK z&C9ZU%oXCzHhQA`w%SsEi<0Yn8IK5J-p;JYxuWN*;!?7*$=s65MQf$|d1-s#EaqIi zl}WiekNok(A4}7QKFX8+{dQ0_iK78~f+<0f*0$Ty~?c#kvIEx8C2l z>y?CKwM(;>wRgIbupsBd;cd1OTDx~&{sqA~<*yx9=CY>D5~d5JJN zz5Tby_7 zHjl`@3qA`IeX7}oAZ}D#MEI6;|6$ROH;SoFXZT86cl75nv%Kp1)G;S=Eiu4r?PpYi zzJbNfZS4=CfLx&Cs1-N|~0SSfg4l=Oshm zCAiO*1Q8<@UnY^V+`=~!@FEX7MymZTaXbCaRbL+_bcdRF3h8G%LEfjUsO1yEimx5d z82|iypWNWl$m^NEcbye{trW%=SVDcxA}hcZG?{3Dc#O8Q37mmF1z-J^DtfK!`$!fq z2QpLiEQ7iV$RxoY<_^d$74_c@u+&o%kg7?JsO6Ni z30<7~zDjp%|D@{kB)pUQgBCNTIno8ofdU^St!Pr0=&^bhIZmv}{ZUL0fepO0?MIXDv4xYF%5zPGm^O|LhRl!V9SAnx1~v(Vt&giPKPLZI;W8qOzi{O(B0PcU8Hcoz zVA}pgXFv)VQpD3>HP*y)bu0Rzo&ZIoBIFG0qgS%LBA#4n0U;&)_*o*?vZ$gHemMDS zi(1%_R(#=#G(P{xm_C4-OX1Z{qJK<8HLYa$RKU`d5dOcVe7P|^SpSq`{^aGfTx$+f zUXVwhNb|*7x#Bu!anpmd|Dqty&UmT+$ouVCh(Pe(Uw`~%*8aPG$Mf-TA+;J}1@GIc zhAQT~aw4Ovh58S1)y8hrEjR9(Md(rf+u+$>3|QcN2ITSRyD_hARp<2$G3rO?2;<1_ zt;dLFNx0Aodq6ze$C^H!F%wUESTa40M?F$+9hw3Ch8G^IE83MVT#eFSwEqS^AjvrmT86km><+k#`=pjwiNf48oS*{eEbdU@!J_ zh1T`l3%Qe4Z0^_(Ag`pf;FCz?;2XRmNY!esGoAjtqjJ2igj_gm#NaK0aR~{L8%i`2 z4C1=Cd1+(+9Y|mB5~TvN{DXZXL;M$k@VS5E#Lx*=WP+AzjA?tY-m(DlReDnHm@y-0 zl9dYS6YlLfC_jm^7lLR&5!I>_y@M=!;G&ryAXEel-?QMGA(XHi8tAQ3rB_d89w0_7h;?k;idSdFR8UWoSh%y@^J z|DOP{9!}x5FlNe3zW4iwIsHrD>#UD|7#CvGXS>nagzJALCb*zGaLlJZPoLUhNV9|< zU)bVO!?sO4diU?zENk{B&Ih4@Zzr0d)}#$pUPQYYRHhd*PsCGm(C`*>jRVHB|qZI+a6`?l$j+nes>UAY`W|a zI?DhCaNMr8cvm5%q))#A9QDcbDCBdcH8aAV1)hE24pzPYPD%fu17{w~&~Z~K{O)SL!7e7n<>`8M-*~JD8Wq{RD^Xk{b4yHu>}Mdn*%OM8GOz`kuf5n|Y`8KIkCe~D6iUA@d5*q!B@hQ@$ z_YWxzefQX`>zA)P7&hryoZFtqihbbLC5r70wJ(}F(cT2ZC>R)qL8`2R(UYb#`{U!2kfy0Y~kwCv4Y)2*K0;x|82uby2|asyGM=Z%E6vv~b+n zU*XGF|0b3Jnj7o+!TCqBY32JUTEe+MaFO>lykST5M=6m-ddv{H&S3&~+feVm4l+O_ z)uF#`U!8$0&f%*wZoBGB zBr~bN?M_vJ;_x31i5n3YIO)Gv#uP0)LMzte57~_O*@^8D5&R*F6~`}2M3LxSTZLs= zNXx`DO(YUU)yY&;QZrx}qb5#e{Pe>aJLOOY3>y>JY;X_k@(wTn*tjbNbQJ>tdS)O{=}ZN^`qk2Z$Vdi_9M7N;;~6}1JbecYCXq}9%G*Ok@8UGz-@95!S26&= zpMVSYWG_S>NC^J^s~>XzZ?7d?US=P3N88Zi(aIMXHDv~u-})cQt9k{+86j9a_a%P( z9Wee=w7^Mj}p8ecLHDNih{bD0Wv^yH*`qxfrOx?sgbL{a008B z%=I>Yj$;6ULZOi5;A2ncn?L;%iDW9m1b6@PD*k=jk4dM?y``&1knVN<`f=S3{Bpa` z)h%WQiR|{`Z=_$-5>_|H8rGuqlsFK$HJ@!_&gU=V^OyZJwqLuE*yB)!Zg5 z?KEn_9`6nx?Cp>$xbXY8peM_ars;^caZ5pot|xipiTk$Q!NZ3=sYc8OKjZ)*tgn!o0_b+7A}lgd0{|?-7KdhaO>sej&t+R#{lPoD{Mh}ddXnD#21M@=f-#e4 zuzJ~htoh&_G+hss=vVUz6jkH>d9Tu3U&rLbjzv+6ai~?jYv?z06t6!107%R6f-Et9 z`;2dagnv$Dk;QGGoVGPOadw7C!re%tWXY0+05hNCyzkt=%;P^*lK8i5SOZd$NTu5~ z`0OU!2>hz63+?JPfFBC*47*?-@OSXmjqCVe!D}pd^=X#B^A=mzEvLDmj!}~j=Lfg{ zm$H~$MuZUT*t&`9zBGrmA1w5OUBaS*OCkb^k;^js6X$c`_kR)CxkL!Tzi$5-cmMoy zQt6a46U1v@l#u@2+L;*P(~(B5@|6>b;SDUd< z_|9AW?9#KyWHR&{GLoU=rZ8smAq*QgnVQY zlw-RCjaiur`LGm89Z`);DWnvxrzsFzk#H;)A`OthH$#Y z((cVs1_)YS{floAxjpK36y5XJy(XV+X8gfNamB31%`>k=uHm<$M89a0q)3Np{ zszzB=Uj~n!z~sY@V#{fi*jAi1VVG8|s+< z%G12|`28$-`(^64Z$uza^n^X?hLb8;7P)Me&t3j=K5@Y}OHSi&KmQ1~eD^%8LKdM$ z^8ooZIszv?wf`W_|L#wjed<|(Yya``{aH9#~s&S0$7d+Q(B{A z-vfnQj*4D=IsS}`IR1<;QZrx(0E^y!iQBIEI%}7`Ln@UC3gIpTh@uZtED^XX@irEe zQB8l4+gx?1jGGGl#9zo!)u)zk|MDM@F0Unj4ks&)Z;lmVPk|I~%AJ^S!oH($ZB_ueLvNTH~T*JrVi zabtA6XJkH`W$>5-`TlSJO}{}yW93^R;FZVk=eBFULThs)s-6s#?oT=BROP|4ObWRi zner+o9Xy*^bIzu`x;MZ6pYti?v-WnMenR(VE=eGzgV!f*^q22~pco~Belp)lafv<@;!fByElOQIFDa{Y55~mWh$iF?8%?K6}|s zOg{8j=bl(bm_rA$I_xU;7z4N(nuqTECHMaNnp2H@_F*lN4CtyuT~|baAO&$R1|e+X z%;%Ao#fXVBxa?Q=(r?hPk}v$dw_f1ZD=%d8+La`nK$;>01l=bh-a694EaX87%Bp%{ znR!gh^aa0!?vurKdM9>f3=6Fz0xHe0#>><81l2x;Tq_42egYR=_1iWLU0XJ+_+wA)meMCeoSml6_FOWg|CTauy#he4S(}{>;lmd6 zuof*eNC^=gs_enRqEIMs@_Aq9v)}zGs_NMv_L$h?$L_KOM>_ew-(AnYZ~KXDO|*9f zUyk5O0sqhMqu@DsiQ>_KAG6OS>W}tPghF#uBVWDlHl`kV3Qdi5yg%<1-g@p~CLVl* zolG|d71ez>{G`v2%N1C%;596>VDDM$tJbYLI%>OwA$%6#(6jr$_}d?GR}g_Zi|O7= zd3*-%^nza$fsxNrR@Ix&UUoBQTznO}o+wHD8`rGl7vDXPW$(W3tYM0CmtWG4FhI!% zE%uA|h)#+`cjnSml_m3DCfkx_%BO5B63GY+I9~??AJPtsajeSH znF$0?$mco#vY#>M{ENNowr*I<8_z$<;E`iEa7JnOBq0RN4Lf-7j$3&2p5M{5V;jk& zH)9bN!U8JV7{Npo8|SMd)B)aug-o^~4NF`&q$hD%7KMD4+M#3k_~*aPF`vEwP18$` z`T#FHd@p~!@qcKj+l;2iFL*;YM%(IpD@8%pH%drZk`JULTQKrt1`Hj$_WHlQKzU_# zw|JfIb_RI&%@?@#!jsW7EufYQj^%)$0x2E>jtXctLOocD0TlNISSCWz`Pxta%*^9H z5xCbf&Da?r+-87PAHK)G{`gZ~f8qghEzO=ISh4LfGghdrexq3ESz{io;|yS#21Y(d zRiAzwefovW`Rq68)wjQMc|7swvaS5}maBN|?%$!Q(s2!mBfQW!?=9ZrOz3_)hEGH- z6~iofULrpZG!}AszWeKcG4t3t-NFD}9S;z}>ZMCCja=JPqD>HuLWpC95H||{C<5M; z9S-pJt0}!CO+vva~*%Cb|lx@OhvDL%=z56x$dqPIR9JM)2na) zSpR+3H);9e1^oD{pX9N>{t{hR9G8%g&Nh@g)c>0N8M1=U?^6f}88}y5G&|2J<&7YZ z1sVkcX&J2k@SP4&RM(=T>Crn3vyk^`6e4!kfaU_*+wXEDZvyufuPXj+Ym9ISPSG_A zxfcF#)kUmWGM_Uq{sHN-^3su4ab-C{y5pxF#`vj+vFgM3coq%%1DUFVna`u@38o+YNj~=ZZ!l)^A->`|*6Ds#XG7gK zmM@;qlDRMO;eyv$zw!ebwr?SyYsE4RK%gkX@uv}yv?2D#@Usv~ng)_mQm8K1+1SpdAk2 zk1^ccDW&|HjD#@?EYqZ_rawRV`^)yu^ZObD*nKIu=T}#A-*2xYl_@KBn_s>UcXG6l zPXQ0m0TCt&iILBd%9Jzn_|rJ%(-$)Kpu=`4fm2xT-&nt$Z5!9HY3&NOtY5>Hjq7OG zwvomi+c0uDc5K^XXP5wz=?t05DpFr?L2r=WT6DXw+yYYOzx=9@Wt{xaNFkw_A){ z9zB(2#H2$w^rTNS~y`GZEdy}(pa(#5>_ z?8ChF*nO<|@Et5^dHzk2eQ12*rrSGVkuofD;{Ekc6-6VU@Rj6=d+pi4y{=dn_jK9TR)&q6!sWmD zC;bNx@7Amnd(;_j8PnZm^wFA8xw*dED?lM4|B4^0JXD6urIe z2&6R0Wm`Gm&=dIDb+?!B*4?w%OTD_tE?iC zOm$gy1k*BUX=q@_w#{tcvYvIzm#}KdLRK$b#O5{2X{_6VWg4iOhN|l!m1FTq;uKGz z@SxdJ(;GgqKb;DYASlw(5p`kmAz}IsP0QyMHQ(`21`mZ71d-as(h+MfvRe> zHrLbKP)AdJJ@wnS(Okcc#vNN}*uIr*o7Pibx0OP!8OtRpXPzN|KSWyu|^%jdZF)2uC+B?(x2uvsfMW~=CHlYh8q_K%S zZ^&iY-(S(|f($_L&JwW+v2G_euEE}ou`%2l_dcUgKw2il#vaHipZx~2=bVF{NcI@Q z_nxbJ7{ICAd0DMZ4ZQNizj@-mKeFtdH?fR7iDU}JiP;UUy=;_zJ2eunK-wF6M;+Lr zf>g1Lcn<_NM+U~JQD_<ORyySUdvfaX^AAG4w%l-pZo%co&0Gsam!4q3%TKam(c3iCZAMxas-~l8S~PGa)@@7Z*kN}+7lLti;h|fCUwoIi zJ}^Ea4`^0`Z6+#|0Hukcgffz_TewTwB^dyMx_R$(DF!HN1w7?}`8yu+^6m zX%;XG1%#qd*}I036A$K~BTwPLLyuw5h;b-N@qO)0=&=moH8AwHw`^F$2lHQL(Hqb6 z;lejrzh)UNjSV18+aXQUoEgGpf>@b&q=1WnE5N7m@k0{NN50cuq?TU;6H``4m8AZ- z=eQjqg$P=5!}i0{?F~1|rxvqi``e|I%PlD}jRK}=q6k5{yo%bvBN;R05GEaR6l15% zq-NmIVEKC);d|ZC(-|Pt+`#BpDCF6+W(6yjEMV!vH(9Z0E*n-aqoHmKg-!7(W{2qp`#fwaVldEoWY0*Q|LE%B#C4)ROa4E^nUDR3=nF(h)(tO z+c&de)l!x(n#a<2-e&Ex#cW=`hL*-1n1w77Y!6LULse9VF$5q|0%lbZd&# z9iO;hHO-`A7r->1u~9;@tKv$S^TC}Z%5@eCL~ivB}J z(QnW&s{8gw_3ek?wP7D5_(-4bQw$LIfF;}%Ow*vbVFwM{x3Yc92DWZk!`2O}*uG&k zbz3*u7TO)#$+k3-&t)_De0Hp98b?`{^%*Sd2-rg9DTACYsgCy75Od;EZP*hCQBA?5lD89I6X9O?q!z)Q= zGN_sgLXb*VfDj~8Wh9bmv_z6b+IGLlR8&%4*@v>~UfavctDY>YsCu!is(M~odDYTH zD!nz4Ottw!KdOXY3LjYp*cm$M;HCoQmXv)gqfje^GEho6*ffnH0x<|7YOxJ;y?_dk zDQQ`%C8e22rm~768YQAm5n?m;2GHxU_f}X7tapxW1DXIct^xZAykq$PjV5p3-Vuq? P00000NkvXXu0mjfJh-;+ literal 22918 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 jd}{P;NI/dev/null + + sips -z "$size" "$size" "$ICON" \ + --out "$round_icon" >/dev/null + + # Proper circular crop with preserved transparency (ImageMagick) + if command -v magick >/dev/null 2>&1; then + magick "$round_icon" \ + -alpha set -background none \ + \( -size ${size}x${size} xc:none \ + -fill white -draw "circle $((size/2)),$((size/2)) $((size/2)),1" \) \ + -compose CopyOpacity -composite \ + "$round_icon" + else + echo "Warning: ImageMagick not found; skipping circular crop for $round_icon" >&2 + fi +done + +# iOS icons +OUT="ios/Expensso/Images.xcassets/AppIcon.appiconset" + +sips -z 40 40 "$ICON" --out "$OUT/Icon-20@2x.png" >/dev/null +sips -z 60 60 "$ICON" --out "$OUT/Icon-20@3x.png" >/dev/null +sips -z 58 58 "$ICON" --out "$OUT/Icon-29@2x.png" >/dev/null +sips -z 87 87 "$ICON" --out "$OUT/Icon-29@3x.png" >/dev/null +sips -z 80 80 "$ICON" --out "$OUT/Icon-40@2x.png" >/dev/null +sips -z 120 120 "$ICON" --out "$OUT/Icon-40@3x.png" >/dev/null +sips -z 120 120 "$ICON" --out "$OUT/Icon-60@2x.png" >/dev/null +sips -z 180 180 "$ICON" --out "$OUT/Icon-60@3x.png" >/dev/null +sips -z 1024 1024 "$ICON" --out "$OUT/Icon-1024.png" >/dev/null + +echo "Icons generated!" diff --git a/package.json b/package.json index 27c897b..208c208 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "Expensso", - "version": "0.0.1", + "name": "expensso", + "version": "0.1.1-alpha", "private": true, "scripts": { "android": "react-native run-android", diff --git a/src/components/CustomBottomSheet.tsx b/src/components/CustomBottomSheet.tsx index 1537e6f..87387cf 100644 --- a/src/components/CustomBottomSheet.tsx +++ b/src/components/CustomBottomSheet.tsx @@ -199,6 +199,10 @@ function makeStyles(theme: MD3Theme) { backgroundColor: colors.surfaceContainerLow, borderTopLeftRadius: shape.extraLarge, borderTopRightRadius: shape.extraLarge, + borderTopWidth: 1, + borderLeftWidth: 1, + borderRightWidth: 1, + borderColor: colors.outlineVariant, }, handleContainer: { alignItems: 'center', diff --git a/src/components/SummaryCard.tsx b/src/components/SummaryCard.tsx index 5c02149..b5862cd 100644 --- a/src/components/SummaryCard.tsx +++ b/src/components/SummaryCard.tsx @@ -21,7 +21,13 @@ export const SummaryCard: React.FC = ({ }) => { const {colors, typography, elevation, shape, spacing} = useTheme(); return ( - + {icon && {icon}} {title} @@ -36,7 +42,6 @@ export const SummaryCard: React.FC = ({ const styles = StyleSheet.create({ card: { - borderRadius: 16, padding: 16, shadowColor: '#000', shadowOffset: {width: 0, height: 2}, diff --git a/src/components/TransactionItem.tsx b/src/components/TransactionItem.tsx index ffdd42d..552007b 100644 --- a/src/components/TransactionItem.tsx +++ b/src/components/TransactionItem.tsx @@ -76,7 +76,7 @@ const styles = StyleSheet.create({ iconCircle: { width: 44, height: 44, - borderRadius: 22, + borderRadius: 4, justifyContent: 'center', alignItems: 'center', }, diff --git a/src/components/dashboard/FinancialHealthGauges.tsx b/src/components/dashboard/FinancialHealthGauges.tsx index ff4e91b..80bcd56 100644 --- a/src/components/dashboard/FinancialHealthGauges.tsx +++ b/src/components/dashboard/FinancialHealthGauges.tsx @@ -187,6 +187,8 @@ function makeStyles(theme: MD3Theme) { flex: 1, backgroundColor: colors.surfaceContainerLow, borderRadius: shape.medium, + borderWidth: 1, + borderColor: colors.outlineVariant, padding: spacing.lg, ...elevation.level1, }, @@ -236,6 +238,8 @@ function makeStyles(theme: MD3Theme) { marginTop: spacing.md, backgroundColor: colors.surfaceContainerLow, borderRadius: shape.medium, + borderWidth: 1, + borderColor: colors.outlineVariant, padding: spacing.lg, ...elevation.level1, }, diff --git a/src/components/dashboard/NetWorthHeroCard.tsx b/src/components/dashboard/NetWorthHeroCard.tsx index 22e8ad9..2efa5e2 100644 --- a/src/components/dashboard/NetWorthHeroCard.tsx +++ b/src/components/dashboard/NetWorthHeroCard.tsx @@ -4,16 +4,18 @@ */ import React, {useMemo} from 'react'; -import {View, Text, StyleSheet} from 'react-native'; +import {View, Text, StyleSheet, Dimensions} from 'react-native'; import {LineChart} from 'react-native-gifted-charts'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; -import Animated, {FadeInDown} from 'react-native-reanimated'; +import Animated, {FadeInDown, FadeIn} from 'react-native-reanimated'; import {useTheme} from '../../theme'; import type {MD3Theme} from '../../theme'; import {formatCurrency, formatCompact} from '../../utils'; import type {Currency, NetWorthSnapshot} from '../../types'; +const {width: SCREEN_WIDTH} = Dimensions.get('window'); + interface NetWorthHeroCardProps { netWorth: number; totalAssets: number; @@ -39,10 +41,26 @@ export const NetWorthHeroCard: React.FC = ({ })); }, [history]); + // Calculate trend percentage from history + const trendPercentage = useMemo(() => { + if (history.length < 2) return null; + const latest = history[history.length - 1].netWorth; + const previous = history[history.length - 2].netWorth; + if (previous === 0) return null; + return ((latest - previous) / Math.abs(previous)) * 100; + }, [history]); + const isPositive = netWorth >= 0; + const isTrendUp = trendPercentage && trendPercentage > 0; return ( + {/* Decorative Background Pattern */} + + + + + {/* Sparkline Background */} {sparklineData.length >= 2 && ( @@ -55,69 +73,127 @@ export const NetWorthHeroCard: React.FC = ({ hideAxesAndRules color={ theme.isDark - ? theme.colors.primaryContainer + '40' - : theme.colors.primary + '25' + ? theme.colors.primaryContainer + '60' + : theme.colors.primary + '35' } startFillColor={ theme.isDark - ? theme.colors.primaryContainer + '20' - : theme.colors.primary + '12' + ? theme.colors.primaryContainer + '25' + : theme.colors.primary + '15' } endFillColor="transparent" - thickness={2} - width={280} - height={100} + thickness={2.5} + width={SCREEN_WIDTH - 80} + height={120} adjustToWidth isAnimated animationDuration={800} initialSpacing={0} endSpacing={0} - yAxisOffset={Math.min(...sparklineData.map(d => d.value)) * 0.95} + yAxisOffset={Math.min(...sparklineData.map(d => d.value)) * 0.92} /> )} {/* Content Overlay */} - - - NET WORTH + {/* Header with trend badge */} + + + + NET WORTH + + {trendPercentage !== null && ( + + + + {Math.abs(trendPercentage).toFixed(1)}% + + + )} + {/* Main Value */} {formatCurrency(netWorth, currency)} - {/* Asset / Liability Split */} - - - - - Assets - - {formatCompact(totalAssets, currency)} - + {/* Asset / Liability Split - Enhanced */} + + + + + + + + Assets + + {formatCompact(totalAssets, currency)} + + - - - - - - Liabilities - - {formatCompact(totalLiabilities, currency)} - + + + + + + + + + Liabilities + + {formatCompact(totalLiabilities, currency)} + + + + + {/* Visual Progress Bar */} + + + @@ -131,70 +207,143 @@ function makeStyles(theme: MD3Theme) { card: { marginHorizontal: spacing.xl, marginTop: spacing.md, - borderRadius: shape.extraLarge, + borderRadius: shape.medium, + borderWidth: 1.5, + borderColor: colors.outlineVariant, backgroundColor: colors.surfaceContainerLow, overflow: 'hidden', ...elevation.level3, }, + decorativeBackground: { + position: 'absolute', + top: 0, + left: 0, + right: 0, + bottom: 0, + overflow: 'hidden', + }, + decorCircle: { + position: 'absolute', + width: 200, + height: 200, + borderRadius: 100, + top: -60, + right: -40, + }, + decorCircle2: { + position: 'absolute', + width: 150, + height: 150, + borderRadius: 75, + bottom: -30, + left: -20, + }, sparklineContainer: { position: 'absolute', bottom: 0, left: 0, right: 0, - opacity: 0.6, + opacity: 0.7, overflow: 'hidden', - borderRadius: shape.extraLarge, }, content: { padding: spacing.xxl, + paddingTop: spacing.xl, + paddingBottom: spacing.lg, + }, + headerRow: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + marginBottom: spacing.sm, }, labelRow: { flexDirection: 'row', alignItems: 'center', gap: spacing.xs, - marginBottom: spacing.sm, }, label: { - ...typography.labelSmall, + ...typography.labelMedium, color: colors.onSurfaceVariant, - letterSpacing: 1.5, + letterSpacing: 1.2, + fontWeight: '600', + }, + trendBadge: { + flexDirection: 'row', + alignItems: 'center', + gap: 4, + paddingHorizontal: spacing.sm, + paddingVertical: 4, + borderRadius: shape.small, + }, + trendText: { + ...typography.labelSmall, + fontWeight: '700', }, value: { ...typography.displaySmall, - fontWeight: '700', + fontWeight: '800', marginBottom: spacing.lg, + marginTop: spacing.xs, + letterSpacing: -0.5, + }, + splitContainer: { + gap: spacing.md, }, splitRow: { flexDirection: 'row', alignItems: 'center', backgroundColor: colors.surfaceContainer, borderRadius: shape.medium, - padding: spacing.md, + borderWidth: 1, + borderColor: colors.outlineVariant + '50', + padding: spacing.lg, }, splitItem: { flex: 1, flexDirection: 'row', alignItems: 'center', gap: spacing.sm, - justifyContent: 'center', }, - splitDot: { - width: 8, - height: 8, - borderRadius: 4, + iconWrapper: { + width: 32, + height: 32, + borderRadius: shape.small, + justifyContent: 'center', + alignItems: 'center', + }, + splitTextContainer: { + flex: 1, }, splitLabel: { ...typography.labelSmall, color: colors.onSurfaceVariant, + marginBottom: 2, }, splitValue: { - ...typography.titleSmall, + ...typography.titleMedium, fontWeight: '700', }, splitDivider: { width: 1, - height: 28, + height: 36, backgroundColor: colors.outlineVariant, + marginHorizontal: spacing.xs, + }, + progressBar: { + flexDirection: 'row', + height: 6, + borderRadius: 3, + overflow: 'hidden', + backgroundColor: colors.surfaceContainerHighest, + }, + progressAsset: { + borderTopLeftRadius: 3, + borderBottomLeftRadius: 3, + }, + progressLiability: { + borderTopRightRadius: 3, + borderBottomRightRadius: 3, }, }); } diff --git a/src/components/dashboard/RecentActivityList.tsx b/src/components/dashboard/RecentActivityList.tsx index b20277a..9c1f2d7 100644 --- a/src/components/dashboard/RecentActivityList.tsx +++ b/src/components/dashboard/RecentActivityList.tsx @@ -174,7 +174,7 @@ function makeStyles(theme: MD3Theme) { iconCircle: { width: 40, height: 40, - borderRadius: 20, + borderRadius: 4, justifyContent: 'center', alignItems: 'center', }, diff --git a/src/components/dashboard/WealthDistributionChart.tsx b/src/components/dashboard/WealthDistributionChart.tsx index 6c613ea..3679e5c 100644 --- a/src/components/dashboard/WealthDistributionChart.tsx +++ b/src/components/dashboard/WealthDistributionChart.tsx @@ -126,6 +126,8 @@ function makeStyles(theme: MD3Theme) { marginTop: spacing.xl, backgroundColor: colors.surfaceContainerLow, borderRadius: shape.large, + borderWidth: 1, + borderColor: colors.outlineVariant, padding: spacing.xl, ...elevation.level1, }, @@ -164,7 +166,7 @@ function makeStyles(theme: MD3Theme) { legendDot: { width: 10, height: 10, - borderRadius: 5, + borderRadius: 2, }, legendText: { flex: 1, diff --git a/src/constants/index.ts b/src/constants/index.ts index f592bc3..3f4d63e 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -48,6 +48,7 @@ export const STATIC_EXCHANGE_RATES: ExchangeRates = { INR: 1, USD: 84.5, // 1 USD = 84.5 INR EUR: 91.2, // 1 EUR = 91.2 INR + GBP: 106.8, // 1 GBP = 106.8 INR }; // ─── Currency Symbols ──────────────────────────────────────────────── @@ -56,6 +57,7 @@ export const CURRENCY_SYMBOLS: Record = { INR: '₹', USD: '$', EUR: '€', + GBP: '£', }; // ─── Theme Colors ──────────────────────────────────────────────────── diff --git a/src/i18n/en.ts b/src/i18n/en.ts index 0c7ee97..2c559cb 100644 --- a/src/i18n/en.ts +++ b/src/i18n/en.ts @@ -18,7 +18,7 @@ export default { // ─── Tabs ─── tabs: { dashboard: 'Dashboard', - expenses: 'Expenses', + expenses: 'Transactions', netWorth: 'Net Worth', settings: 'Settings', }, @@ -38,9 +38,9 @@ export default { lastMonth: 'Last Month', }, - // ─── Expenses ─── + // ─── Transactions ─── expenses: { - title: 'Expenses', + title: 'Transactions', addExpense: 'Add Expense', addIncome: 'Add Income', amount: 'Amount', diff --git a/src/navigation/AppNavigator.tsx b/src/navigation/AppNavigator.tsx index afd5b57..9cf38b3 100644 --- a/src/navigation/AppNavigator.tsx +++ b/src/navigation/AppNavigator.tsx @@ -17,7 +17,7 @@ const Tab = createBottomTabNavigator(); const TAB_ICONS: Record = { Dashboard: {focused: 'view-dashboard', unfocused: 'view-dashboard-outline'}, - Expenses: {focused: 'receipt', unfocused: 'receipt'}, + Transactions: {focused: 'receipt', unfocused: 'receipt'}, NetWorth: {focused: 'chart-line', unfocused: 'chart-line'}, Settings: {focused: 'cog', unfocused: 'cog-outline'}, }; @@ -71,7 +71,7 @@ const AppNavigator: React.FC = () => { options={{tabBarLabel: t('tabs.dashboard')}} /> diff --git a/src/screens/DashboardScreen.tsx b/src/screens/DashboardScreen.tsx index 5c691d0..5508170 100644 --- a/src/screens/DashboardScreen.tsx +++ b/src/screens/DashboardScreen.tsx @@ -1,4 +1,4 @@ -import React, {useCallback, useEffect} from 'react'; +import React, {useCallback} from 'react'; import { View, Text, @@ -15,7 +15,7 @@ import {BarChart, PieChart} from 'react-native-gifted-charts'; import {SummaryCard, SectionHeader, TransactionItem, EmptyState} from '../components'; import {useSettingsStore, useNetWorthStore, useExpenseStore} from '../store'; -import {formatCurrency, formatCompact, percentageChange} from '../utils'; +import {formatCurrency, formatCompact} from '../utils'; import {COLORS} from '../constants'; import {useThemeColors, useIsDarkTheme} from '../hooks'; @@ -280,7 +280,9 @@ const styles = StyleSheet.create({ backgroundColor: COLORS.primary + '15', paddingHorizontal: 12, paddingVertical: 6, - borderRadius: 20, + borderRadius: 0, + borderWidth: 1, + borderColor: COLORS.primary + '30', }, currencyText: { fontSize: 13, @@ -297,7 +299,9 @@ const styles = StyleSheet.create({ backgroundColor: COLORS.surface, margin: 20, marginTop: 12, - borderRadius: 20, + borderRadius: 4, + borderWidth: 1, + borderColor: COLORS.border, padding: 24, shadowColor: '#000', shadowOffset: {width: 0, height: 4}, @@ -359,7 +363,9 @@ const styles = StyleSheet.create({ chartCard: { backgroundColor: COLORS.surface, marginHorizontal: 20, - borderRadius: 16, + borderRadius: 4, + borderWidth: 1, + borderColor: COLORS.border, padding: 20, alignItems: 'center', shadowColor: '#000', @@ -396,7 +402,7 @@ const styles = StyleSheet.create({ legendDot: { width: 10, height: 10, - borderRadius: 5, + borderRadius: 2, marginRight: 8, }, legendText: { @@ -414,7 +420,9 @@ const styles = StyleSheet.create({ transactionsList: { backgroundColor: COLORS.surface, marginHorizontal: 20, - borderRadius: 16, + borderRadius: 4, + borderWidth: 1, + borderColor: COLORS.border, overflow: 'hidden', shadowColor: '#000', shadowOffset: {width: 0, height: 2}, diff --git a/src/screens/ExpensesScreen.tsx b/src/screens/ExpensesScreen.tsx index a7bb713..d34094d 100644 --- a/src/screens/ExpensesScreen.tsx +++ b/src/screens/ExpensesScreen.tsx @@ -222,26 +222,29 @@ const ExpensesScreen: React.FC = () => { {t('expenses.title')} - item.id} - renderItem={({item}) => ( - - )} - ListHeaderComponent={renderHeader} - ListEmptyComponent={ - - } - ItemSeparatorComponent={() => ( - - )} - contentContainerStyle={{paddingBottom: 80 + insets.bottom}} - showsVerticalScrollIndicator={false} - /> + {renderHeader()} + + + item.id} + renderItem={({item}) => ( + + )} + ListEmptyComponent={ + + } + ItemSeparatorComponent={() => ( + + )} + contentContainerStyle={{paddingBottom: 80 + insets.bottom}} + showsVerticalScrollIndicator={false} + /> + {/* FAB */} { navigation.navigate('Expenses')} + onViewAll={() => navigation.navigate('Transactions')} /> @@ -196,7 +196,9 @@ function makeStyles(theme: MD3Theme) { backgroundColor: colors.primaryContainer, paddingHorizontal: spacing.md, paddingVertical: spacing.sm, - borderRadius: 20, + borderRadius: 4, + borderWidth: 1, + borderColor: colors.outline, }, currencyText: { ...typography.labelMedium, diff --git a/src/screens/NetWorthScreen.tsx b/src/screens/NetWorthScreen.tsx index 33c3705..4434697 100644 --- a/src/screens/NetWorthScreen.tsx +++ b/src/screens/NetWorthScreen.tsx @@ -545,6 +545,8 @@ function makeStyles(theme: MD3Theme) { marginHorizontal: spacing.xl, marginTop: spacing.md, borderRadius: shape.extraLarge, + borderWidth: 1.5, + borderColor: colors.outlineVariant, padding: spacing.xl, ...elevation.level2, }, @@ -586,6 +588,8 @@ function makeStyles(theme: MD3Theme) { backgroundColor: colors.surfaceContainerLow, marginHorizontal: spacing.xl, borderRadius: shape.large, + borderWidth: 1, + borderColor: colors.outlineVariant, padding: spacing.xl, alignItems: 'center', ...elevation.level1, @@ -594,6 +598,8 @@ function makeStyles(theme: MD3Theme) { backgroundColor: colors.surfaceContainerLow, marginHorizontal: spacing.xl, borderRadius: shape.large, + borderWidth: 1, + borderColor: colors.outlineVariant, overflow: 'hidden', ...elevation.level1, }, @@ -610,7 +616,7 @@ function makeStyles(theme: MD3Theme) { listIcon: { width: 42, height: 42, - borderRadius: 21, + borderRadius: 4, justifyContent: 'center', alignItems: 'center', }, diff --git a/src/screens/SettingsScreen.tsx b/src/screens/SettingsScreen.tsx index ee10de0..0adbc96 100644 --- a/src/screens/SettingsScreen.tsx +++ b/src/screens/SettingsScreen.tsx @@ -228,7 +228,7 @@ const SettingsScreen: React.FC = () => { icon="information" iconColor="#7E57C2" label={t('settings.version')} - value="0.1.0 Alpha" + value="0.1.1-alpha" /> @@ -346,6 +346,8 @@ function makeStyles(theme: MD3Theme) { sectionCard: { backgroundColor: colors.surfaceContainerLow, borderRadius: shape.large, + borderWidth: 1, + borderColor: colors.outlineVariant, overflow: 'hidden', ...elevation.level1, }, diff --git a/src/theme/md3.ts b/src/theme/md3.ts index a1e17cd..c69f1d9 100644 --- a/src/theme/md3.ts +++ b/src/theme/md3.ts @@ -167,67 +167,70 @@ export const MD3DarkColors: typeof MD3LightColors = { // ─── MD3 Typography Scale ──────────────────────────────────────────── -const fontFamily = 'System'; // Falls back to Roboto on Android, SF Pro on iOS +const fontFamily = 'JetBrainsMono-Regular'; +const fontFamilyMedium = 'JetBrainsMono-Medium'; +const fontFamilySemiBold = 'JetBrainsMono-SemiBold'; +const fontFamilyBold = 'JetBrainsMono-Bold'; export const MD3Typography = { displayLarge: { - fontFamily, + fontFamily: fontFamilyBold, fontSize: 57, fontWeight: '400' as const, lineHeight: 64, letterSpacing: -0.25, }, displayMedium: { - fontFamily, + fontFamily: fontFamilyBold, fontSize: 45, fontWeight: '400' as const, lineHeight: 52, letterSpacing: 0, }, displaySmall: { - fontFamily, + fontFamily: fontFamilySemiBold, fontSize: 36, fontWeight: '400' as const, lineHeight: 44, letterSpacing: 0, }, headlineLarge: { - fontFamily, + fontFamily: fontFamilySemiBold, fontSize: 32, fontWeight: '400' as const, lineHeight: 40, letterSpacing: 0, }, headlineMedium: { - fontFamily, + fontFamily: fontFamilySemiBold, fontSize: 28, fontWeight: '400' as const, lineHeight: 36, letterSpacing: 0, }, headlineSmall: { - fontFamily, + fontFamily: fontFamilyMedium, fontSize: 24, fontWeight: '400' as const, lineHeight: 32, letterSpacing: 0, }, titleLarge: { - fontFamily, + fontFamily: fontFamilyMedium, fontSize: 22, fontWeight: '500' as const, lineHeight: 28, letterSpacing: 0, }, titleMedium: { - fontFamily, + fontFamily: fontFamilyMedium, fontSize: 16, fontWeight: '500' as const, lineHeight: 24, letterSpacing: 0.15, }, titleSmall: { - fontFamily, + fontFamily: fontFamilyMedium, fontSize: 14, fontWeight: '500' as const, lineHeight: 20, @@ -255,21 +258,21 @@ export const MD3Typography = { letterSpacing: 0.4, }, labelLarge: { - fontFamily, + fontFamily: fontFamilyMedium, fontSize: 14, fontWeight: '500' as const, lineHeight: 20, letterSpacing: 0.1, }, labelMedium: { - fontFamily, + fontFamily: fontFamilyMedium, fontSize: 12, fontWeight: '500' as const, lineHeight: 16, letterSpacing: 0.5, }, labelSmall: { - fontFamily, + fontFamily: fontFamilyMedium, fontSize: 11, fontWeight: '500' as const, lineHeight: 16, @@ -328,11 +331,11 @@ export const MD3Elevation = { export const MD3Shape = { none: 0, - extraSmall: 4, - small: 8, - medium: 12, - large: 16, - extraLarge: 28, + extraSmall: 2, + small: 2, + medium: 4, + large: 4, + extraLarge: 6, full: 9999, };