=== EffortLess Carousel with Gallery ===
Contributors: domclic
Tags: carousel, gallery, slideshow, animation
Requires at least: 6.2
Tested up to: 7.0
Stable tag:        1.2.5
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Transform your WordPress galleries into responsive carousels with autoplay.

== Description ==

Effortless Carousel with Gallery enhances your WordPress site by turning standard galleries into responsive, user-friendly carousels. It also provides customizable text animations to make your content pop. Ideal for creating engaging slideshows and dynamic text effects without complex setup.

Features:

    Responsive Carousel: Converts WordPress galleries with the `elcwg_carousel_active` class into smooth, infinite-looping carousels with autoplay, navigation arrows, dots, and swipe support.
    Text Animations: Apply animations to text elements with adjustable delays.
    Admin Settings: Configure carousel options via an intuitive settings page.
    Lightweight & Secure: Sanitized inputs and escaped outputs for performance and security.

== Installation ==

1. Upload the `effortless-carousel-with-gallery` folder to the `/wp-content/plugins/` directory.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Navigate to Settings > Carousel Settings to configure options:
    - Enable/disable carousel and autoplay for galleries.
    - Adjust carousel autoplay delay and text animation delay.
    - Enable/disable infinite looping for carousels.
4. Add the `elcwg_carousel_active` class to any WordPress gallery block to enable the carousel.

= Additional CSS Classes =

You can add these additional CSS classes to your gallery block for enhanced functionality:

* `elcwg-full-width` - Makes the carousel extend to full browser width, breaking out of content containers.
* `elcwg-overlay-dots` - Positions the navigation dots as an overlay on top of the images instead of below.
* `elcwg-no-arrows` - Hides the previous/next navigation arrows.
* `elcwg-no-dots` - Hides the navigation dots.
* `elcwg-no-captions` - Hides image captions.

Example: Add `elcwg_carousel_active elcwg-full-width elcwg-overlay-dots` to create a full-width carousel with overlay navigation dots.

== Frequently Asked Questions ==

= How do I enable the carousel for a gallery? =
Add the `elcwg_carousel_active` class to a WordPress gallery block in the block editor or via custom CSS/HTML. Ensure the "Enable Carousel" option is checked in the plugin settings.

= Can I customize the autoplay speed? =
Yes, go to Settings > Carousel Settings and adjust the "Autoplay Delay (ms)" field. The minimum is 1000ms (1 second).

= Does the carousel support mobile devices? =
Yes, the carousel is responsive and includes swipe gestures for touch devices. It adjusts to single-slide view on screens smaller than 480px.

= Is the plugin secure? =
Yes, all settings are sanitized on input and escaped on output to prevent security issues, following WordPress coding standards.

== Screenshots ==

1. Carousel in action with navigation arrows and dots.
2. Admin settings page for configuring carousel and text animations.
3. Text animation applied to a heading.

== Changelog ==

= 1.2.5 =
* Refactor: donate notice file kept as includes/class-donate-notice.php (preserves SVN file history); class remains Effortless_Donate_Notice.


= 1.2.4 =
* Fix: donate notice now correctly displays on Network Admin pages — screen ID normalization strips WordPress's -network/-user suffix before matching.


= 1.2.3 =
* Refactor: donate notice class renamed Donate_Notice → Effortless_Donate_Notice (WP-standard prefix); file renamed to class-effortless-donate-notice.php. No phpcs:ignore needed anywhere.


= 1.2.2 =
* Fix: donate notice now uses current_screen hook for reliable screen detection on single-site and multisite Network Admin pages.


= 1.2.1 =
* Improvement: added dismissible donate notice on the plugin settings screen.
* Improvement: added Donate link header field and includes/class-donate-notice.php.


= 1.2.0 =
* Fixed: Carousel dots changed from <span> to <button type="button"> — aria-label is prohibited on spans with no ARIA role, causing accessibility audit failures.

= 1.1.9 =
* Fixed: Navigation arrows no longer shift vertically when changing slides. The inner container height is now locked to the tallest slide on load and on resize, so top: 50% always resolves to the same pixel position.

= 1.1.8 =
* Fixed: Added !important overrides to counter WordPress has-nested-images gallery CSS that was fighting plugin layout rules, causing columns and images to appear off-center or wrong size.

= 1.1.7 =
* Fixed: Navigation arrows are now always vertically centered relative to the image area only, not the full wrapper (which included the dots below).

= 1.1.6 =
* Improved: Images now display at their natural size (never stretched), centered within their column slot. Nothing is ever cropped. Previously images were forced to 100% slot width which distorted portrait images.

= 1.1.5 =
* Improved: Carousel now always shows exactly the number of columns selected in the gallery block. On mobile (< 480px) it forces 1 column. Removed intermediate breakpoint that was capping columns at 2 on tablets.

= 1.1.4 =
* Fixed: Carousel now fills its container div exactly, with no extra side padding — the container's own spacing is respected.

= 1.1.3 =
* Fixed: Carousel slides now fit within screen width without truncation, with consistent padding between cards and screen edges.
* Fixed: Overrides WordPress default gallery gap to prevent slides from being pushed off-screen.
* Improved: Mobile view (< 480px) shows a single full-width card with proper padding.

= 1.1.2 =
* Added: `elcwg-no-arrows` class to hide navigation arrows.
* Added: `elcwg-no-dots` class to hide navigation dots.
* Added: `elcwg-no-captions` class to hide image captions.

= 1.1.1 =
* Fixed: Added escaping to inline CSS output to prevent potential XSS vulnerabilities.

= 1.1.0 =
* Added text animation delay setting.
* Improved carousel responsiveness.

= 1.0.6 =
* Fixed issues with more than 4 columns in gallery.
* Fixed mobile issues with partial image sliding.
* Renamed plugin to "Effortless Carousel with Gallery".
* Removed parallax background functionality.
* Updated settings page and documentation to focus on carousel and text animations.

= 1.0.5 =
* Added sanitization for all settings to resolve WordPress Plugin Check errors.
* Ensured compatibility with carousel autoplay functionality.

= 1.0.4 =
* Added explicit autoplay setting for carousel in admin panel.
* Fixed missing carouselAutoplay in JavaScript settings.

= 1.0.3 =
* Enhanced carousel with touch/swipe support and improved autoplay.
* Optimized CSS for smoother animations and responsiveness.

= 1.0.2 =
* Simplified carousel JavaScript for better performance.
* Improved responsive design in CSS.

= 1.0.1 =
* Fixed minor bugs in settings page.
* Improved documentation.

= 1.0.0 =
* Initial release with parallax, text animation, and carousel features.

== Upgrade Notice ==

= 1.1.1 =
This update includes a security fix for inline CSS output. Please update to ensure your site remains secure.

= 1.0.6 =
This update renames the plugin to "Effortless Carousel with Gallery" and removes parallax functionality. Update to align with the new focus and ensure compatibility.

== License ==

This plugin is licensed under the GPLv2 or later. See the License URI for details.
