diff --git a/portal/menu-builder.html b/portal/menu-builder.html
index b053815..923ed2f 100644
--- a/portal/menu-builder.html
+++ b/portal/menu-builder.html
@@ -3647,6 +3647,7 @@
+ ${'EyeDropper' in window ? '' : ''}
@@ -3671,6 +3672,7 @@
+ ${'EyeDropper' in window ? '
' : ''}
@@ -3733,6 +3735,28 @@
lightPreview.style.background = val;
}
});
+
+ // Eyedropper buttons (Chrome/Edge only)
+ if ('EyeDropper' in window) {
+ const pickColor = async (colorInput, hexInput, onPick) => {
+ try {
+ const dropper = new EyeDropper();
+ const result = await dropper.open();
+ const color = result.sRGBHex.toUpperCase();
+ colorInput.value = color;
+ hexInput.value = color;
+ if (onPick) onPick(color);
+ } catch (e) { /* user cancelled */ }
+ };
+
+ document.getElementById('eyedropperDark')?.addEventListener('click', () => {
+ pickColor(colorInput, hexInput, updatePreview);
+ });
+
+ document.getElementById('eyedropperLight')?.addEventListener('click', () => {
+ pickColor(lightInput, lightHex, (c) => { lightPreview.style.background = c; });
+ });
+ }
},
// Save brand color