Skip to content

About

Professional management interface for Elementor Version 4 atomic widget assets — Variables, Classes, and Components.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

Atomic Framework Forge for Elementor

Atomic Framework Forge for Elementor

A professional management interface for Elementor Version 4 CSS assets.

Stable Version WordPress PHP Requires License


Get Started

New to AFF? Quick Start Guide → — from zero to an organized project in about ten minutes
Looking up a feature? User Manual → — complete reference for every panel and workflow

Start with the Quick Start Guide — it covers installation through your first saved project and explains every part of the interface.


What is AFF?

Atomic Framework Forge for Elementor (AFF) is a WordPress developer tool that gives you a purpose-built management interface for the CSS custom properties introduced by Elementor Version 4 (the new atomic widget architecture).

Instead of hunting through Elementor's generated CSS by hand, AFF reads your kit file, organizes your variables into labeled categories, and lets you manage them as a structured, multi-project workspace with full backup and version history.

Migrating from Elementor V3 to V4? AFF handles the hardest part of the transition. Import all your V3 Global Colors into AFF with one click — the four standard system colors (Primary, Secondary, Text, Accent) are automatically annotated with their usage roles. Then import your V4 variables alongside them, map each V3 color to its V4 equivalent, and track migration progress as you rebuild pages. See the V3 → V4 Migration Workflow →


How AFF Interacts with Elementor

Read: 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 ↓ Variables (Fetch Elementor Data). It is purely read-only; nothing in Elementor is touched.

