Master Addons
  • Widgets
    • Changelogs
      Source Code NEW PRO
      Caldera Forms
      Logo Slider
      Table of Contents
      Gravity Forms
      Transforms PRO
      Restrict Content PRO
      Pricing Table
      Ninja Form
      Mailchimp
      Tooltip
      Popup Trigger NEW PRO
      Which Element NEW
      Creative Button
      Creative Links NEW
      Domain Search HOT PRO
      Dual Heading HOT
      Flipbox
      Animated Gradient BG HOT PRO
      Image Hotspot PRO
      Infobox
      News Ticker PRO
      Particles
      Progress Bar
      Off-Canvas Content NEW PRO
      Reading Progress Bar HOT
      Custom JS
      Blockquote
      Counter Up
      Image Hover Effects
      Reveal NEW PRO
      Rellax PRO
      Positioning
      Image Comparison
      Tabs
      Toggle Content HOT PRO
      Post/Page Duplicator FREE
      Floating Effects PRO
      Mega Menu HOT
      Custom CSS HOT
      Gradient Headline
      Advanced Image
      Nav Menu
      Tooltips
      Comparison Table PRO
      Glassmorphism
      Featured Product PRO
      Image Carouse
      Gallery Slider NEW PRO
      Dynamic Tags NEW
      Countdown Timer
      Current Time
      Patterns
      Wrapper Link
      Timeline
      Team Member
      Contact Form 7
      Advanced Accordion
      Animated Headlines
      Blog
      Business Hours
      Call To Action
      Progress Bars
      Background Slider
      Team Slider
      Dynamic Table
      Grid Line PRO
      WP Forms
      Search
      We Form
      Entrance Animation NEW PRO
      Display Conditions PRO
      Filterable Image Gallery
      WP Forms
      Custom Breakpoints NEW
  • Features
    • Theme Builder

      Design site-wide templates for a consistent look across every page of your website.

      Popup Builder

      Create engaging popups, modals, and announcement bars - to capture leads.

      Widget Builder

      Expand Elementor with advanced custom widgets to build more dynamic layouts.

      Mega Menu Builder

      Create multi-column menus with icons and images for superior navigation.

      Custom Css

      Apply your own CSS for pixel-perfect styling beyond default design options.

      Dynamic Tags

      Insert dynamic content like post titles and custom fields directly into designs.

      Display Conditions

      Control element visibility based on user role, device, time, and other rules.

      Icons Library

      Choose from thousands of built-in icons to enhance visuals and consistency.

      Animation

      Add scroll, hover, entrance, and much more animations to bring designs to life.
  • Template Kits
    • Template Kits

      Professionally designed full-page template Kit. Import and customize in seconds.

      Ready Sections

      Pre-built content sections and rows. Drag, drop, and customize instantly.

      Ready Popups

      Different types of High-converting popup designs. Import and launch quickly.

      Ready Pages

      Complete page layouts for any purpose. Start editing immediately.

      Ready Header

      Multiple modern header designs. Import and adapt to your brand.

      Ready Footer

      Fully designed footers for different websites. Add functionality and style in clicks.
  • Brands
    • WP Adminify

      WP Adminify

      Take control of your WordPress dashboard. Customize the admin experience.
      Admin Bar Editor

      Admin Bar Editor

      Customize the WordPress admin bar for a cleaner, more personalized workspace.
      Loginfy

      Loginfy

      Customize your WordPress login page with branding, styles, and security enhancements.

      Rolemaster Suite

      Manage user roles and permissions with precision for better security and workflow.
      Master Blocks

      Master Blocks

      Expand the Gutenberg editor with advanced custom blocks for more creative layouts.
      WP Spotlight

      WP Spotlight

      Instantly search and access admin features, posts, and settings from anywhere.
  • Themes
  • Help
    • Get Support
    • Documentation
    • Facebook Community
    • Changelogs
  • Blog
