=== Marquix - Marquee, Scrolling Text & Logo Carousel for Elementor ===
Contributors: fedec089
Tags: marquee, scrolling text, logo carousel, logo slider, elementor
Requires at least: 6.2
Tested up to: 7.0.3
Stable tag: 1.2.1
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Marquee, scrolling text and logo carousel widgets for Elementor. Seamless infinite loop, no jQuery, no external requests.

== Description ==

Marquix adds a **marquee** widget and a **logo carousel** widget to Elementor. Use the Text Marquee for **scrolling text**, news-style tickers and moving headlines, and the Logo Marquee for a **logo slider** of partner, client or sponsor logos. Both loop seamlessly, are built with pure CSS and vanilla JavaScript, and are styled entirely from the Elementor panel: no jQuery, no external requests, no page builder lock-in beyond Elementor itself.

= Text Marquee =

Display scrolling text with two modes:

* **Seamless (Duplicate)** — The text is automatically cloned so it scrolls continuously without any gaps or interruptions.
* **Normal (Single)** — Classic marquee behavior: the text enters from one side and exits on the other.

= Logo Marquee =

Showcase partner logos, client brands, or certification badges in a smoothly scrolling carousel. Logos are automatically cloned to fill the container, ensuring a perfectly seamless loop with no empty spaces.

= Use Cases =

* **Partner and client logos** — A continuous logo carousel in place of a static grid, so a long list of brands fits in one strip of the page.
* **Certification and trust badges** — Keep security seals, awards and association badges visible near the fold without stacking them.
* **Announcement ticker** — Scroll shipping cut-off dates, opening hours, event reminders or promo terms across the top of a landing page.
* **Scrolling headlines** — Oversized moving text as a hero element, section divider or footer statement.
* **Sponsor strips for events** — Sponsor logos looping in the footer of every page, sorted the way you drag them in the repeater.
* **Tech stack or integrations** — The tools and services you work with, scrolling on a services or agency page.

= Features =

* **Seamless, fluid animation** — JavaScript-driven cloning and pixel-perfect translation for gap-free loops.
* **Adjustable speed** — Control the scroll duration from 2 to 60 seconds.
* **Left or right direction** — Choose the scroll direction for each widget.
* **Pause on hover** — Optionally pause the animation when the user hovers over the widget.
* **Fade edges** — Optional soft fade on both sides of the marquee, with adjustable size.
* **Responsive** — Automatically adapts to any screen width; re-initialises on window resize.
* **Customizable styling** — Typography, colors, padding, image sizes, gaps — all configurable from the Elementor panel.
* **Lightweight** — No external dependencies, no jQuery requirement in production. Pure CSS + vanilla JS.
* **Accessible** — Proper ARIA roles and labels for screen readers.

= Requirements =

* WordPress 6.2 or later
* Elementor (free or Pro) 3.5 or later
* PHP 7.4 or later

== Installation ==

1. Upload the plugin folder to the `/wp-content/plugins/` directory, or install the plugin through the WordPress Plugins screen directly.
2. Activate the plugin through the "Plugins" screen in WordPress.
3. Make sure Elementor is installed and activated.
4. Edit any page with Elementor, search for "Text Marquee" or "Logo Marquee" in the widget panel, and drag it onto your page.

== Frequently Asked Questions ==

= Does this plugin require Elementor Pro? =

No. The plugin works with both the free version of Elementor and Elementor Pro.

= Can I control the gap between repeated text or logos? =

Yes. The Text Marquee widget includes a "Repeat Gap" slider (visible in Seamless mode). The Logo Marquee widget includes a "Gap" slider under the Style tab.

= Why does the animation look different in the Elementor editor? =

The editor reloads widgets frequently while you edit settings. The animation re-initialises each time, which may cause a brief flash. On the live site, the animation runs smoothly without interruption.

= Does the plugin add any external requests or tracking? =

No. The plugin is completely self-contained. It does not load any external resources, does not phone home, and does not track users in any way. The "Docs" and "Rate this plugin" entries in the plugins list are plain links: nothing is requested or sent until you click them.

= Does the plugin show ads or upsells? =

No. There is a single review request, shown at most once on the Plugins and Elementor screens after the plugin has been in use for two weeks. Dismissing it hides it permanently, per user, including across updates. No feature is ever gated behind leaving a review.

== Screenshots ==

1. Text Marquee in seamless mode: a headline scrolling continuously with no gap.
2. Logo Marquee: partner logos looping in a seamless carousel with fade edges enabled.
3. Text Marquee controls in the Elementor panel: mode, speed, direction, pause on hover and fade edges.
4. Logo Marquee controls in the Elementor panel: logo repeater, image size and gap.

== Changelog ==

= 1.2.1 =
* Added: "Docs" and "Rate this plugin" links in the plugin row on the Plugins screen. Both are static links; no request is made and no data is collected.
* Added: a one-time review request notice, limited to the Plugins and Elementor screens, shown only after the plugin has rendered a widget on the front end and has been active for at least 14 days. Dismissal is per user and permanent.
* Added: `uninstall.php`, which removes every option and user meta entry the plugin creates when it is deleted.
* Added: "Elementor tested up to" and "Elementor Pro tested up to" plugin headers.
* Changed: plugin name and readme rewritten for clarity and discoverability; tags updated.
* Changed: tested up to WordPress 7.0.3.
* Fixed: the readme listed Elementor 3.0 as the minimum version. The widget registration API the plugin uses (`elementor/widgets/register`) was introduced in Elementor 3.5, so the stated requirement is now 3.5.
* Note: no change to widget output, controls, styles or animation behavior.

= 1.2.0 =
* Added: Fade Edges option for both Text Marquee and Logo Marquee widgets.
* Fixed: Marquee not initializing when placed inside hidden Elementor Tabs, Accordion, or Toggle widgets.

= 1.1.0 =
* Added: Text Marquee mode selector — Seamless (duplicate) and Normal (single).
* Added: Repeat Gap control for Text Marquee in Seamless mode.
* Improved: Logo Marquee now uses JavaScript-driven cloning for perfectly seamless loops.
* Improved: Both widgets re-initialise automatically on window resize.
* Improved: Elementor editor live-preview integration for both widgets.
* Changed: Text Marquee icon updated to `eicon-animation-text`.
* Fixed: Logo Marquee no longer leaves gaps when logos do not fill the container.
* Fixed: Logo Marquee spacing between repeated groups is now consistent.

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.2.1 =
Maintenance release: documentation links, WordPress 7.0 compatibility and a cleanup routine on deletion. Widget output and settings are unchanged.

= 1.1.0 =
Major improvement to the Logo Marquee seamless loop and new Text Marquee mode selector. Recommended for all users.
