A plain “Submit” button on your contact form looks generic. Adding a font awesome icon inside your Contact Form 7 submit button gives it a visual cue that draws attention and makes the action clearer. Think of a paper plane icon next to “Send Message” or an envelope icon next to “Submit.”
The catch? Contact Form 7 doesn’t have a built-in option to add icons to buttons. You need to insert the icon’s Unicode hex code directly into the CF7 form tag and pair it with a small CSS snippet to load the correct font.
This tutorial walks you through the entire process step by step. You’ll learn how to add a font awesome icon to the CF7 submit button, add icons inside form field placeholders, and handle the Font Awesome font-family setup for both Elementor users and non-Elementor setups. Updated for Font Awesome 5, 6, and the latest 2026 Elementor versions.
Before getting started, make sure you have these in place:
Time required: 5-10 minutes
Skill level: Beginner (no coding experience needed, just copy and paste)
Your site needs Font Awesome loaded before any icons will render. How you do this depends on your setup:
Elementor ships with Font Awesome built in. You just need to make sure Font Awesome 4 backward compatibility is enabled if you’re using older icon codes.

2026 Update: Elementor now loads Font Awesome 6 by default in recent versions. The “Load Font Awesome 4 Support” toggle ensures backward compatibility with older icon codes. If you’re using FA6 icon codes (like those from the Font Awesome 6 icon search), you don’t need to change anything since Elementor handles it automatically.
If you’re also using Master Addons for Elementor, you get access to 8 premium icon libraries beyond Font Awesome, giving you thousands of additional icons right inside the Elementor editor.
Install the official Font Awesome plugin from WordPress.org. After activation:
Important: Font Awesome 6 is not available via the legacy CDN. If you want FA6 icons, you’ll need to set up a free Kit at fontawesome.com or use the WordPress plugin’s Kit integration.
Every Font Awesome icon has a unique Unicode hex code. This is the code you’ll paste into your Contact Form 7 submit button.
Here’s how to find it:
f1d8 (paper plane) or f0e0 (envelope)
Here are some popular icons for submit buttons and their Unicode codes:
| Icon Name | Unicode Hex | Best For |
|---|---|---|
| Paper Plane | f1d8 | Send / Submit message |
| Envelope | f0e0 | Email / Contact forms |
| Arrow Right | f061 | Next / Continue actions |
| Check | f00c | Confirm / Done actions |
| Comment | f075 | Chat / Feedback forms |
Now for the main event. You’ll insert the icon’s Unicode hex code directly into the CF7 form tag. Here’s the exact process:
Go to Contact > Contact Forms in your WordPress dashboard. Click on the form you want to edit (or create a new one).
In the form editor, look for the submit button tag. It typically looks like this:
[submit "Submit"]Replace the submit tag with the icon code placed next to your button text. Use the HTML entity format &#x + hex code + ;
For example, to add a paper plane icon after the text “Send Message”:
[submit "Send Message "]Or to put the icon before the text:
[submit " Send Message"]Here’s a complete contact form example with the icon in the submit button:
<label>Your Name
[text* your-name]</label>
<label>Your Email
[email* your-email]</label>
<label>Subject
[text your-subject]</label>
<label>Your Message
[textarea your-message]</label>
[submit "Send Message "]
The icon won’t display correctly until you tell the browser which font to use for the submit button. Without this CSS, you’ll see a small square or question mark instead of the icon.
Go to Appearance > Customize > Additional CSS and paste one of the following snippets:
.wpcf7 input[type="submit"] {
font-family: "Font Awesome 5 Free", sans-serif;
font-weight: 900;
}.wpcf7 input[type="submit"] {
font-family: "Font Awesome 6 Free", sans-serif;
font-weight: 900;
}The font-weight: 900 is required for Solid icons (the most common style). If you’re using Regular icons, change it to font-weight: 400. For Brand icons (like the Twitter or GitHub logo), use font-family: "Font Awesome 6 Brands" with font-weight: 400.
| Icon Style | font-family (FA5) | font-family (FA6) | font-weight |
|---|---|---|---|
| Solid | “Font Awesome 5 Free” | “Font Awesome 6 Free” | 900 |
| Regular | “Font Awesome 5 Free” | “Font Awesome 6 Free” | 400 |
| Brands | “Font Awesome 5 Brands” | “Font Awesome 6 Brands” | 400 |
Pro Tip: If the icon shows on desktop but not on mobile, add -webkit-font-smoothing: antialiased; and text-rendering: auto; to the CSS rule. This fixes rendering inconsistencies across browsers.
Save your CSS and preview the form. You should now see the icon rendered inside your submit button next to the text.
Want icons inside your form field placeholders too? You can add an envelope icon in the email field, a user icon in the name field, and a pencil icon in the message field. It takes the same Unicode approach.
Here’s the CF7 code with icons in the placeholders:
[text* your-name placeholder " Your Name"]
[email* your-email placeholder " Your Email"]
[text your-subject placeholder " Subject"]
[textarea your-message placeholder " Your Message"]
[submit "Send Message "]Now add the CSS to apply the Font Awesome font to your placeholders:
/* Icon font for submit button */
.wpcf7 input[type="submit"] {
font-family: "Font Awesome 5 Free", sans-serif;
font-weight: 900;
}
/* Icon font for input placeholders */
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
font-family: "Font Awesome 5 Free", Arial, sans-serif;
font-weight: 900;
color: #999;
}
Note on placeholder fonts: Setting font-family on placeholders affects all placeholder text, not just the icon. If the rest of your placeholder text looks different than expected, add your theme’s body font as a fallback: font-family: "Font Awesome 5 Free", "Your-Theme-Font", sans-serif;
If you’d rather skip the CSS entirely, Master Addons for Elementor includes a dedicated Contact Form 7 widget that lets you customize your form’s appearance visually, without writing a single line of code.
Here’s what you can do with the MA Contact Form 7 widget:
This is the fastest approach if you want your contact form to match your site’s design without digging into CSS selectors. Just drag the widget in, pick your form, and style everything from the visual editor.
This means the Font Awesome font isn’t loading for the submit button. Double-check that:
font-family and font-weightWhen you set font-family to Font Awesome for the entire button, all text in the button uses that font. Add a fallback font: font-family: "Font Awesome 5 Free", -apple-system, Arial, sans-serif;
Add these properties to your CSS rule:
.wpcf7 input[type="submit"] {
font-family: "Font Awesome 5 Free", sans-serif;
font-weight: 900;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: auto;
}The CF7 submit button is an <input type="submit"> element. Input elements don’t support ::before or ::after pseudo-elements because they can’t have child nodes. That’s why we use the Unicode hex approach directly in the button text instead. If you need pseudo-element support, you’d need to convert the submit button to a <button> tag using a CF7 filter hook, which requires custom PHP.
Yes. Install the official Font Awesome WordPress plugin to load the icon fonts on your site. Then follow the same Unicode hex code method described above. The process is identical; Elementor just makes it slightly easier because FA comes pre-loaded.
Yes. The Unicode hex code method works with Font Awesome 5 and 6. The only difference is the CSS font-family value: use "Font Awesome 6 Free" instead of "Font Awesome 5 Free". Make sure FA6 is loaded on your site via a Kit or the WordPress plugin.
Go to fontawesome.com/search, find your icon, and click on it. The Unicode value (a 4-5 character hex code like f1d8) is shown on the icon’s detail page. Use the format  in your CF7 submit tag.
You can add multiple icons by inserting more than one Unicode hex code in the submit tag. For example: [submit " Send Message "] would put an envelope icon before the text and a paper plane icon after it. Keep it clean though; one icon is usually enough.
Yes. If you’re using Elementor, Master Addons includes a CF7 styling widget that lets you customize your form visually. You can add icons from 8 premium icon libraries, style the button with hover effects and gradients, and adjust every design detail without writing CSS. See the CF7 styling documentation.
Adding a font awesome icon to your Contact Form 7 submit button is a small change that makes a noticeable difference. The Unicode hex code method works across Font Awesome 5 and 6, requires just two steps (edit the form tag + add CSS), and takes under 5 minutes to set up.
For the placeholder approach, the same logic applies: paste the hex code inside the placeholder attribute and define the font-family in your CSS. Both methods give your forms a more polished, professional feel.
If you want to skip CSS entirely, the Master Addons CF7 widget handles form styling visually inside Elementor. Either way, your forms will look better than the default CF7 output.
Related reading: Elementor Icons and Font Libraries Guide | How to Create Animated Buttons in Elementor | CF7 Styling with 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.

110+ Premium Widgets & Lifetime Updates – Build Beyond Limits. An Exclusive Creation by Pixar Labs
Every Master Addons Pro license comes with a 14-day no-questions refund, lifetime updates, and priority support. Try it risk-free this Spring – 40% OFF with “RESET40″ coupon.