=== Fundamento ===
Contributors: w3dev,torchsmith
Tags: elementor, skin, template, globals
Requires at least: 5.2
Tested up to: 6.7
Stable tag: 1.1.10
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Fundamento creates the ability to easily add custom skins and padding-presets into your Elementor-based Wordpress website.


== Description ==

Have you ever wanted to alter the way Elementor renders one of its widgets on your website?

Fundamento provides an easier way to achieve this by allowing you to inject extra CSS classes into Elementor's widgets.


== Installation ==

1. Upload the `fundamento` folder to your `plugins` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Add the Fundamento function call to your Wordpress theme's `functions.php` file
4. Select a widget on your Elementor-enabled page and choose the custom skin you created
or
4. Select a widget on your Elementor-enabled page and choose the padding preset you created

== Usage ==

Tell Elementor that you have a new skin available by utilizing the following code in your `functions.php` file:

1. Add an action to initialize Fundamento, then add a call to Fundamento's `register_skin()` function:

        if(is_plugin_active('fundamento/fundamento.php')) {
            function fundamento_init() {
                // create a new Fundamento instance
                $f = \Fundamento\Plugin::instance(); 
                
                // register a new skin
                $f->register_skin([
                    'name'       => 'Red',                                                      // The name of your new skin, as it will appear in Elementor
                    'element'    => 'button',                                                      // The elementor element you are skinning
                    'is_default' => true,                                                          // optional - should this skin be set by default on all elements of this type
                    'css'        => get_stylesheet_directory_uri() . '/skins/button/red.css',   // optional - have Fundamento enqueue an extra css file
                    'js'         => get_stylesheet_directory_uri() . '/skins/button/red.js',    // optional - have Fundamento enqueue an extra js file
                ]);
            }
            add_action('elementor/init', 'fundamento_init');
        }

2. Add the selector to your css file:

        /* Class will always be .skin-{element}-{name} */
        /* Name is transformed to lowercase and spaces are replaced with "-" */
        .skin-button-red {
            background: #f00;
        }


Tell Elementor that you have a new padding preset by utilizing the following code in your `functions.php` file:

1. Add an action to initialize Fundamento, then add a call to Fundamento's `register_padding()` function:

        if(is_plugin_active('fundamento/fundamento.php')) {
            function fundamento_init() {
                // create a new Fundamento instance
                $f = \Fundamento\Plugin::instance(); 
                
                // register a new skin
                $f->register_padding([
                    'name'       => 'Standard',                                                    // The name of your padding preset, as it will appear in Elementor
                    'element'    => 'section',                                                     // The elementor element you are skinning
                    'padding'    => '30px',                                                        // The value and unit of the amount of padding this preset should apply
                    'is_default' => true,                                                          // optional - should this skin be set by default on all elements of this type
                ]);
            }
            add_action('elementor/init', 'fundamento_init');
        }


== Changelog ==

= 1.1.10 =
* Updated version alignment/support.

= 1.1.9 =
* Add padding-top/bottom/left/right for inline and block padding on Elementor 3.16+.

= 1.1.8 =
* Fixed bug where classes were not always being added to frontend in Elementor v3.14+.

= 1.1.7 =
* Moved container padding presets to a custom controls section

= 1.1.6 =
* Tested in updated WP / Elementor environments

= 1.1.5 =
* Update padding-control.php to work with section/container templates

= 1.1.4 =
* Update readme.txt

= 1.1.3 =
* Added improved, responsive padding controls

= 1.1.2 =
* Fix behavior of `Default` padding preset

= 1.1.1 =
* Fix selector for padding presets on `column` element
* Change `None (default)` for column padding preset to `10px` to match Elementor's default column padding

= 1.1.0 =
* Add register_padding function
* Fix "Undefined index: skin_options" bug

= 1.0.5 =
* Optimize how classes are being added to elements
* Fix sections/columns not getting classes applied to them

= 1.0.4 =
* Add WP Admin notice if not registering skins in the right hook

= 1.0.3 =
* Enqueue all skin styles and scripts into page editor

= 1.0.2 =
* Fix plugin so it can add skins dropdown to any element

= 1.0.1 =
* Added is_default option.
* Prevent Fundamento from double-enqueuing the same css/js file for an element. 

= 1.0 =
* Our initial release.
