2025 06 28 Changelog Emino
## Code Changelog for June 28, 2025 - Nuri Bitcoin Wallet
### Branch: `ui-ux-font-and-forms`
### Morning Session (9:35 AM - 12:24 PM)
- **9:35:09** - `feat: introduce NuriMenuRow reusable component and refactor SecurityView to use it`
- **9:38:50** - `fix: use asset color for default subtitleColor to resolve access control build error`
- **9:45:16** - `refactor: CardView uses NuriMenuRow for feature list`
- **9:47:45** - `chore: use default grey subtitle color in CardView list`
- **9:53:12** - `style: increase NuriCardIllustration horizontal padding to align with list rows`
- **11:04:19** - `style: align primary action buttons with 40pt horizontal inset`
- **11:07:27** - `style: set button icon size to 32pt for consistency with menu icons`
- **11:10:13** - `style: revert primary button horizontal padding to 24pt for header alignment`
- **11:24:20** - `feat: introduce NuriSmallIconToggle component and integrate into CardViewActive for Details eye toggle`
- **11:27:42** - `fix: restore SmallIconButton struct for non-toggle icons in CardViewActive`
- **11:32:36** - `feat: add open eye icon asset`
- **11:35:17** - `refactor: use NuriTitleWithSubtitle for balance header in CardViewActive`
- **11:42:29** - `style: use NuriCardIllustration and align CardMini width in CardViewActive`
- **11:45:32** - `style: match CardMini aspect ratio to illustration`
- **11:50:05** - `feat: embed QR code inside card mini and show enlarged copyable QR on tap`
- **11:55:24** - `style: adjust QR sizes inline (48pt) and full-screen adaptive`
- **11:57:36** - `fix: use transformed image extent to render full QR code`
- **12:10:30** - `feat: add NuriSnackbar component and integrate with card copy-to-clipboard actions`
- **12:24:22** - `Revert "feat: add NuriSnackbar component and integrate with card copy-to-clipboard actions"`
### Afternoon Session (5:07 PM - 6:00 PM)
- **17:07:37** - `style: increase brandTitle1 size to 34pt`
- **17:12:19** - `style: align BitcoinView header with title component (amount 34pt, spacing 4)`
- **17:14:33** - `fix: force line break in CardView title to align width with button`
- **17:16:45** - `feat: enforce side margins inside NuriTitleWithSubtitle; revert manual newline`
- **17:18:50** - `style: use brandTitle1 font for Bitcoin amount and symbol`
- **17:21:50** - `style: reduce top spacing above receive/send buttons to 12pt`
- **17:22:51** - `style: tighten gap between amount and buttons (12pt spacing, remove extra top padding)`
- **17:24:50** - `style: set amount-to-buttons gap to 8pt (double of 4pt header spacing)`
- **17:32:03** - `feat: pin Get Card button to bottom using safeAreaInset; reduce top padding`
- **17:39:02** - `style: add 8pt top padding above button row (double previous)`
- **17:44:19** - `style: increase spacing above Receive/Send buttons to 16pt`
- **17:57:33** - `feat: add left and right icons to Bitcoin amount row`
- **18:00:10** - `chore: add transfer_vertical icon asset`
- **18:02:15** - `style: use scaledToFit to constrain amount-row icons to 32pt`
### Evening Session (6:36 PM - 9:09 PM)
- **18:36:13** - `style: shrink amount-row icons to 24pt for visual consistency`
- **18:39:21** - `feat: toggle BTC/€ amounts with transfer icon; remove left icon`
- **18:41:56** - `fix: apply brandTitle1 font to euro amount when toggled`
- **18:43:51** - `fix: add space after euro symbol in primary amount`
- **18:59:52** - `style: set buy amount TextField cursor tint to PrimaryNuriLilac`
- **19:02:31** - `feat: prefill BuyBitcoin amount with 21`
- **19:07:43** - `style: increase buy screen subline to 16pt medium`
- **19:09:57** - `style: use NuriButton primary component for buy action`
- **19:18:27** - `feat: add bitcoin-circle icon and use it on Buy button`
- **19:23:01** - `feat: restrict buy amount TextField to numeric characters only`
- **19:28:08** - `feat: add transfer_vertical toggle to Buy screen amount input`
- **19:34:40** - `fix: enforce dot decimal separator in buy amount input`
- **19:38:34** - `feat: enforce decimal length (2 or 8) in buy amount input and toggle`
- **19:42:44** - `feat: default 0.001 BTC, fetch live EUR price and format euro to 2 decimals`
- **19:45:45** - `feat: show current BTC price in € above buy button`
- **19:49:03** - `feat: use Nuri header with logo & close button on SuccessView`
- **19:52:16** - `fix: hide default navigation bar on SuccessView`
- **19:58:05** - `style: move Get Card button back into scrollable content, remove fixed safeAreaInset`
### Late Evening Session (8:05 PM - 9:09 PM)
- **20:05:14** - `refactor: place Get Card button inside scroll content directly under list`
- **20:07:58** - `feat: convert CardView to non-scrollable static layout`
- **20:13:13** - `style: unify vertical spacing to 24pt on CardView`
- **20:15:12** - `style: reduce spacing between title and list to 12pt on CardView`
- **20:17:40** - `style: tighten title-to-list spacing to 8pt on CardView`
- **20:19:38** - `style: further tighten spacing under title on CardView`
- **20:22:33** - `fix: extend background color to cover safe areas on CardView`
- **20:25:48** - `style: unify TabBar background with app background and remove divider`
- **20:31:26** - `chore: card screen label tweaks and commit new assets & placeholder bundle`
- **20:38:25** - `feat: enlarge tab bar label font (base 16pt Caption1), keep dynamic type`
- **20:44:56** - `chore: set tab bar label base font back to 14pt`
- **20:53:56** - `feat: freeze card toggle with closed lock icon, card dimmed`
- **20:59:59** - `ux: details toggle now shows 'Show' or 'Hide' label`
- **21:09:29** - `chore: add lock icon source assets`
### Summary:
- **Total Commits**: 57 commits
- **Files Changed**: 43 files
- **Lines Added**: 311 insertions
- **Lines Deleted**: 62 deletions
- **Key Features Added**:
- NuriMenuRow reusable component
- NuriSmallIconToggle component
- QR code embedding in card mini
- BTC/EUR toggle functionality
- Buy Bitcoin screen improvements (€21 prefill)
- Freeze card toggle with lock icon
- Live BTC price display
- **UI/UX Improvements**: Extensive spacing, font size, and layout refinements throughout the app