From 721e1adfc1448e17454aa2e2bf9cbec0eec156c3 Mon Sep 17 00:00:00 2001 From: Jie Date: Wed, 2 Sep 2026 22:48:48 +0800 Subject: [PATCH 1/5] Let the copy button say what happened MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pressing it changed nothing about it. The result appeared as a line of text two elements to the right — the one place you are not looking at the moment you press a button. The button reports it now: mint for copied, amber for refused, with the note beside it cut down to the part worth reading — which formats went, or what to do when the browser blocks it. The width is fixed so the row does not jump when the label changes, and it resets after a few seconds. A press can also be felt rather than assumed: an inset highlight, a lift on hover, a 1px drop on active. Dropped under prefers-reduced-motion. Contrast on all three states is AAA (7.6, 9.4, 9.8). The target is 44px under a coarse pointer, and in the single-column layout the button takes the full width its fields already have rather than sitting at 200px beside them. All three paths exercised in a browser: the primary clipboard write, the rich-text fallback, and both failing — which also focuses and selects the HTML for a manual copy. --- demo/paste.html | 70 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 11 deletions(-) diff --git a/demo/paste.html b/demo/paste.html index 276710e..704ff64 100644 --- a/demo/paste.html +++ b/demo/paste.html @@ -9,7 +9,7 @@