Write: When you click ↑ Variables (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. AFF writes to no other Elementor data.

Every write is:

  • Always user-triggered — no background or automatic writes, ever
  • Always preceded by a confirmation dialog showing exactly what will change
  • Always limited to variables you have managed in AFF — AFF does not touch anything else in your Elementor configuration

Use on staging or a local development environment only. A corrupted write could damage your Elementor kit's variable data. Always export a project backup before writing to Elementor.


Data Management Model

AFF manages Elementor V4 assets through four distinct, user-controlled data channels. All controls live in the right panel.

Channel Into AFF Out of AFF
Elementor V4 Sync Pull variables from Elementor kit Commit AFF variables back to Elementor kit
Elementor V3 Import Import V3 Global Colors into current project Not supported — V3 is read-only
Backup / Restore Restore a saved project snapshot Save Project — creates a timestamped backup
External File Import an .atfrfo.json from disk Export current project to .atfrfo.json

The only automatic operation is startup auto-load — AFF reloads the last active project when you open the plugin. Everything else is user-initiated.


Status

Version 1.5.0. The complete Variables workflow (Colors, Fonts, Numbers — sync, edit, organize, commit back to Elementor) is fully functional, including drag-drop category/subcategory reorganization. Classes management is planned for v2.0.0; Components registry for v3.0.0.

Report issues at https://github.com/Mij-Strebor/atomic-framework-forge-for-elementor/issues


What Works in v1.5.0

Feature Status
Sync CSS variables from Elementor V4 kit ✅ Working
Auto-classify variables into Colors / Fonts / Numbers ✅ Working
Organize variables into named categories ✅ Working
Inline rename variables and categories ✅ Working
Drag-and-drop reorder within and across categories ✅ Working
Color swatch — click to open Pickr visual color picker ✅ Working
Color picker — HEX / RGB / HSL + alpha ✅ Working
Expand panel — tint / shade / transparency generator ✅ Working
Add / rename / delete / duplicate / reorder categories ✅ Working
Manual CSS path fallback when sync auto-detect fails ✅ Working
Default categories per variable set (configurable) ✅ Working
Usage count scan (how many widgets use each variable) ✅ Working
Commit variable values back to Elementor V4 kit CSS ✅ Working
Undo / Redo — Ctrl+Z / Ctrl+Y (50-step history) ✅ Working
Light / Dark interface theme ✅ Working
Auto-load last used project on startup ✅ Working
Multiple named projects per site ✅ Working
Save Project — creates timestamped backup snapshot ✅ Working
Restore from backup — two-level project / backup picker ✅ Working
Auto-prune — oldest backups removed at configurable limit ✅ Working
Export project to .atfrfo.json ✅ Working
Import project from .atfrfo.json ✅ Working
Classes management 🔜 v2.0.0
Components registry 🔜 v3.0.0
Sync options dialog (Sync by name / Clear and replace) ✅ Working
Commit summary dialog ✅ Working
Elementor V3 Global Colors import ✅ Working
Print / PDF — variable reference sheet with sub-category hierarchy and optional comments ✅ Working

Interface

AFF Numbers

Four panels:

  • Top bar — Preferences, Manage Project, Functions, History, Search, Help
  • Left nav — Collapsible tree: Variables (Colors / Fonts / Numbers) · Classes (v2.0.0) · Components (v3.0.0)
  • Center edit space — Category blocks, variable rows, inline editing
  • Right panel — All data management: active project, save & backups, Elementor sync, V3 import, export/import

Requirements

Requirement Version
WordPress 5.8 or later
PHP 8.2 or later
Elementor (free) Latest recommended
Elementor Pro Latest recommended

Both Elementor and Elementor Pro must be installed and active. AFF shows an admin notice and refuses to load if either is missing.


Installation

Option A — Clone (recommended for testers)

cd wp-content/plugins
git clone https://github.com/Mij-Strebor/atomic-framework-forge-for-elementor.git

Activate Atomic Framework Forge for Elementor in WordPress → Plugins → Installed Plugins.

Option B — Download ZIP

  1. Click Code → Download ZIP on this page.
  2. Unzip into wp-content/plugins/atomic-framework-forge-for-elementor/.
  3. Activate in WordPress.

Option C — Development Symlink (Windows)

From an elevated Command Prompt:

mklink /D "C:\path\to\wp\wp-content\plugins\atomic-framework-forge-for-elementor" "E:\path\to\your\eff"

macOS / Linux:

ln -s /path/to/eff /path/to/wp/wp-content/plugins/atomic-framework-forge-for-elementor

Quick Start

The Quick Start walks through installation, syncing variables, organizing into categories, saving your project, and using the backup system. Takes about ten minutes.

The short version:

  1. Activate the plugin and open AFF in the WordPress admin sidebar.
  2. In the right panel under Elementor Sync, click ↓ Variables to pull your variables from Elementor.
  3. Variables appear under Colors, Fonts, and Numbers in the left panel.
  4. Click any category to open it in the edit space. Edit values inline; click a swatch to open the color picker.
  5. Click Save Project in the right panel to create your first backup snapshot.

Project File Format

AFF stores projects in uploads/atfrfo/{project-slug}/ as timestamped .atfrfo.json snapshots:

uploads/atfrfo/
  my-brand/
    my-brand_2026-03-19_14-30-00.atfrfo.json
    my-brand_2026-03-19_16-45-12.atfrfo.json
  client-theme/
    client-theme_2026-03-18_09-00-00.atfrfo.json

The format is plain JSON — portable between installations and designed to support a future desktop application.


Architecture

File Structure

atomic-framework-forge-for-elementor/
├── atomic-framework-forge-for-elementor.php        # Plugin entry, headers, bootstrap
├── includes/
│   ├── class-atfrfo-admin.php              # Admin page, asset enqueueing
│   ├── class-atfrfo-ajax-handler.php       # All AJAX endpoints
│   ├── class-atfrfo-css-parser.php         # Elementor kit CSS parser (read-only)
│   ├── class-atfrfo-data-store.php         # Platform-portable data layer
│   ├── class-atfrfo-loader.php             # Hook registration
│   ├── class-atfrfo-settings.php           # Plugin preferences
│   └── class-atfrfo-usage-scanner.php      # Widget var() reference scanner
├── admin/
│   ├── views/page-atfrfo-main.php          # Four-panel HTML template
│   ├── css/
│   │   ├── atfrfo-theme.css                # Design tokens, light/dark palettes
│   │   ├── atfrfo-layout.css               # Panel structure, nav, badges
│   │   ├── atfrfo-colors.css               # Colors edit space + Pickr styles
│   │   └── atfrfo-variables.css            # Fonts / Numbers edit space styles
│   └── js/
│       ├── atfrfo-app.js                   # Global state, AJAX wrapper, init
│       ├── atfrfo-colors.js                # Colors variable set module + Pickr
│       ├── atfrfo-variables.js             # Generic variable set factory (Fonts, Numbers)
│       ├── atfrfo-edit-space.js            # Edit space router
│       ├── atfrfo-modal.js                 # Modal system with focus trap
│       ├── atfrfo-panel-left.js            # Left nav tree
│       ├── atfrfo-panel-right.js           # Data management panel
│       ├── atfrfo-panel-top.js             # Top bar, tooltips, sync, preferences
│       └── atfrfo-theme.js                 # Light/dark toggle & persistence
├── assets/
│   ├── fonts/                           # Inter WOFF2 (400/500/600/700, Latin)
│   ├── icons/                           # SVG icon set
│   └── images/                          # Banners
└── data/
    └── atfrfo-defaults.json                # Default category lists per variable set

Design Principles

Non-destructive by default. AFF reads Elementor's CSS and never modifies it unless you click Commit to Elementor. Your Elementor configuration is always the source of truth until you deliberately push changes back.

User-controlled data flow. Every sync, commit, export, import, save, and restore is an explicit user action. The only automatic operation is reloading the last active project on startup.

Platform-portable data layer. ATFRFO_Data_Store contains zero WordPress dependencies in its core methods. The data layer is designed to be ported to a standalone desktop application in a future phase.

No build step. All JavaScript is ES5 IIFE — no webpack, no transpiler, no npm install. The plugin works by dropping files into WordPress.


Roadmap

Version Scope
0.0.1-alpha Variables — Colors, Fonts, Numbers. Sync, organize, save, commit.
0.1.0 Default categories/types per set. Auto-load last project. Functions menu.
0.2.0 Pickr color picker (HEX / RGB / HSL + alpha). Live palette refresh.
0.2.2 Export / Import. Undo / Redo.
0.2.3 Sync name normalization. Manage Project auto-select. Stacked suffix fix.
0.3.0-beta Versioned backup system. Two-level picker. Multi-project. Right panel reorganization. Sync options dialog. Commit summary dialog. V3 Global Colors import.
0.3.2-beta Bug fixes: drag-and-drop color reorder; column sort persistence across tab switches; auto-load reliability.
0.3.3-beta Auto-regenerate Elementor kit CSS when file is missing, preventing 0-variable sync on first load.
0.3.4-beta Renamed EFF → ATFRFO for WordPress.org compatibility. Sync reads Elementor kit meta directly. Category defaults and AJAX action name fixes.
0.3.5-beta Load Project modal improvements (save count, inline rename, copy, delete). Cross-module event contamination fix. Drag fixes in Numbers view. Write to Elementor auto-regenerates missing kit CSS. Duplicate variable name prevention. Removed forced -- prefix while typing.
0.4.1-beta Placeholder sign background transparency fix.
1.0.0-beta Elementor post-meta commit; CSS var prefix fixes on commit/import/storage; category rename/add/count fixes; shared utilities refactor (Phase 1 & 2).
0.4.0-beta Numbers editing overhaul (pure storage, autofill suffix, unitless type, fₓ display). Nav variable counts. Double-chevron collapse buttons. Drag/drop and scroll bug fixes. QUICK-START.md corrections.
0.5.x-beta Super Categories — two-level nesting within Colors, Fonts, and Numbers. Top-level category contains sub-categories only; sub-categories contain variables only. Elementor commit remains flat. Requested for large design systems (382-variable projects).
1.3.0 V3 import result modal, system color auto-notes, expand modal two-row header, sticky filter bar. Print hierarchy: sub-categories indented, comments toggle. Modal DRY refactor. Title fade fix.
1.4.0 "Take a look" notify sign. New blacksmith-hammer brand assets. Help panel content refresh. Security fix (HTML-escape consolidation). Font-size default correction. Dead patch-script cleanup.
1.4.1 Critical fix: every AJAX endpoint was non-functional due to a method-naming mismatch from the 1.4.0 prefix rename. All endpoints restored.
1.4.2 Project file writes use LOCK_EX (prevents JSON corruption from concurrent writes). Commit to Elementor matches Variables by stored Elementor ID first, not name alone (rename + recommit no longer orphans class/widget references). Backup filename collisions no longer need a blocking sleep() retry.
1.4.3 WordPress.org review fix: icon SVG output escaped via wp_kses() at the point of echo, not only upstream (19 call sites).
1.5.0 (this release) Category/subcategory drag-drop reparenting (nest, promote, move between categories); header hierarchy display; click-to-collapse.
2.0.0 Classes management.
3.0.0 Components registry.
Future Elementor Kit Manager API write-back. Standalone Windows / Mac desktop application.

AJAX Endpoints

All endpoints require manage_options capability and a valid atfrfo_admin_nonce.

Action Description
atfrfo_save_file Save full project state to a new timestamped backup
atfrfo_load_file Load a backup into the working store
atfrfo_list_projects List all projects (Level 1 picker)
atfrfo_list_backups List all backups for a project (Level 2 picker)
atfrfo_delete_project Delete one backup; remove project dir if empty
atfrfo_sync_from_elementor Parse Elementor V4 kit CSS; return variables
atfrfo_sync_v3_global_colors Read V3 Global Colors from kit post meta; return color list
atfrfo_save_color Save one variable (add or update)
atfrfo_delete_color Delete a variable by ID
atfrfo_add_category / atfrfo_delete_category / atfrfo_rename_category Category management
atfrfo_reorder_categories / atfrfo_duplicate_category Category ordering
atfrfo_commit_to_elementor Write AFF variable values to Elementor kit CSS
atfrfo_get_usage_counts Scan widget data for var() references
atfrfo_save_user_theme Persist light/dark preference to usermeta
atfrfo_get_config / atfrfo_save_config Read/write subgroup configuration
atfrfo_get_settings / atfrfo_save_settings Read/write plugin preferences

Technology

  • PHP — WordPress hooks, AJAX handlers, CSS parsing, post meta scanning
  • Vanilla JavaScript (ES5) — No jQuery for AFF UI logic; fetch() for all AJAX; no build step
  • CSS Custom Properties — Full design token system; light/dark mode via [data-atfrfo-theme]
  • Pickr v1.10.1 — Visual color picker (vendored locally, not CDN-loaded); classic theme; HEX / RGB / HSL + alpha
  • Inter — Loaded locally from assets/fonts/ (WOFF2, Latin subset, no CDN)
  • SVG icons — stroke="currentColor", no icon font

License

This plugin is free software released under the GNU General Public License v2.0 or later.

See LICENSE for the full terms.


Credits

Developed by Jim Roberts / JimRForge

Built with Claude Code — Anthropic

About

Professional management interface for Elementor Version 4 atomic widget assets — Variables, Classes, and Components.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages