{"id":84493,"date":"2018-04-18T07:57:20","date_gmt":"2018-04-18T07:57:20","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ele-custom-skin\/"},"modified":"2026-05-02T11:03:08","modified_gmt":"2026-05-02T11:03:08","slug":"ele-custom-skin","status":"publish","type":"plugin","link":"https:\/\/vi.wordpress.org\/plugins\/ele-custom-skin\/","author":13647991,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"4.1.5","stable_tag":"4.1.5","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"ECS - Ele Custom Skin for Elementor","header_author":"Dudaster.com","header_description":"Elementor Custom Skin for Posts and Posts Archive. You can create a skin as you want.","assets_banners_color":"fbf7fd","last_updated":"2026-05-02 11:03:08","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.me\/dudaster","header_plugin_uri":"https:\/\/dudaster.com","header_author_uri":"https:\/\/dudaster.com","rating":4.7,"author_block_rating":0,"active_installs":100000,"downloads":1565664,"num_ratings":116,"support_threads":3,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"dudaster","date":"2018-04-18 11:35:00"},"1.0.1":{"tag":"1.0.1","author":"dudaster","date":"2018-04-18 11:36:47"},"1.0.9":{"tag":"1.0.9","author":"dudaster","date":"2019-06-25 11:33:33"},"1.1.3":{"tag":"1.1.3","author":"dudaster","date":"2019-07-22 13:41:47"},"1.1.4":{"tag":"1.1.4","author":"dudaster","date":"2019-08-08 13:04:53"},"1.1.5":{"tag":"1.1.5","author":"dudaster","date":"2019-08-13 06:26:48"},"1.2.0":{"tag":"1.2.0","author":"dudaster","date":"2019-08-21 13:55:09"},"1.2.1":{"tag":"1.2.1","author":"dudaster","date":"2019-08-30 12:34:55"},"1.2.4":{"tag":"1.2.4","author":"dudaster","date":"2019-09-04 08:30:27"},"1.2.5":{"tag":"1.2.5","author":"dudaster","date":"2019-09-19 10:01:54"},"1.3.10":{"tag":"1.3.10","author":"dudaster","date":"2020-03-09 07:52:12"},"1.3.11":{"tag":"1.3.11","author":"dudaster","date":"2020-03-24 07:21:37"},"1.3.3":{"tag":"1.3.3","author":"dudaster","date":"2019-10-02 09:53:23"},"1.3.4":{"tag":"1.3.4","author":"dudaster","date":"2019-10-21 13:18:54"},"1.3.6":{"tag":"1.3.6","author":"dudaster","date":"2019-11-19 14:30:05"},"1.3.7":{"tag":"1.3.7","author":"dudaster","date":"2019-11-20 07:23:38"},"1.3.9":{"tag":"1.3.9","author":"dudaster","date":"2020-01-08 07:17:23"},"1.4.0":{"tag":"1.4.0","author":"dudaster","date":"2020-04-21 15:39:31"},"2.0.2":{"tag":"2.0.2","author":"dudaster","date":"2020-05-04 08:43:20"},"2.1.0":{"tag":"2.1.0","author":"dudaster","date":"2020-06-02 13:54:50"},"2.2.0":{"tag":"2.2.0","author":"dudaster","date":"2020-06-04 06:57:30"},"2.2.1":{"tag":"2.2.1","author":"dudaster","date":"2020-06-10 06:48:19"},"2.2.2":{"tag":"2.2.2","author":"dudaster","date":"2020-08-24 11:35:41"},"3.0.0":{"tag":"3.0.0","author":"dudaster","date":"2021-04-23 07:55:55"},"3.1.0":{"tag":"3.1.0","author":"dudaster","date":"2021-06-17 09:39:28"},"3.1.1":{"tag":"3.1.1","author":"dudaster","date":"2021-08-02 13:07:08"},"3.1.2":{"tag":"3.1.2","author":"dudaster","date":"2021-09-01 13:33:33"},"3.1.3":{"tag":"3.1.3","author":"dudaster","date":"2021-11-17 11:42:30"},"3.1.4":{"tag":"3.1.4","author":"dudaster","date":"2022-04-01 08:45:34"},"3.1.5":{"tag":"3.1.5","author":"dudaster","date":"2022-05-18 06:01:29"},"3.1.6":{"tag":"3.1.6","author":"dudaster","date":"2022-08-23 13:34:04"},"3.1.7":{"tag":"3.1.7","author":"dudaster","date":"2024-04-10 11:46:02"},"4.1.0":{"tag":"4.1.0","author":"dudaster","date":"2026-04-29 18:47:41"},"4.1.1":{"tag":"4.1.1","author":"dudaster","date":"2026-04-30 11:08:32"},"4.1.2":{"tag":"4.1.2","author":"dudaster","date":"2026-04-30 11:41:58"},"4.1.4":{"tag":"4.1.4","author":"dudaster","date":"2026-04-30 19:21:58"},"4.1.5":{"tag":"4.1.5","author":"dudaster","date":"2026-05-02 11:03:08"}},"upgrade_notice":[],"ratings":{"1":8,"2":2,"3":0,"4":2,"5":104},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3518775,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3518775,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3518775,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3518775,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3518775,"resolution":"772x250","location":"assets","locale":""},"banner-820x312-rtl.jpg":{"filename":"banner-820x312-rtl.jpg","revision":2197185,"resolution":"820x312","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.9","1.1.3","1.1.4","1.1.5","1.2.0","1.2.1","1.2.4","1.2.5","1.3.10","1.3.11","1.3.3","1.3.4","1.3.6","1.3.7","1.3.9","1.4.0","2.0.2","2.1.0","2.2.0","2.2.1","2.2.2","3.0.0","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","4.1.0","4.1.1","4.1.2","4.1.4","4.1.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3518775,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":1860219,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2288982,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"ECS \u2192 Modules admin screen \u2014 enable or disable each module with a toggle.","2":"Default Colours tab in Elementor Site Settings \u2014 set default and dark-mode colours side by side.","3":"Dark Mode Switcher widget in the Elementor panel.","4":"Container Layout \u2014 Custom Layout mode distributing children into a Theme Builder template.","5":"Style Templates \u2014 saving and applying a style preset from the Style tab."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3706,24558,173231,76538,526],"plugin_category":[43],"plugin_contributors":[82305],"plugin_business_model":[],"class_list":["post-84493","plugin","type-plugin","status-publish","hentry","plugin_tags-color-scheme","plugin_tags-container","plugin_tags-dark-mode","plugin_tags-elementor","plugin_tags-loop","plugin_category-customization","plugin_contributors-dudaster","plugin_committers-dudaster"],"banners":{"banner":"https:\/\/ps.w.org\/ele-custom-skin\/assets\/banner-772x250.png?rev=3518775","banner_2x":"https:\/\/ps.w.org\/ele-custom-skin\/assets\/banner-1544x500.png?rev=3518775","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/ele-custom-skin\/assets\/icon.svg?rev=3518775","icon":"https:\/\/ps.w.org\/ele-custom-skin\/assets\/icon.svg?rev=3518775","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ele-custom-skin\/assets\/screenshot-1.png?rev=3518775","caption":"ECS \u2192 Modules admin screen \u2014 enable or disable each module with a toggle."},{"src":"https:\/\/ps.w.org\/ele-custom-skin\/assets\/screenshot-2.png?rev=1860219","caption":"Default Colours tab in Elementor Site Settings \u2014 set default and dark-mode colours side by side."},{"src":"https:\/\/ps.w.org\/ele-custom-skin\/assets\/screenshot-3.png?rev=2288982","caption":"Dark Mode Switcher widget in the Elementor panel."}],"raw_content":"<!--section=description-->\n<p><strong>ECS adds what Elementor doesn't have \u2014 without replacing what it does well.<\/strong><\/p>\n\n<p>Every feature is a standalone module. Enable only what you need from <strong>ECS \u2192 Modules<\/strong> in the WordPress admin. Unused modules load zero CSS, zero JS, and register no hooks.<\/p>\n\n\n\n<h4>\ud83c\udfa8 Dark Mode Colours<\/h4>\n\n<p>A <strong>Default Colours<\/strong> tab appears inside Elementor's Site Settings, right next to Global Colors.<\/p>\n\n<ul>\n<li>Set a <strong>Default<\/strong> and a <strong>Dark Mode<\/strong> colour for every global colour slot.<\/li>\n<li>Dark mode colours are written as CSS variables \u2014 no JavaScript swapping, pure CSS, zero flash.<\/li>\n<li>A <strong>fallback swatch<\/strong> shows the default colour when the dark slot is empty.<\/li>\n<li>The <strong>Dark Mode Switcher<\/strong> widget lets visitors toggle between light and dark with full style controls.<\/li>\n<\/ul>\n\n<h4>\ud83d\udcd0 Container Layout<\/h4>\n\n<p>Two additional layout modes for Elementor Flex Containers:<\/p>\n\n<p><strong>Slider Mode<\/strong> \u2014 Turn any container into a CSS-only slider. No JS library, no dependencies.<\/p>\n\n<p><strong>Custom Layout<\/strong> \u2014 Pick a Theme Builder template as the layout frame. Place ECS Placeholder widgets inside the template; ECS distributes the container's children into those slots automatically. Supports cycling and graceful fallback. Works live in the Elementor editor.<\/p>\n\n<h4>\ud83d\udd01 Loop Custom Layout<\/h4>\n\n<p>Arrange Loop Grid items inside a Custom Layout template using ECS Placeholder widgets \u2014 powered by Elementor's native Loop Grid query. Full editorial control over the item grid without leaving Elementor.<\/p>\n\n<h4>\ud83d\udcf1 Menu Responsive<\/h4>\n\n<p>Turn any Elementor Nav Menu widget into a responsive hamburger menu. Layout, alignment, animation, and breakpoint controls \u2014 all from the Elementor panel.<\/p>\n\n<h4>\u270d\ufe0f Editorial Text<\/h4>\n\n<p>Wrap images inside text blocks with float controls and captions. Magazine-style editorial layouts built entirely in Elementor.<\/p>\n\n<h4>\ud83c\udfa8 Style Templates<\/h4>\n\n<p>Save any widget's Style tab settings as a named preset and apply them to other widgets of the same type in one click \u2014 across pages, templates, and sites. Export and import your full style library as JSON.<\/p>\n\n<h4>\ud83d\udee0 JSON PowerEdit<\/h4>\n\n<p>Edit any Elementor widget's raw settings JSON directly from the panel. Raw textarea for paste-and-replace, interactive tree view for surgical edits. Keyboard shortcut: Ctrl\/Cmd + Enter to apply.<\/p>\n\n<h4>\u2705 Legacy (ECS 3.x \u2014 backward compatibility)<\/h4>\n\n<p>The original loop skin functionality is preserved in the Legacy module for existing sites built with ECS 3.x. If you're updating from ECS 3.x, this module activates automatically. For new projects, use Elementor's native Loop Builder.<\/p>\n\n\n\n<p>Note: This plugin requires Elementor (free). Container Layout (Custom Layout mode) and Style Templates require Elementor Pro.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate <strong>Elementor<\/strong> (free).<\/li>\n<li>Upload and activate <strong>ECS - Ele Custom Skin for Elementor<\/strong> through the Plugins screen.<\/li>\n<li>Go to <strong>ECS \u2192 Modules<\/strong> in the WordPress admin and toggle on only the modules you need.<\/li>\n<li>Activated modules register their controls, widgets, and assets automatically.<\/li>\n<\/ol>\n\n<p><strong>Updating from ECS 3.x?<\/strong> Just update the plugin. The Legacy module activates automatically; all your existing loop skins keep working.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"i%27m%20updating%20from%20ecs%203.x.%20will%20my%20loop%20skins%20break%3F\"><h3>I'm updating from ECS 3.x. Will my loop skins break?<\/h3><\/dt>\n<dd><p>No. ECS detects existing loop templates and activates the Legacy module automatically on update. Everything works exactly as before.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20features%20i%20don%27t%20use%3F\"><h3>Can I disable features I don't use?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>ECS \u2192 Modules<\/strong> and toggle anything off. Disabled modules load zero CSS, zero JS, and register no hooks on the front end.<\/p><\/dd>\n<dt id=\"does%20dark%20mode%20require%20javascript%3F\"><h3>Does Dark Mode require JavaScript?<\/h3><\/dt>\n<dd><p>No JavaScript is needed for the colour switch itself. The CSS variables are written server-side under <code>[data-ecs-scheme=\"alt\"]<\/code>. The Dark Mode Switcher widget adds a small script only to set that attribute on <code>&lt;html&gt;<\/code> when the visitor toggles \u2014 a cookie prevents any flash on page load.<\/p><\/dd>\n<dt id=\"does%20custom%20layout%20work%20in%20the%20elementor%20editor%3F\"><h3>Does Custom Layout work in the Elementor editor?<\/h3><\/dt>\n<dd><p>Yes. Layout injection is disabled in the editor so you can edit children normally. A live preview is generated via AJAX when you click away from a child.<\/p><\/dd>\n<dt id=\"does%20slider%20mode%20require%20a%20js%20library%3F\"><h3>Does Slider Mode require a JS library?<\/h3><\/dt>\n<dd><p>No. It uses CSS scroll-snap \u2014 no jQuery plugin, no swipe library.<\/p><\/dd>\n<dt id=\"where%20do%20i%20create%20a%20custom%20layout%20template%3F\"><h3>Where do I create a Custom Layout template?<\/h3><\/dt>\n<dd><p>Go to <strong>Templates \u2192 Theme Builder<\/strong> in Elementor. You'll see a new document type called <strong>Custom Layout<\/strong>. Build your frame there and place the <strong>ECS Placeholder<\/strong> widget wherever you want a child to appear.<\/p><\/dd>\n<dt id=\"do%20i%20need%20elementor%20pro%3F\"><h3>Do I need Elementor Pro?<\/h3><\/dt>\n<dd><p>Dark Mode Colours, Menu Responsive, Editorial Text, Style Templates, JSON PowerEdit, and Loop Custom Layout work with Elementor free. Container Layout (Custom Layout mode) requires Elementor Pro.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>4.1.5<\/h4>\n\n<ul>\n<li>Fixed: WordPress Menu \u2014 native Elementor mobile\/tablet Breakpoint now works\ncorrectly when no responsive layout override is set for that device.<\/li>\n<li>Fixed: Container Layout \u2014 Slider navigation arrows and pagination dots now\nvisible in editor preview in all device modes.<\/li>\n<\/ul>\n\n<h4>4.1.2<\/h4>\n\n<ul>\n<li>Fixed: ECS widgets not appearing in Elementor panel \u2014 only visible in search.<\/li>\n<\/ul>\n\n<h4>4.1.1<\/h4>\n\n<ul>\n<li>Fixed: PHP Fatal error on PHP 8.1+ \u2014 typed property $current_permalink incompatible with parent Skin_Base.<\/li>\n<\/ul>\n\n<h4>4.1.0<\/h4>\n\n<ul>\n<li>NEW: Style Templates \u2014 save and reuse widget style presets across pages and sites.<\/li>\n<li>NEW: JSON PowerEdit \u2014 edit widget settings JSON directly from the panel.<\/li>\n<li>NEW: Loop Custom Layout \u2014 arrange Loop Grid items inside a Custom Layout template.<\/li>\n<li>Improved: Dark Mode Colours \u2014 stability and compatibility improvements.<\/li>\n<li>Improved: Container Layout \u2014 better editor preview, cycling and fallback behaviour.<\/li>\n<li>Fixed: PHP 8.2 dynamic property deprecation in Legacy module.<\/li>\n<li>Tested with Elementor 3.35 and WordPress 6.8.<\/li>\n<\/ul>\n\n<h4>4.0.0<\/h4>\n\n<ul>\n<li><strong>Rebuilt from the ground up<\/strong> \u2014 modular architecture, every feature is a toggleable module.<\/li>\n<li>NEW: Default Colours tab in Elementor Site Settings with per-colour dark mode support.<\/li>\n<li>NEW: Dark Mode Switcher widget (toggle \/ dual \/ dropdown modes, full style controls).<\/li>\n<li>NEW: Container Layout module \u2014 Custom Layout mode and Slider mode.<\/li>\n<li>NEW: Menu Responsive module.<\/li>\n<li>NEW: Editorial Text widget.<\/li>\n<li>NEW: ECS \u2192 Modules admin page.<\/li>\n<li>Legacy (ECS 3.x): loop skin and Ajax Load More preserved in the Legacy module, auto-activated on update.<\/li>\n<\/ul>\n\n<h4>3.1.7<\/h4>\n\n<ul>\n<li>Fixed errors with Elementor 3.7.<\/li>\n<li>Added support for dynamic media breakpoint CSS.<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li>Ajax Pagination URL change is now optional.<\/li>\n<li>Experimental reinitialization of Elementor JavaScript after Ajax requests.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>NEW: Custom Grid Template with Loop Item placeholder widget.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release \u2014 Loop skin for Elementor Posts and Archive Posts widgets.<\/li>\n<\/ul>","raw_excerpt":"Seven free modules for Elementor: dark mode, container layouts, mobile menu, editorial text, style presets, JSON editor \u2014 all modular, all free.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/84493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=84493"}],"author":[{"embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dudaster"}],"wp:attachment":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=84493"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=84493"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=84493"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=84493"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=84493"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=84493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}