Pricing
🇺🇸EN
  • 🇺🇸EN
  • 🇸🇦AR
  • 🇧🇩BN
  • 🇩🇰DA
  • 🇩🇪DE
  • 🇪🇸ES
  • 🇫🇷FR
  • 🇮🇳HI
  • 🇰🇷KO
  • 🇵🇹PT
  • 🇷🇺RU
  • 🇨🇳ZH

Getting Started

  • Can’t see the Master Addon Element inside Elementor Page editor?
  • How To Apply For an Affiliate Account?
  • Active Pro version
  • Installing Plugin

Addons

  • Popup Trigger
  • Off-Canvas Content
  • Logo Slider
  • Progress Bars
  • Image Carousel
  • Featured Product
  • Comparison Table
  • Source Code
  • Advanced Image
  • Gradient Headline
  • Gallery Slider
  • Toggle Content
  • Infobox
  • Timeline
  • Dynamic Table
  • Mailchimp
  • Blockquote
  • Changelogs
  • Countdown Timer
  • Current Time
  • Search
  • Filterable Image Gallery
  • Team Slider
  • Counter Up
  • Restrict Content
  • Table of Contents
  • Image Hotspot
  • Image Comparison
  • News Ticker
  • Image Hover Effects
  • Tabs
  • Pricing Table
  • Navigation Menu
  • Domain Search
  • Flipbox
  • Tooltip
  • Creative Links
  • Business Hours
  • Contact Form 7
  • Creative Button
  • Animated Headlines
  • Advanced Accordion
  • Call to Action
  • Progress Bar
  • Blog
  • Team Member
  • Dual Heading

Extensions

  • Mega Menu
  • Which Element
  • Post Duplicator
  • Grid Line
  • Glassmorphism
  • Tooltip
  • Wrapper Link
  • Floating Effects
  • Dynamic Tags
  • Display Conditions
  • Entrance Animation
  • Custom Breakpoints
  • Animated Gradient Background
  • Reveal
  • Particles
  • Background Slider
  • Transforms
  • Rellax
  • Positioning
  • Custom CSS

Widget Builder

  • Conditions
  • Twig Syntax
  • Settings Panel Introduction
  • Divider
  • Text Shadow
  • Select2
  • Border
  • Heading
  • Tabs
  • Repeater
  • Visual Choice
  • Background
  • Dimensions
  • Box Shadow
  • Slider
  • Icons
  • Gallery
  • Media
  • Popover Toggle
  • URL Field
  • Date Time
  • Typography
  • Font
  • Color Field
  • Choose
  • Select
  • Switcher
  • Hidden
  • Code
  • WYSIWYG
  • Textarea Field
  • Number
  • Text Field

Theme Builder

  • Comment Form
  • 404
  • Search
  • Archive
  • Single
  • Footer
  • Header

Popup Builder

  • How to Open a Popup After Inactivity in Elementor
  • How to Show an Exit Intent Popup in Elementor
  • How to Open a Popup on Scroll to a Specific Element in Elementor
  • How to Open a Popup on Scroll in Elementor
  • How to Open a Popup on Click in Elementor
  • How to open a popup on page load?
  • Popup Settings & Options

Template Kit

  • How to Import Template Kits in Master Addons
  • How to Disable Elementor Default Fonts and Colors
  • Import Elementor Template Kits
View Categories
  • Home
  • Docs
  • Widget Builder
  • Icons

Icons

Roy Jemee
Updated on August 6, 2026

7 min read

The Icons field puts Elementor’s full icon library picker in your widget’s panel: Font Awesome, any custom icon libraries registered on the site, and direct SVG upload, all behind the icon chooser editors already know. Inside the Master Addons Widget Builder, it is the field for feature bullets, info boxes, social rows, and every other spot where a small symbol carries the meaning.

Like every Widget Builder field, the Icons control supports Conditions, useful for showing the picker only when an “enable icon” toggle is on, and its output renders through the Twig-syntax template engine. Both guides cover the details and limitations.

