I haven't done a bunch today despite staying inside since I kind of want to unwind. However, in the spirit of daily progress, I cleaned up the sheet animation and had Claude refactor some of the code in this view so its not a mess.

Notably, before the Goal field (essentially a textarea) was hardcoded because textareas suck! But now we're using a GeometryReader to calculate how much space is left in the ScrollView and using that with a set min-height. This way, the field shrinks and expands as the keyboard is shown and hidden.

Design-wise, the header view has cancel and save buttons, but the bottom of the view is looking kinda lonely, so I'm going to think about that some more.

Next milestone

My next step is to wire things up with a view model. If I feel like it after playing games for a bit, I'll do it tonight. Otherwise, tomorrow!