diff --git a/css/style.css b/css/style.css index d29db67..557484d 100644 --- a/css/style.css +++ b/css/style.css @@ -1818,6 +1818,7 @@ button:hover { letter-spacing: .3px; min-width: 48ch; justify-content: center; + text-align: center; } .randomizer-button::after { @@ -1956,6 +1957,8 @@ button:hover { .unicode-panel-content { padding: 12px; overflow-y: auto; } .unicode-panel-header .close-button { background: transparent; border: none; color: var(--text-color); cursor: pointer; padding: 4px; } +.apply-status { color:#69f0ae; opacity:.9; } +.apply-steg-options.applied { border-color:#2e7d32; box-shadow: 0 0 12px rgba(105,240,174,.35) inset, 0 0 16px rgba(105,240,174,.2); } /* Fluid UX: reduce scroll fatigue during repeated actions */ html { diff --git a/index.html b/index.html index b8b891f..b44516f 100644 --- a/index.html +++ b/index.html @@ -745,7 +745,7 @@ :title="'Click to apply random transforms to each word!'" > - {{ transform.name }} + !RANDOMIZE! 🌀 Each word = different transform! @@ -920,7 +920,10 @@ - +
+ + Applied +
These options affect Unicode-based steganography encoding/decoding. diff --git a/js/app.js b/js/app.js index dd12f7a..17005dd 100644 --- a/js/app.js +++ b/js/app.js @@ -100,6 +100,8 @@ window.app = new Vue({ maxHistoryItems: 10, showCopyHistory: false, showUnicodePanel: false, + unicodeApplyBusy: false, + unicodeApplyFlash: false, // Danger zone controls showDangerModal: false, @@ -115,6 +117,8 @@ window.app = new Vue({ } }, applyUnicodeOptions() { + if (this.unicodeApplyBusy) return; + this.unicodeApplyBusy = true; try { const initSel = document.querySelector('.steg-initial-presentation'); const vs0Sel = document.querySelector('.steg-vs-zero'); @@ -134,14 +138,16 @@ window.app = new Vue({ bitOrder: orderSel && orderSel.value || 'msb', trailingZW: trailSel && trailSel.value || '' }); + this.unicodeApplyFlash = true; this.showNotification(' Advanced settings applied', 'success'); + setTimeout(()=>{ this.unicodeApplyFlash = false; }, 1200); } else { this.showNotification(' Engine missing setOptions()', 'warning'); } } catch (e) { console.error('Apply Unicode options error', e); this.showNotification(' Failed to apply settings', 'error'); - } + } finally { this.unicodeApplyBusy = false; } }, // Focus an element without causing the page to scroll focusWithoutScroll(el) {