The value is an array with two keys, value and library. That shape has a consequence worth stating up front: printing the field directly with {{ my_icon }} outputs nothing at all. Font icons and uploaded SVGs also render through different markup, so the template needs a short branch. Both patterns are below, ready to paste.

What the Icons field does #

  • Opens Elementor’s icon library picker with Font Awesome, custom libraries, and SVG upload.
  • Stores the pick as an array of value and library.
  • Holds a class string for font icons: value is the icon’s class, ready for an <i> tag.
  • Holds a nested file array for SVGs: value becomes a URL and ID pair reached as {{ my_icon.value.url }}.
  • Accepts a default and a recommended list, so the picker can surface the icons that suit the widget.

If you are new to building widgets, start with the Widget Builder overview first.

Before you start #

  • WordPress with Elementor installed and active.
  • Master Addons for Elementor installed and active. New to the plugin? See the installation guide.
  • A custom widget open in the Widget Builder editor. Our example is a feature list widget where each instance shows one icon, named feature_icon, beside a short text blurb.

How to add an Icons field #

Find the Icons field in the panel on the left of the Widget Builder editor, grouped with the other media fields.

Drag it into a section under the Content tab. Once it lands, the field’s options open on the left.

Icons field options explained #

  • Label: the text shown above the picker in Elementor, for example “Feature Icon”.
  • Name: the unique identifier for the field, letters, numbers, and underscores only, for example feature_icon.
  • Default: a starting icon as a value and library pair, so the widget never drops in iconless.
  • Recommended: a set of icons the picker surfaces first, steering editors toward choices that fit the design.
  • Description, Show Label, Separator: the standard display settings, plus Conditions for showing the field only when another control has a certain value.

Connect the Icons field to your template #

First, the mistake nearly everyone makes once: {{ feature_icon }} prints nothing. The direct-print shortcut on array values only outputs a top-level url key, and the Icons array has none, so the token comes out empty. No error, no warning, just a blank spot where the icon should be. The properties are where the content lives.

Font icon (Font Awesome and other class-based libraries): value holds the class string, so an <i> tag renders it:

<i class="{{ feature_icon.value }}" aria-hidden="true"></i>

Uploaded SVG: when the pick comes from the SVG library, value is itself an array with a URL and ID, so the icon renders as an image:

<img src="{{ feature_icon.value.url }}" alt="">

A widget rarely knows in advance which kind the editor will pick, so the reliable pattern branches on the library key and handles both:

{% if feature_icon.library == 'svg' %}
  <img src="{{ feature_icon.value.url }}" alt="">
{% else %}
  <i class="{{ feature_icon.value }}"></i>
{% endif %}

Wrap the whole thing in an empty-state guard, as with any media-type field, so an unset icon leaves no stray <i class=""> behind:

{% if feature_icon.value %}
  ...the branch above...
{% endif %}

Watch out for testing with font icons only. The <i>-tag version works all week, then a client uploads a brand SVG and the icon vanishes, because a class attribute cannot hold a file array. If you ship the field, ship the branch.

Use the Icons control in Elementor #

Add your custom widget to a page in Elementor, reloading the editor if the page was already open. The field renders as Elementor’s icon chooser under your label, showing the current icon.

Click it and the icon library opens. Search Font Awesome, browse any custom libraries, or switch to the upload tab for an SVG. Confirm the pick and the preview updates, running through whichever branch of your template matches the library.

Common use cases #

  • Feature and benefit lists with one symbol per point.
  • Info and icon boxes where the icon anchors the card’s topic.
  • Social link rows, each instance pairing an icon with a URL field.
  • Buttons and calls to action that carry a small leading icon.
  • Step and process widgets where numbered stages each get a matching symbol.

