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