diff --git a/image-resize-quality.html b/image-resize-quality.html index 3307f43..8a204f0 100644 --- a/image-resize-quality.html +++ b/image-resize-quality.html @@ -12,6 +12,51 @@ margin: 0 auto; padding: 20px; } + /* Toggle switch (iOS-style) */ + label.toggle { display:flex; align-items:center; gap:10px; font-weight:500; } + label.toggle input[type="checkbox"] { + position:absolute; + opacity:0; + width:1px; height:1px; margin:0; padding:0; overflow:hidden; + clip:rect(0 0 0 0); clip-path: inset(50%); + } + label.toggle .toggle-visual { + position:relative; + width:48px; height:26px; + background:#b3b3b3; + border-radius:1000px; + box-shadow: inset 0 0 0 1px rgba(0,0,0,0.25); + transition: background .25s ease; + flex-shrink:0; + } + label.toggle .toggle-visual .toggle-knob { + position:absolute; top:3px; left:3px; + width:20px; height:20px; + background:#ffffff; + border-radius:50%; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + transition: transform .25s ease; + } + label.toggle input[type="checkbox"]:checked + .toggle-visual { + background:#2aa7ff; + } + label.toggle input[type="checkbox"]:checked + .toggle-visual .toggle-knob { + transform: translateX(22px); + } + /* Focus outline */ + label.toggle input[type="checkbox"]:focus-visible + .toggle-visual { + outline:2px solid #005ea6; outline-offset:2px; + } + /* Dark background adjustments in diff mode */ + body.diff-mode label.toggle input[type="checkbox"]:focus-visible + .toggle-visual { + outline-color:#8fd2ff; + } + body.diff-mode label.toggle .toggle-visual { box-shadow: inset 0 0 0 1px rgba(255,255,255,0.25); } + body.diff-mode label.toggle input[type="checkbox"]:not(:checked) + .toggle-visual { background:#555; } + body.diff-mode .note { color:#888; } + #controls { margin-top: 16px; display:flex; gap:24px; align-items:center; flex-wrap:wrap; } + #controls label { cursor:pointer; } + .note { font-size: 0.85rem; color:#555; } /* Drop zone is a