=== Eco Mode ===
Contributors: ronchiluca
Donate link: https://www.the-roi.com
Tags: energy, eco, accessibility, idle, overlay
Requires at least: 5.8
Tested up to: 6.9
Requires PHP: 7.2
Stable tag: 1.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Dim inactive sessions with a configurable, accessible overlay — lowers visual energy on OLED screens and nudges focused browsing.

== Description ==

Eco Mode displays a soft overlay on pages that have been inactive for a configurable amount of time. The overlay can lower power draw on OLED/AMOLED screens, reduce visual fatigue, and act as a gentle reminder to visitors who have walked away from their screen.

**Key features**

* Configurable idle time from 15 seconds up to 1 hour.
* Adjustable overlay opacity (70–100%).
* Optional logo display.
* Smart return-from-hidden behavior: require an explicit click or scroll before the overlay dismisses, useful on multi-tab sessions.
* Works with the most common browsers (Chrome, Edge, Firefox, Safari) and handles the back-forward cache.
* Throttled event handling keeps the overlay lightweight.
* Accessible: ARIA dialog role, focus trap on the resume button, keyboard support (Enter, Space, Escape).
* Five built-in languages (English, Italian, French, German, Spanish) with per-language custom messages.
* Exclude specific URL paths or CSS selectors from triggering the overlay.
* WooCommerce aware: cart, checkout, and account pages are skipped by default.
* Mobile-aware: disabled by default on phones.
* Respects `prefers-reduced-motion`.
* No tracking, no external requests.

**For developers**

Two filters are provided for advanced customization:

* `eco_mode_should_run` — return `false` to disable the overlay for the current request.
* `eco_mode_frontend_config` — modify the configuration object passed to the frontend script.

**A note on energy savings**

Dark pixels consume less power only on OLED/AMOLED screens. On traditional LCD monitors the backlight is constant and the energy saving is negligible. Eco Mode also reduces visual load and lets the visitor know the session has been idle.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/eco-mode/`, or install through Plugins → Add New.
2. Activate the plugin through the Plugins menu in WordPress.
3. Go to **Settings → Eco Mode** to configure idle time, message, and exclusions.

== Frequently Asked Questions ==

= Does it really save energy? =

On OLED and AMOLED screens, yes: a dark overlay reduces per-pixel power consumption. On LCD screens the backlight is always on, so the energy saving is minimal. In both cases the overlay reduces visual load and can remind distracted visitors.

= Will it interfere with checkout or login pages? =

No. WooCommerce cart, checkout, and account pages are excluded by default, and you can add any URL path or CSS selector to the exclusion list.

= Will it interrupt video playback? =

No. Videos and audio in playback prevent the overlay from appearing.

= Does it work on mobile? =

It is disabled on mobile devices by default to avoid interfering with touch browsing, but you can enable it from the settings page.

= Does it track visitors or call external services? =

No. The plugin is fully self-contained and makes no network calls.

== Screenshots ==

1. The overlay as seen by a visitor after the idle period.
2. The settings page with idle time, opacity, and language options.
3. Exclusion rules for URL paths and CSS selectors.

== Changelog ==

= 1.0.0 =
* Initial release.
* Configurable idle time, overlay opacity and logo visibility.
* Optional explicit-resume behavior with hard-lock after returning from a hidden tab.
* bfcache support (Firefox/Safari).
* Real-gesture detection to avoid spurious dismissal on return-focus.
* WooCommerce, path, and selector exclusions.
* Five built-in languages with per-language custom messages.
* Accessible overlay with ARIA dialog role and focus trap.

== Upgrade Notice ==

= 1.0.0 =
First public release.
