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.

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');
    }
    

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
  5. Select a widget on your Elementor-enabled page and choose the padding preset you created

Reviews

1 Meán an tSamhraidh, 2023
Have used it every single day since it was released. Easily one of the best development tools when working with Elementor + custom css.
19 Bealtaine, 2022
We made it, and we think it’s awesome. Give it a try!
Read all 2 reviews

Contributors & Developers

“Fundamento” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Fundamento” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

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.