{"id":315242,"date":"2026-08-14T19:54:18","date_gmt":"2026-08-14T19:54:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/atomic-framework-forge-for-elementor\/"},"modified":"2026-08-22T21:05:26","modified_gmt":"2026-08-22T21:05:26","slug":"atomic-framework-forge-for-elementor","status":"publish","type":"plugin","link":"https:\/\/eo.wordpress.org\/plugins\/atomic-framework-forge-for-elementor\/","author":18266587,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.0","stable_tag":"1.5.0","tested":"7.1","requires":"5.8","requires_php":"8.2","requires_plugins":null,"header_name":"Atomic Framework Forge for Elementor","header_author":"Jim Roberts","header_description":"Professional management interface for Elementor Version 4 (atomic widget architecture) assets \u2014 Variables, Classes, and Components.","assets_banners_color":"3f301f","last_updated":"2026-08-22 21:05:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/jimrforge.com\/atomic-framework-forge\/","header_author_uri":"https:\/\/jimrforge.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":111,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.3":{"tag":"1.4.3","author":"mijstrebor","date":"2026-08-14 19:54:10"},"1.5.0":{"tag":"1.5.0","author":"mijstrebor","date":"2026-08-22 21:05:26"}},"upgrade_notice":{"1.4.3":"<p>Resolves WordPress.org review feedback on output escaping; also includes the 1.4.2 corruption and commit-matching fixes. Recommended for all users.<\/p>","1.4.2":"<p>Fixes a project-file corruption risk and a silent Elementor-reference bug on Variable rename + commit. Recommended for all users.<\/p>","1.4.1":"<p>Critical fix: all admin AJAX actions were broken in 1.4.0. Update immediately.<\/p>","1.0.0":"<p>First stable release. Resolves all WordPress Plugin Check errors and warnings. Safe to install fresh.<\/p>","0.3.4-beta":"<p>Plugin renamed EFF \u2192 ATFRFO for WordPress.org compatibility. Sync improved: reads Elementor kit meta directly. Bug fixes for category defaults and AJAX action names.<\/p>","0.3.3-beta":"<p>Auto-regenerates missing Elementor kit CSS on sync \u2014 prevents 0-variable result on fresh installs or after Elementor cache clears.<\/p>","0.3.2-beta":"<p>Bug-fix release: drag-and-drop color reorder, column sort persistence across tab switches, and auto-load reliability.<\/p>","0.3.0-beta":"<p>Right panel reorganized; sync and commit buttons moved from top bar to right panel. Versioned backup system replaces single-file saves.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3651710,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3651710,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3651710,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3651710,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.3","1.5.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3651710,"resolution":"1","location":"assets","locale":"","width":2173,"height":1180},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3651710,"resolution":"2","location":"assets","locale":"","width":2152,"height":1144},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3651710,"resolution":"3","location":"assets","locale":"","width":2164,"height":1177},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3651710,"resolution":"4","location":"assets","locale":"","width":2182,"height":1177},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3651710,"resolution":"5","location":"assets","locale":"","width":927,"height":942},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3651710,"resolution":"6","location":"assets","locale":"","width":930,"height":694},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3651710,"resolution":"7","location":"assets","locale":"","width":1306,"height":882},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3651710,"resolution":"8","location":"assets","locale":"","width":1317,"height":1219}},"screenshots":{"1":"A professional workspace for managing design variables in Elementor's new V4 Atomic framework \u2014 the full AFF interface: project navigation, variable categories, edit area, and data management panel.","2":"Build and organize a structured color system with visual editing and generated color variants \u2014 categories, sub-categories, swatches, and status information.","3":"Manage font variables organized by category and sub-category, with live preview.","4":"Manage the numeric foundation of your design system \u2014 spacing, sizing, and layout values with unit-aware editing, including CSS function values like <code>clamp()<\/code>.","5":"Fetch variables from Elementor \u2014 including V3 Global Colors, for migrating an existing V3 site into V4 \u2014 and see exactly what's changed before committing anything back: Synced, Modified, New, Orphaned, and Conflict status at a glance.","6":"AFF never silently writes changes to Elementor \u2014 a safety check reviews your commit before it happens, including flagging any Elementor or Elementor Pro version change since your last sync.","7":"Manage multiple independent projects, track save history, and restore previous backups from the Project Manager.","8":"Generate print-ready documentation of your variable system, organized by type with values and swatches \u2014 ready to save as a PDF."}},"plugin_section":[],"plugin_tags":[275754,68566,215460,4932,76538],"plugin_category":[],"plugin_contributors":[249308],"plugin_business_model":[],"class_list":["post-315242","plugin","type-plugin","status-publish","hentry","plugin_tags-atomic-widgets","plugin_tags-css-variables","plugin_tags-design-system","plugin_tags-developer-tools","plugin_tags-elementor","plugin_contributors-mijstrebor","plugin_committers-mijstrebor"],"banners":{"banner":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/banner-772x250.png?rev=3651710","banner_2x":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/banner-1544x500.png?rev=3651710","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/icon-128x128.png?rev=3651710","icon_2x":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/icon-256x256.png?rev=3651710","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/screenshot-1.jpg?rev=3651710","caption":"A professional workspace for managing design variables in Elementor's new V4 Atomic framework \u2014 the full AFF interface: project navigation, variable categories, edit area, and data management panel."},{"src":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/screenshot-2.jpg?rev=3651710","caption":"Build and organize a structured color system with visual editing and generated color variants \u2014 categories, sub-categories, swatches, and status information."},{"src":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/screenshot-3.jpg?rev=3651710","caption":"Manage font variables organized by category and sub-category, with live preview."},{"src":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/screenshot-4.jpg?rev=3651710","caption":"Manage the numeric foundation of your design system \u2014 spacing, sizing, and layout values with unit-aware editing, including CSS function values like <code>clamp()<\/code>."},{"src":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/screenshot-5.jpg?rev=3651710","caption":"Fetch variables from Elementor \u2014 including V3 Global Colors, for migrating an existing V3 site into V4 \u2014 and see exactly what's changed before committing anything back: Synced, Modified, New, Orphaned, and Conflict status at a glance."},{"src":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/screenshot-6.jpg?rev=3651710","caption":"AFF never silently writes changes to Elementor \u2014 a safety check reviews your commit before it happens, including flagging any Elementor or Elementor Pro version change since your last sync."},{"src":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/screenshot-7.jpg?rev=3651710","caption":"Manage multiple independent projects, track save history, and restore previous backups from the Project Manager."},{"src":"https:\/\/ps.w.org\/atomic-framework-forge-for-elementor\/assets\/screenshot-8.jpg?rev=3651710","caption":"Generate print-ready documentation of your variable system, organized by type with values and swatches \u2014 ready to save as a PDF."}],"raw_content":"<!--section=description-->\n<h4>Build and manage your Elementor design system<\/h4>\n\n<p><strong>Atomic Framework Forge for Elementor (AFF)<\/strong> gives developers a dedicated workspace for organizing, editing, backing up, and synchronizing the CSS variables that power Elementor V4's atomic architecture.<\/p>\n\n<p><strong>Colors. Fonts. Numbers.<\/strong> Manage your variables in one place instead of hunting through your Elementor configuration.<\/p>\n\n<p><strong>Requires Elementor and Elementor Pro.<\/strong><\/p>\n\n<h4>The problem<\/h4>\n\n<p>As a site built on Elementor's new V4 Atomic framework grows, its design variables can become difficult to see, organize, and maintain. Colors accumulate. Spacing values multiply. Typography settings spread across a project. Making a change can mean searching through an increasingly complex design system.<\/p>\n\n<p>Atomic Framework Forge gives developers a dedicated workspace for managing these variables as an organized system: find them, organize them, edit them, back them up, and synchronize them with Elementor \u2014 while keeping the developer in control of when changes are written back.<\/p>\n\n<h4>Three types of variables, one workspace<\/h4>\n\n<p><strong>Colors<\/strong> \u2014 Build and maintain an organized color system.<\/p>\n\n<ul>\n<li>HEX, RGB, HSL, and alpha editing with a visual color picker<\/li>\n<li>Generate tints, shades, and transparency variants<\/li>\n<li>Organize into categories and sub-categories<\/li>\n<li>Add notes and classifications to variables<\/li>\n<\/ul>\n\n<p><strong>Fonts<\/strong> \u2014 Keep font variables organized and accessible.<\/p>\n\n<ul>\n<li>Manage Elementor font variables, organized by category and sub-category<\/li>\n<li>Edit font-related CSS custom properties<\/li>\n<li>Preview font values within the management interface<\/li>\n<\/ul>\n\n<p><strong>Numbers<\/strong> \u2014 Manage the numeric foundation of your design system: spacing, sizing, gaps, radius, layout values, and other numeric CSS variables. Unit-aware editing for px, rem, em, %, vw, vh, ch, and CSS function values (e.g. <code>clamp()<\/code>) when needed.<\/p>\n\n<h4>Organize your design system<\/h4>\n\n<p>AFF is not limited to a flat list of variables. Create your own categories and one level of sub-categories to reflect the design system you actually use \u2014 for example, Colors organized into Brand \/ Neutral \/ Status \/ Surface, or Numbers into Spacing \/ Radius \/ Layout \/ Sizing. The categories are yours to define.<\/p>\n\n<h4>Work with Elementor \u2014 not around it<\/h4>\n\n<p>AFF reads Elementor's V4 variable data and brings it into a dedicated management environment: <strong>fetch<\/strong> the variables from your active Elementor kit, <strong>organize and edit<\/strong> them in AFF, <strong>review<\/strong> which variables are synced, modified, new, orphaned, or in conflict, then <strong>commit<\/strong> \u2014 explicitly, when you're ready \u2014 to write the changes back.<\/p>\n\n<h4>A deliberately controlled write process<\/h4>\n\n<p>AFF is designed around a read-first workflow. Reading Elementor data does not modify Elementor. Writing changes back is always a deliberate, user-triggered action \u2014 never automatic or in the background \u2014 preceded by a summary showing exactly what will change (modified, new, and deleted variables).<\/p>\n\n<p><strong>Recommended:<\/strong> use AFF on a staging or local development site, and export a project backup before committing changes to Elementor.<\/p>\n\n<h4>How AFF interacts with Elementor<\/h4>\n\n<p><strong>Read:<\/strong> AFF reads global variables directly from the active Elementor kit's _elementor_global_variables post meta -- the same authoritative data store Elementor itself uses. This happens only when you click \"Fetch Elementor Data\". It is purely read-only; nothing in Elementor is touched.<\/p>\n\n<p><strong>Write:<\/strong> When you click \"Write to Elementor\", AFF writes the current variable values back to _elementor_global_variables on the kit post -- the same authoritative data store, updated the same way Elementor itself updates it. This is the primary and authoritative write. As a secondary, best-effort step, AFF also patches the active kit's generated CSS file directly, so the page reflects the change immediately instead of waiting for Elementor's own regeneration on next load; if this secondary step is skipped or fails for any reason, Elementor's own cache-clear and regeneration (triggered by the post meta update) still produces the correct CSS. AFF writes to no other Elementor data.<\/p>\n\n<p>Every write is user-triggered (no background or automatic writes, ever), preceded by a confirmation dialog showing exactly what will change, and limited to variables you have managed in AFF. AFF does not touch anything else in your Elementor configuration.<\/p>\n\n<p><strong>Use on staging or a local development environment only.<\/strong> A corrupted write could damage your Elementor kit's variable data. Always export a project backup before writing to Elementor.<\/p>\n\n<h4>Bringing an existing Elementor site into V4?<\/h4>\n\n<p>AFF can import Elementor V3 Global Colors into your AFF project \u2014 both system and custom colors. The four standard Elementor system colors are identified with their familiar roles (Primary, Secondary, Text, Accent), so you never lose track of what each color controls. Bring those colors into your V4 variable-management workflow and map your existing color system as you rebuild your site.<\/p>\n\n<h4>Projects, backups, and portability<\/h4>\n\n<p>AFF supports multiple independent projects within a WordPress site. Each project can be:<\/p>\n\n<ul>\n<li><strong>Saved<\/strong> \u2014 create a persistent project containing your managed variables<\/li>\n<li><strong>Backed up<\/strong> \u2014 every save creates a timestamped backup snapshot; up to 50 backups per project (configurable)<\/li>\n<li><strong>Restored<\/strong> \u2014 return to a previous backup from the project\/backup picker<\/li>\n<li><strong>Exported<\/strong> \u2014 downloaded as a portable <code>.atfrfo.json<\/code> file<\/li>\n<li><strong>Imported<\/strong> \u2014 brought into another WordPress site running AFF<\/li>\n<\/ul>\n\n<h4>Know what changed<\/h4>\n\n<p>AFF shows status throughout the variable views, so you have visibility into the state of your design system before committing anything:<\/p>\n\n<ul>\n<li><strong>Synced<\/strong> \u2014 the AFF value matches Elementor<\/li>\n<li><strong>Modified<\/strong> \u2014 the value has been changed in AFF<\/li>\n<li><strong>New<\/strong> \u2014 the variable exists in AFF but hasn't been committed to Elementor yet<\/li>\n<li><strong>Orphaned<\/strong> \u2014 AFF has a variable that no longer corresponds to current Elementor data<\/li>\n<li><strong>Conflict<\/strong> \u2014 AFF and Elementor contain differing information that needs your attention<\/li>\n<\/ul>\n\n<h4>A workspace built for developers<\/h4>\n\n<p>AFF uses a four-panel interface: a <strong>top menu<\/strong> for project, sync, print, and preferences; a <strong>navigation panel<\/strong> for moving through Colors, Fonts, Numbers, and their categories; the <strong>edit space<\/strong> for working directly with variables; and a <strong>data management panel<\/strong> for projects, backups, import\/export, and Elementor sync. AFF's own interface supports light and dark mode, saved per WordPress user.<\/p>\n\n<h4>Print and PDF<\/h4>\n\n<p>AFF includes a print\/PDF workflow for documenting selected portions of your variable system \u2014 useful for client documentation, design-system reviews, or keeping a human-readable record of your variables.<\/p>\n\n<h4>Designed for professional Elementor development<\/h4>\n\n<p>Atomic Framework Forge is built for WordPress developers, Elementor developers, freelancers, and agencies maintaining large Elementor sites or establishing reusable design systems. If you're building one page, Elementor may be all you need. If you're managing the system behind many pages, AFF gives you another level of control.<\/p>\n\n<h4>Where the framework is going<\/h4>\n\n<p>The current release focuses on <strong>Variables<\/strong>. Future development extends the framework toward Elementor V4's other atomic assets: <strong>Variables \u2192 Classes \u2192 Components<\/strong>. Classes and Components are not part of the current 1.4.3 feature set \u2014 the goal is an increasingly complete environment for managing the building blocks of an Elementor design system.<\/p>\n\n<h4>Architecture<\/h4>\n\n<p>AFF is built for future portability. The data layer contains no WordPress dependencies and is designed to be ported to a standalone Windows or Mac application in a future phase.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Developed by Jim Roberts \/ Jim R Forge \u2014 https:\/\/jimrforge.com<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate <strong>Elementor<\/strong> and <strong>Elementor Pro<\/strong>.<\/li>\n<li>Install and activate <strong>Atomic Framework Forge for Elementor<\/strong>.<\/li>\n<li>Open <strong>AFF<\/strong> from the WordPress administration menu.<\/li>\n<li>Create or select an AFF project.<\/li>\n<li>Fetch your Elementor data.<\/li>\n<li>Organize and manage your variables.<\/li>\n<li>Export a backup before committing significant changes to Elementor.<\/li>\n<\/ol>\n\n<p><strong>Recommended:<\/strong> perform development and Elementor commits on a staging or local development environment.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20aff%20require%20elementor%20pro%3F\"><h3>Does AFF require Elementor Pro?<\/h3><\/dt>\n<dd><p>Yes. Atomic Framework Forge requires both Elementor and Elementor Pro to be installed and active.<\/p><\/dd>\n<dt id=\"what%20version%20of%20elementor%20is%20required%3F\"><h3>What version of Elementor is required?<\/h3><\/dt>\n<dd><p>AFF is designed for Elementor V4 and its atomic widget architecture. The 1.4.3 release was developed and validated against Elementor 4.1.3 and Elementor Pro 4.1.1.<\/p><\/dd>\n<dt id=\"does%20aff%20automatically%20change%20elementor%3F\"><h3>Does AFF automatically change Elementor?<\/h3><\/dt>\n<dd><p>No. AFF reads Elementor data when you request it. Changes are written back to Elementor only when you explicitly initiate a commit and confirm the operation.<\/p><\/dd>\n<dt id=\"does%20aff%20modify%20my%20elementor%20css%20files%3F\"><h3>Does AFF modify my Elementor CSS files?<\/h3><\/dt>\n<dd><p>Not by default. AFF is read-first and non-destructive \u2014 it reads your Elementor kit data but never modifies it unless you explicitly click <strong>\u2191 Variables<\/strong> (Commit to Elementor) in the right panel. A summary dialog shows exactly what will be written before you confirm. When you do commit, AFF updates Elementor's authoritative global-variable data and uses a secondary CSS update where appropriate so changes can appear immediately; Elementor remains responsible for its own normal cache clearing and CSS regeneration.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20changes%3F\"><h3>Can I undo changes?<\/h3><\/dt>\n<dd><p>AFF maintains timestamped project backups, restorable from the project\/backup management interface. You should also export a project backup before committing significant changes to Elementor.<\/p><\/dd>\n<dt id=\"can%20i%20move%20an%20aff%20project%20to%20another%20site%3F\"><h3>Can I move an AFF project to another site?<\/h3><\/dt>\n<dd><p>Yes. Each AFF project is saved under its own folder in your WordPress uploads directory \u2014 for example, a project named <code>brand-colors<\/code> is stored at <code>\/uploads\/atfrfo\/brand-colors\/<\/code>, with timestamped save files such as <code>brand-colors_2026-08-16_09-15-00.atfrfo.json<\/code>. Export any saved snapshot and import it into another WordPress site running AFF to bring that project's variables along.<\/p><\/dd>\n<dt id=\"can%20i%20import%20elementor%20v3%20global%20colors%3F\"><h3>Can I import Elementor V3 Global Colors?<\/h3><\/dt>\n<dd><p>Yes. AFF includes a V3 \u2192 V4 color migration feature that imports Elementor V3 Global Colors, including system and custom colors.<\/p><\/dd>\n<dt id=\"can%20i%20organize%20variables%20into%20groups%3F\"><h3>Can I organize variables into groups?<\/h3><\/dt>\n<dd><p>Yes. AFF supports categories and one level of sub-categories.<\/p><\/dd>\n<dt id=\"are%20classes%20and%20components%20available%3F\"><h3>Are Classes and Components available?<\/h3><\/dt>\n<dd><p>Not yet. Version 1.4.3 focuses on Variables. Classes are in beta on a separate development line and Components are planned for a future release.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added: Drag a category onto another to nest it as a subcategory; drag a subcategory out to promote it back to top-level, or onto a different category to move it there.<\/li>\n<li>Added: Category headers list their subcategory names inline; click anywhere in a header to collapse\/expand it.<\/li>\n<li>Fixed: Several category reorder\/move actions were missing a required parameter and could silently fail to save.<\/li>\n<li>Fixed: Merge Conflicts dialog showed a blank \"AFF value\" column due to a property-name mismatch; dialog also widened and its scrollbar is no longer hidden below the visible area.<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Fixed: WordPress.org review \u2014 icon SVG output now escaped via wp_kses() at the actual point of echo, not only upstream inside the icon-lookup helper (19 call sites).<\/li>\n<li>Includes all 1.4.2 fixes: LOCK_EX file locking, ID-based Elementor commit matching, backup filename collision fix.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Fixed: Project file writes now use LOCK_EX, preventing JSON corruption from concurrent writes (two tabs, an overlapping autosave) to the same project file.<\/li>\n<li>Fixed: Commit to Elementor now matches Variables by their stored Elementor ID first, not name alone \u2014 renaming a Variable and recommitting now updates the existing entry in place instead of silently creating a new one and orphaning any class or widget already referencing the old ID.<\/li>\n<li>Fixed: Backup filename collisions during Copy Project no longer require a blocking sleep() retry loop.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Fixed: Critical \u2014 every AJAX endpoint (Save, Load, Sync, and all other admin actions) was non-functional due to a method-naming mismatch introduced during the 1.4.0 prefix rename. All endpoints restored.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added: \"Take a look\" notify sign \u2014 rising notification pointing new users at the Quick-Start guide, capped at 3 lifetime shows per user.<\/li>\n<li>Changed: Brand assets \u2014 logo and favicon replaced with new blacksmith-hammer artwork.<\/li>\n<li>Changed: Help panel \u2014 Media Inventory Forge now shown as available on WordPress.org, added Fluid Button Forge as In Development, corrected stale references, updated for jimrforge.com being live.<\/li>\n<li>Fixed: Weak HTML-escape functions consolidated to the canonical, fully-correct implementation (security).<\/li>\n<li>Fixed: Font-size default mismatch between PHP and the actual CSS baseline corrected.<\/li>\n<li>Fixed: Two dead dev-only patch scripts removed from the plugin repo.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added: V3 import result modal \u2014 shows import count, Close button, auto-closes after 4 seconds.<\/li>\n<li>Added: System color auto-notes \u2014 first four V3 imports receive a \"System Colors: ...\" description automatically.<\/li>\n<li>Added: Print sub-category hierarchy \u2014 sub-categories indented with gradient band and accent bar; swatches align under sub-category title.<\/li>\n<li>Added: Print comments toggle \u2014 \"Print comments\" checkbox in print options modal; comments print as italic second line per variable.<\/li>\n<li>Changed: Color expand modal restructured to two-row header (Row 1: controls; Row 2: notes field).<\/li>\n<li>Changed: Sticky group header \u2014 filter bar and status legend now pin together as one unit when scrolling.<\/li>\n<li>Changed: Print document title \u2014 removed \"V4\"; now reads \"Atomic Framework Forge for Elementor\".<\/li>\n<li>Changed: Comment field placeholder \u2014 shows \"Comment\" instead of \"Add a note\u2026\".<\/li>\n<li>Changed: Informational modals (Fetch, Clean Up, V3 Import) unified into ATFRFO.Modal.info() helper with auto-close and Close button.<\/li>\n<li>Fixed: App top bar scrolled off screen due to WordPress padding on #wpbody-content.<\/li>\n<li>Fixed: Brand name title faded on scroll \u2014 fade animation removed.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added: Sub-categories \u2014 one level of sub-categories under any top-level category, with full CRUD and cascade collapse.<\/li>\n<li>Added: Tints\/Shades\/Transparencies generated into named sub-categories rather than flat into the parent.<\/li>\n<li>Added: Delete Variable button \u2014 trash icon on hover in every variable row, with confirmation modal.<\/li>\n<li>Added: Status legend (Synced \/ Modified \/ New \/ Orphaned \/ Conflict) shown under the filter bar in all variable views.<\/li>\n<li>Added: Print\/PDF \u2014 top-bar printer button with set-selection modal; opens browser print dialog.<\/li>\n<li>Added: Home icon replaces the \u2715 close button on the type filter bar for clearer back-navigation.<\/li>\n<li>Fixed: Delete button column overflow \u2014 PHP inline style was emitting 7 columns, now correctly 8 for all views.<\/li>\n<li>Fixed: Google Fonts loaded for font preview cells.<\/li>\n<li>Fixed: Uncategorized badge catch-all, font classification, soft-deleted variable counts, delete-category variables bug, scroll-to-top after delete, smart quotes parse error.<\/li>\n<li>Changed: Category count badges roll up sub-category variables. New categories insert at top of list.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Fixed: Plugin Check errors resolved \u2014 is_writable() replaced with WP_Filesystem, Requires PHP header aligned, hidden .gitkeep removed, filename with spaces renamed.<\/li>\n<li>Fixed: False-positive nonce\/sanitization warnings suppressed (nonces verified centrally via verify_request()).<\/li>\n<li>Changed: Elementor dev version constants updated to 4.0.8 \/ 4.0.4.<\/li>\n<\/ul>\n\n<h4>0.4.2-beta<\/h4>\n\n<ul>\n<li>Added: Elementor commit now writes to _elementor_global_variables post meta as the primary target; CSS file patch applied as secondary for immediate visual preview.<\/li>\n<li>Fixed: CSS variable names normalized to -- prefix on Elementor commit; bare identifiers (sp-s) are now written as valid custom properties (--sp-s).<\/li>\n<li>Fixed: ATFRFO now stores bare identifiers internally, preventing double-prefix on round-trip commit\/import.<\/li>\n<li>Fixed: Elementor V4 import preserves labels unchanged; strips only one -- prefix per name.<\/li>\n<li>Fixed: Renaming a category no longer causes its variables to disappear from the edit view.<\/li>\n<li>Fixed: Add Category works correctly in Fonts and Numbers panels; modal handler now removed on close.<\/li>\n<li>Fixed: Deleting a project clears the active display; native confirm() replaced with modal dialog.<\/li>\n<li>Fixed: Project file auto-saved after Clear and Replace sync operations.<\/li>\n<li>Fixed: Left panel category count badges now match by category_id in addition to category name.<\/li>\n<li>Fixed: Take-a-look sign image converted to true PNG with transparent background.<\/li>\n<li>Changed: Duplicate utility methods extracted into shared ATFRFO.Utils and ATFRFO.Icons (Phase 1, ~520 lines removed).<\/li>\n<li>Changed: Six category-management methods consolidated into ATFRFO.CatMixin applied to both Colors and Variables (Phase 2, ~290 lines removed).<\/li>\n<\/ul>\n\n<h4>0.4.1-beta<\/h4>\n\n<ul>\n<li>Fixed placeholder sign background: transparent PNG areas now render against the page theme colour instead of showing a checkerboard pattern.<\/li>\n<\/ul>\n\n<h4>0.4.0-beta<\/h4>\n\n<ul>\n<li>Numbers editing overhaul: pure number storage, autofill unit suffix on entry (px, rem, em, %, vw, vh, ch, x=PX), FX function mode with auto-close, invalid suffix error.<\/li>\n<li>New unitless <code>\u2014<\/code> format type for Numbers (z-index, opacity, line-height, etc.).<\/li>\n<li>Variable counts in left navigation: per-category counts on category items; total counts on Colors\/Fonts\/Numbers subgroup headers.<\/li>\n<li>Collapse\/expand all buttons on all three sets now use double-chevron icons with state-aware tooltips.<\/li>\n<li>Fixed drag\/drop broken on Numbers and Fonts (undefined setLower caused ReferenceError in strict mode).<\/li>\n<li>Fixed scroll-to-top on Add Variable (wrong scroll container; also added preventScroll on focus).<\/li>\n<li>Fixed Numbers sort header column misalignment.<\/li>\n<li>Placeholder panel image changed from cover to contain; forge-themed arch banner prompts new users to read QUICK-START.md.<\/li>\n<li>QUICK-START.md corrected: button names, step numbering, section table, stale notes removed.<\/li>\n<li>f\u2093 display label for FX format throughout UI (stored value remains 'FX' for backward compatibility).<\/li>\n<\/ul>\n\n<h4>0.3.5-beta<\/h4>\n\n<ul>\n<li>Load Project modal: project list now shows folder structure with save count, last-saved date, and inline rename. Copy and delete project actions added.<\/li>\n<li>Fixed cross-module event contamination between Colors and Variables\/Numbers views (drag, click, and focusout handlers now guarded per-view).<\/li>\n<li>Fixed drag snap-back and cross-module drag switch in Numbers view.<\/li>\n<li>Write to Elementor: auto-regenerates missing kit CSS file instead of erroring.<\/li>\n<li>Prevented duplicate variable names (JS and PHP validation).<\/li>\n<li>Removed forced <code>--<\/code> prefix while typing variable names.<\/li>\n<\/ul>\n\n<h4>0.3.4-beta<\/h4>\n\n<ul>\n<li>Plugin renamed from Elementor Framework Forge (EFF) to Atomic Framework Forge for Elementor (ATFRFO) for WordPress.org compatibility. All internal prefixes updated.<\/li>\n<li>Sync now reads Elementor kit meta directly via read_from_kit_meta(); CSS file parsing retained as fallback.<\/li>\n<li>Fixed font and number category defaults not loading correctly on fresh installs.<\/li>\n<li>Fixed two AJAX action name call sites still using eff_sync_from_elementor after rename.<\/li>\n<\/ul>\n\n<h4>0.3.3-beta<\/h4>\n\n<ul>\n<li>Auto-regenerate Elementor kit CSS via Elementor's CSS API when the file is missing, preventing 0-variable sync on fresh installs or after cache clears.<\/li>\n<\/ul>\n\n<h4>0.3.2-beta<\/h4>\n\n<ul>\n<li>Fixed drag-and-drop color reorder failing when no project file was loaded (<code>atfrfo_save_file<\/code> API mismatch after versioned backup refactor).<\/li>\n<li>Fixed column sort state not persisting when switching between Colors and Numbers tabs.<\/li>\n<li>Fixed <code>resolve_file()<\/code> rejecting valid subdirectory paths when the project directory did not yet exist, causing auto-load to silently fail.<\/li>\n<\/ul>\n\n<h4>0.3.0-beta<\/h4>\n\n<ul>\n<li>Versioned backup system with timestamped snapshots and two-level project\/backup picker.<\/li>\n<li>Right panel reorganized into five named sections: Active Project, Save &amp; Backups, Elementor Sync, Elementor V3 Import, Export \/ Import.<\/li>\n<li>Sync options dialog (Sync by name \/ Clear and replace) before pulling from Elementor.<\/li>\n<li>Commit summary dialog showing modified \/ new \/ deleted counts before writing to Elementor.<\/li>\n<li>Elementor V3 Global Colors import from kit post meta.<\/li>\n<li>Export and Import moved from top bar to right panel.<\/li>\n<li>Multi-project support with per-project backup limits (default 10, max 50).<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li>Auto-select project name in Manage Project modal.<\/li>\n<li>Elementor sync now lowercases all variable names on import.<\/li>\n<li>Fixed stacked .atfrfo suffix in filenames.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Pickr visual color picker (HEX \/ RGB \/ HSL + alpha).<\/li>\n<li>Tint \/ shade \/ transparency generator.<\/li>\n<li>Export \/ Import project as .atfrfo.json.<\/li>\n<li>USER-MANUAL.md added.<\/li>\n<\/ul>\n\n<h4>0.0.1-alpha<\/h4>\n\n<ul>\n<li>Initial release \u2014 Variables (Colors, Fonts, Numbers), Sync, Organize, Save, Commit, Dark Mode.<\/li>\n<\/ul>","raw_excerpt":"Take control of your design variables in Elementor&#039;s new V4 Atomic framework. Manage Colors, Fonts, and Numbers in a professional workspace.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/315242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=315242"}],"author":[{"embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mijstrebor"}],"wp:attachment":[{"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=315242"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=315242"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=315242"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=315242"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=315242"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=315242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}