Tips for working with the Icons field #

  • Never print the field bare. {{ feature_icon }} outputs nothing; the icon lives in {{ feature_icon.value }} and, for SVGs, {{ feature_icon.value.url }}.
  • Ship the library branch. The {% if feature_icon.library == 'svg' %} pattern is the only version that survives every pick an editor can make.
  • Guard the empty state. {% if feature_icon.value %} keeps unset icons from rendering empty tags.
  • Add aria-hidden="true" to decorative font icons. Screen readers skip the symbol and read the text beside it instead.
  • Use Recommended to guide the pick. Surfacing a curated set keeps a widget’s icons visually consistent across a site.
  • Size SVGs in your CSS tab. Uploaded SVGs arrive as images, so give the img branch a width to keep both branches rendering at the same scale.

Frequently Asked Questions #

What is the Icons field in the Master Addons Widget Builder?

The Icons field adds Elementor’s icon library picker, Font Awesome, custom libraries, and SVG upload, to a custom widget. The pick is stored as an array of value and library, which your template renders as an <i> tag for font icons or an <img> tag for SVGs.

Why does {{ my_icon }} print nothing?

The direct-print shortcut only outputs an array’s top-level url key, and the Icons value has none, so the token renders empty. Use the properties instead: {{ my_icon.value }} for a font icon class, {{ my_icon.value.url }} for an uploaded SVG.

How do I render a Font Awesome icon?

With an <i> tag carrying the class from the field: <i class="{{ my_icon.value }}" aria-hidden="true"></i>. The value key holds the complete class string for class-based libraries.

How do I render an uploaded SVG icon?

As an image. For SVG picks, value is a nested array with the file’s URL and ID, so the markup is <img src="{{ my_icon.value.url }}" alt="">. A class attribute cannot render it.

How do I support both font icons and SVGs in one widget?

Branch on the library: {% if my_icon.library == 'svg' %} renders the img tag, {% else %} the i tag. Editors can then pick from any tab of the library and the widget renders the right markup either way.

Can I preselect an icon or suggest a set?

Yes. The Default option sets a starting value and library pair, and the Recommended option surfaces a chosen set at the top of the picker to keep selections on-brand.

Wrapping up #

The Widget Builder Icons field brings the whole Elementor icon library into a custom widget for the price of one short branch: value as a class for font icons, value.url as a file for SVGs, and a guard around both. Pair it with the Media field when a slot calls for a full image rather than a symbol. Explore the rest of the Master Addons widgets and extensions, and see the pricing page for what each plan includes.

What are your Feelings

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on August 6, 2026
SliderGallery
Table of Contents
  • What the Icons field does
  • Before you start
  • How to add an Icons field
  • Icons field options explained
  • Connect the Icons field to your template
  • Use the Icons control in Elementor
  • Common use cases
  • Tips for working with the Icons field
  • Frequently Asked Questions
    • What is the Icons field in the Master Addons Widget Builder?
    • Why does {{ my_icon }} print nothing?
    • How do I render a Font Awesome icon?
    • How do I render an uploaded SVG icon?
    • How do I support both font icons and SVGs in one widget?
    • Can I preselect an icon or suggest a set?
  • Wrapping up

Join 30,000+ Web Creators Who Trust Master Addons

Get all the premium widgets and templates you desire, built with clean code that keeps your site fast. Ditch the bloat, not the features.

Try Live Demo
Join The Community
Master Addons for Elementor

80+ Premium Widgets & Lifetime Updates – Build Beyond Limits. An Exclusive Creation by Pixar Labs

Facebook-f Twitter Youtube Wordpress
Features
  • Template kits
  • Template Library
  • Widget Builder
  • Theme Builder
  • Mega Menu Builder
Support
  • Support Forum
  • Contact US
  • Join Community
  • Blog
  • Video Reviews
Resources
  • My Account
  • Changlogs
  • Documentation
  • Video Tutorials
  • Toolz.dev
Navigate
  • Apply for Affiliate
  • Terms of Use
  • Refund Policy
  • Privacy Policy
  • About Us