When clicking to copy text, the element briefly flashes with inverted colors (bg↔fg) and fades back over ~300ms. Provides localized visual feedback alongside the existing flash message.
Applied to all click-to-copy elements: addresses, tx hashes, block numbers, contract addresses, private keys.
When clicking to copy text, the element briefly flashes with inverted colors (bg↔fg) and fades back over ~300ms. Provides localized visual feedback alongside the existing flash message.
Applied to all click-to-copy elements: addresses, tx hashes, block numbers, contract addresses, private keys.
closes #100
When a user clicks to copy text (addresses, tx hashes, etc.), the copied
element now briefly flashes with inverted colors (bg/fg swap) and fades
back over ~300ms. This provides localized visual feedback in addition to
the existing flash message.
Applied to all click-to-copy elements across all views.
closes#100
CSS (main.css): Added .copy-flash-active (instant invert via --color-fg/--color-bg swap) and .copy-flash-fade (300ms ease-out transition back to normal). Works in both light and dark mode via CSS variables.
Helper (helpers.js): New flashCopyFeedback(el) — adds active class, removes after 100ms triggering the fade-back transition, cleans up after 350ms.
All views updated: home, receive, addressDetail, addressToken, transactionDetail, confirmTx, txStatus — every showFlash("Copied!") call site now also calls flashCopyFeedback() on the clicked element.
docker build . passes. Existing flash message retained for accessibility.
Implementation summary:
1. **CSS** (`main.css`): Added `.copy-flash-active` (instant invert via `--color-fg`/`--color-bg` swap) and `.copy-flash-fade` (300ms ease-out transition back to normal). Works in both light and dark mode via CSS variables.
2. **Helper** (`helpers.js`): New `flashCopyFeedback(el)` — adds active class, removes after 100ms triggering the fade-back transition, cleans up after 350ms.
3. **All views updated**: home, receive, addressDetail, addressToken, transactionDetail, confirmTx, txStatus — every `showFlash("Copied!")` call site now also calls `flashCopyFeedback()` on the clicked element.
`docker build .` passes. Existing flash message retained for accessibility.
Summary: Clean implementation of copy-flash visual feedback. The approach is solid:
flashCopyFeedback() in helpers.js uses class toggling with CSS transitions — no JS animation libraries
CSS uses var(--color-fg) / var(--color-bg) for the inversion, respecting the existing theme
100ms flash + 300ms fade-out timing feels right for feedback
Applied consistently to all click-to-copy elements across 7 view files
No linter config, test, or Makefile changes
docker build . passes
Branch is up to date with main
Note: README says "no animations" but this is an explicit exception per issue #100 — it's functional copy feedback, not layout animation.
Labeling merge-ready and assigning to sneak for final merge.
## ✅ Review: PASS
**Summary:** Clean implementation of copy-flash visual feedback. The approach is solid:
- `flashCopyFeedback()` in helpers.js uses class toggling with CSS transitions — no JS animation libraries
- CSS uses `var(--color-fg)` / `var(--color-bg)` for the inversion, respecting the existing theme
- 100ms flash + 300ms fade-out timing feels right for feedback
- Applied consistently to all click-to-copy elements across 7 view files
- No linter config, test, or Makefile changes
- `docker build .` passes
- Branch is up to date with main
**Note:** README says "no animations" but this is an explicit exception per issue #100 — it's functional copy feedback, not layout animation.
Labeling `merge-ready` and assigning to sneak for final merge.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
When clicking to copy text, the element briefly flashes with inverted colors (bg↔fg) and fades back over ~300ms. Provides localized visual feedback alongside the existing flash message.
Applied to all click-to-copy elements: addresses, tx hashes, block numbers, contract addresses, private keys.
closes #100
Implementation summary:
CSS (
main.css): Added.copy-flash-active(instant invert via--color-fg/--color-bgswap) and.copy-flash-fade(300ms ease-out transition back to normal). Works in both light and dark mode via CSS variables.Helper (
helpers.js): NewflashCopyFeedback(el)— adds active class, removes after 100ms triggering the fade-back transition, cleans up after 350ms.All views updated: home, receive, addressDetail, addressToken, transactionDetail, confirmTx, txStatus — every
showFlash("Copied!")call site now also callsflashCopyFeedback()on the clicked element.docker build .passes. Existing flash message retained for accessibility.Oh wow, it looks great. You can make it go 20-25% faster. It feels kind of laggy with the current timing.
668d967a5ctoff4b5ee24d✅ Review: PASS
Summary: Clean implementation of copy-flash visual feedback. The approach is solid:
flashCopyFeedback()in helpers.js uses class toggling with CSS transitions — no JS animation librariesvar(--color-fg)/var(--color-bg)for the inversion, respecting the existing themedocker build .passesNote: README says "no animations" but this is an explicit exception per issue #100 — it's functional copy feedback, not layout animation.
Labeling
merge-readyand assigning to sneak for final merge.Follow-up PR #121 created to speed up timing by ~25% per sneak's feedback: