EffortLess Carousel with Gallery

ವಿವರಣೆ

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.

License

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

ಸ್ಥಾಪನೆ

  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.

FAQ

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.

‍ವಿಮರ್ಶೆಗಳು‍

ಈ ಪ್ಲಗಿನ್‌ಗೆ ಯಾವುದೇ ವಿಮರ್ಶೆಗಳಿಲ್ಲ.

ಕೊಡುಗೆದಾರರು & ಡೆವಲಪರ್‌ಗಳು

“EffortLess Carousel with Gallery” ಓಪನ್ ಸೋರ್ಸ್ ಸಾಫ್ಟ್‌ವೇರ್ ಆಗಿದೆ. ಕೆಳಗಿನ ಜನರು ಈ ಪ್ಲಗಿನ್‌ಗೆ ಕೊಡುಗೆ ನೀಡಿದ್ದಾರೆ.

ಕೊಡುಗೆದಾರರು

“EffortLess Carousel with Gallery” ಅನ್ನು ನಿಮ್ಮ ಭಾಷೆಗೆ ಅನುವಾದಿಸಿ.

ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಆಸಕ್ತಿ ಇದೆಯೇ?

ಕೋಡ್ ಬ್ರೌಸ್ ಮಾಡಿ, SVN ರೆಪೊಸಿಟರಿ ಪರಿಶೀಲಿಸಿ, ಅಥವಾ ಅಭಿವೃದ್ಧಿ ಲಾಗ್ ಗೆ RSS ಚಂದಾದಾರರಾಗಿ.

Changelog

1.3.20

  • Restored: dismissible donate notice on the Carousel Settings and Gallery Presets admin pages (screen IDs updated for the new top-level menu structure).

1.3.19

  • Fixed: image picker (add/remove/reorder images) and preset editing now work. The admin script enqueue was comparing against a guessed hook name that did not match what WordPress generates for a submenu of a custom top-level menu. The enqueue function now captures the exact hook suffix returned by add_submenu_page() and compares against that.

1.3.18

  • Fixed: admin_enqueue_scripts hook name corrected from elcwg-settings_page_elcwg-presets to toplevel_page_elcwg-presets (partial fix — see 1.3.19 for the complete fix).

1.3.17

  • Fixed: browser focus ring (white circle) no longer persists after clicking an arrow with the mouse. Uses :focus-visible so keyboard users still get an outline for accessibility.
  • Added: white ring ripple animation after clicking an arrow — expands and fades out in 0.55 s. Resets correctly on rapid clicks. Disabled for users who prefer reduced motion.
  • Fixed: missing type=”button” attribute on arrow buttons (prevented accidental form submission).

1.3.16

  • Fixed: navigation arrows are now perfectly centered in their circle on all browsers and fonts. Replaced text characters (‹ ›) with inline SVG chevrons and switched from line-height/text-align centering to flexbox — text glyph metrics vary per font and caused the icon to appear offset.
  • Improved: arrow buttons slightly enlarged (36 px 40 px) for better touch targets, padding reset to zero so no browser default interferes.

1.3.15

  • Changed: Gallery Presets submenu label renamed to “Galleries”; Settings submenu label renamed to “Native Settings”.
  • Added: Full i18n coverage — fresh .pot generated from source; .po and compiled .mo files for English (en_US), French (fr_FR), Spanish (es_ES), Traditional Chinese / Taiwan (zh_TW), Korean (ko_KR), and Japanese (ja).

1.3.14

  • Improved: Plugin menu moved from Settings to a dedicated top-level Carousel entry in the admin sidebar, with Settings and Gallery Presets as sub-pages. Provides faster access without hunting through the Settings menu.
  • Improved: Preset edit form reorganised into Identity, Behavior, Appearance, and Images sections for faster scanning. All checkboxes now carry inline labels explaining what each option does.
  • Improved: Settings page now links directly to Gallery Presets and uses inline checkbox labels consistent with the preset form.

1.3.13

  • Fixed: carousel inside a constrained group block (is-layout-constrained + wp-container-* class) no longer breaks out to full viewport width. The elcwg-full-width breakout relies on margin-left:50% resolving against the viewport — inside a constrained group the 50% reference is the group’s narrower width, causing misalignment. JS now also detects this case (in addition to the inline-style check from v1.3.12) and skips the breakout, letting the carousel fill the group naturally.

1.3.12

  • Fixed: carousel no longer overflows a width-constrained group block (e.g. width:80%). The full-width breakout (width:100vw + margin-left:50%) uses the parent width as its reference point; inside a narrow group the math resolves incorrectly. JS now skips the elcwg-full-width class when the gallery’s direct parent has an explicit inline width, letting the carousel fill the parent naturally instead.
  • Fixed: added min-width:0 to the carousel wrapper so it cannot be stretched wider than its declared width when it is a flex item inside a flex-row group block (browsers default flex items to min-width:auto which allows expansion to min-content size).

1.3.11

  • Fixed: carousel now respects the width set on the gallery block via Block Settings Dimensions. WordPress writes these as inline styles on the gallery element; after JS wrapping the carousel, that percentage became relative to the wrapper (inner context) rather than the original parent. The inline width and max-width are now migrated to the outer wrapper before insertion.

1.3.10

  • Fixed: alignwide carousel now respects the parent group block’s custom wide-size set in Block Settings. Removed the explicit width override that forced the global theme wide-size, letting WordPress’s constrained-layout container CSS supply the correct value (including any per-group custom content/wide width).

1.3.9

  • Fixed: full-width carousel wrapper now uses !important on width, max-width, margin-left, and margin-right — WordPress block-theme container CSS was applying margin-left:auto !important and max-width:80% to all direct non-alignfull children of a group block, overriding the breakout technique and shifting the carousel to the left.

1.3.8

  • Fixed: full-size gallery no longer flashes before the carousel initializes — slides are hidden until JS setup completes, with a CSS spinner shown in their place.
  • Fixed: WordPress “Full width” alignment now uses the plugin’s own full-width implementation instead of relying on theme CSS selectors that target the gallery element directly.
  • Fixed: WordPress “Wide width” alignment now expands the wrapper to –wp–style–global–wide-size (block themes) with a 1200px fallback.
  • Fixed: float:none on carousel wrapper prevents theme alignment CSS from floating the carousel.

1.3.7

  • Fixed: carousel no longer overflows into adjacent page sections when its parent container has an explicit height (e.g. a group block set to height:200px). The wrapper now uses a flex-column layout with height:100% and overflow:hidden — it fills the parent when constrained and falls back to auto-height when the parent is unconstrained.
  • Fixed: carousel images now use object-fit:cover so they fill their slot without distortion when height is constrained by a parent block.
  • Fixed: navigation dots changed from back to — aria-label is not valid on spans without a role.

1.3.6

  • Fixed: carousel slides overflowing into the footer — browsers do not apply overflow:hidden to GPU-composited children (will-change:transform promotes the inner track to its own layer). Added clip-path:inset(0) to the gallery which clips composited layers reliably.
  • Fixed: removed :first-child/:last-child edge-padding rules that produced wrong gaps when loop cloning is active.

1.3.5

  • Fixed: overflow:hidden moved from the wrapper to the gallery element — the wrapper was creating a block formatting context that corrupted page flow and caused the carousel to visually bleed into the footer.
  • Simplified: removed text animation and caption font-size settings (not relevant to carousel).
  • Simplified: settings page is now a single flat table — Enable Carousel, Autoplay, Delay, Loop.
  • Simplified: CSS stripped of all hero/animation variants; captions are plain overlays with no JS animation.

1.3.4

  • Fixed: Carousel wrapper no longer copies is-layout-flex from the gallery — WordPress CSS was turning the wrapper into a flex row, placing the gallery and navigation dots side by side instead of stacked.
  • Fixed: Wrapper now has display:block !important so WordPress layout classes can never override it.
  • Fixed: Wrapper still inherits WordPress alignment classes (aligncenter, alignwide, alignfull) so theme centering rules apply.

1.3.3

  • Fixed: Carousel wrapper now inherits WordPress alignment and layout classes (aligncenter, alignwide, is-layout-*, etc.) from the gallery block, so theme centering rules apply correctly.

1.3.2

  • Fixed: Preset shortcode galleries now activate as carousels even when the global “Enable Carousel” setting is off — preset galleries are self-contained.
  • Fixed: Preset list table now shows [elcwg_gallery preset=”slug”] for presets with stored images instead of the outdated ids=”…” placeholder.

1.3.1

  • Added: Image picker in preset edit form — select, reorder (drag-and-drop), and store images directly inside a preset.
  • Added: [elcwg_gallery preset=”slug”] shortcode now works without ids= attribute when images are stored in the preset.

1.3.0

  • Added: Gallery Presets admin page (Settings > Gallery Presets) with WP_List_Table UI for creating and managing named carousel presets.
  • Added: [elcwg_gallery preset=”slug” ids=”1,2,3″] shortcode renders a standalone carousel using preset settings, independent of global plugin settings.
  • Added: Per-carousel data-attribute overrides in frontend JS — shortcode galleries use preset settings; existing CSS-class galleries continue to use global settings.

1.2.0

  • Fixed: Carousel dots changed from to — 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.