Bevel Kit

Description

Bevel Kit adds to the free Elementor editor:

  • Theme Builder — header, footer, single, single post, single page, archive, search results, 404 and section templates, with display conditions (whole site, front page, any post type, taxonomy, author, date, search, children of a page, specific items), a clean admin app, live “preview as” in the editor, and theme locations that work with any theme.
  • Site widgets — Site Logo, Site Title, Page Title, Post Title, Post Excerpt, Post Content, Featured Image, Archive Title, Archive Posts, Search Form, Author Box, Post Comments, Post Navigation, Post Info (author, date, time, comments, terms and reading time), Sitemap, Breadcrumbs, Nav Menu.
  • Popups — popup templates with conditions, triggers (page load, scroll, scroll to element, click, inactivity, exit intent) and advanced rules (page views, sessions, times, referrer, sources, logged-in users, devices, browsers, schedule); open them from any link with the Popup dynamic tag.
  • Mega Menu — Mega Menu templates you pick for a menu item under Appearance Menus, printed by the Nav Menu widget.
  • Dynamic Tags — site, post, archive, author, comments, media and action tags (including Popup), plus ACF tags when Advanced Custom Fields is active.
  • Element options on every section, column, container and widget — Sticky (top or bottom, per device, offsets, hide on scroll down, its own scrolled state), Motion Effects (scroll, transparency, blur, rotate, scale, mouse track, 3D tilt — on the element and on backgrounds), Custom Attributes, a Wrapper Link making the whole element clickable, and Display Conditions per page and per visitor.
  • Custom Fonts — upload WOFF2, WOFF, TTF or OTF files; the family appears under Custom Fonts in every typography control and is served from your own site.
  • Custom Icons — seven libraries ship with the kit (Bevel Icons, Phosphor, Bootstrap, Lucide, Feather, Heroicons, Themify — more than 7,400 icons, each a tab of the picker while its switch is on), and you can upload an IcoMoon or Fontello zip. Every icon is drawn as inline SVG, so no icon font loads for visitors.
  • Page Transitions (Site Settings) — an entrance and exit animation between pages, with a preloader: one of thirteen built-in animations, an icon or an image, in your colours and timing, previewed live in the editor.
  • Site Settings — Elementor’s Site Settings (global colours and fonts, theme style, site identity, background, layout, lightbox, page transitions) as a full admin page under the Bevel menu, with live previews, search, undo and redo. A Settings tab adds: disable comments, disable XML-RPC, site icon on the login screen, console signature and the post revisions cap.
  • Tooltips — a Tooltip section on the Advanced tab of every element: content, placement, trigger, animation, delay, offset and the whole style set.
  • SVG uploads (Site Settings Settings Security) — switched off by default; when it is on, every SVG that enters the media library is stripped of scripts, event handlers and remote references first, and behaves like a raster image everywhere in WordPress and Elementor.
  • Meta Description — a description for a page or post, set in the WordPress editor or in Elementor’s Page Settings, printed only when no SEO plugin already printed one.
  • Light Logo — a second site logo for dark backgrounds, chosen per Site Logo widget.
  • Shortcodes — [bevel-kit-year] (the current year) and [bevel-kit-site-title] (the site name) for a copyright line that never goes stale, and [bevel-post-reading-time] for how long a post takes to read.
  • Duplicate (Site Settings Settings General) — a Duplicate action on every list-table row, copying the content, meta, terms and Elementor data into a draft.
  • Polylang — when Polylang is active, a theme-builder location serves the template’s translation for the current language.
  • Elementor V3 — Elementor’s hidden V4 experiments default to off, because everything here is built for the element model Elementor ships today. Only the default changes: a site that has switched one of them on keeps it, nothing of Elementor’s is written, and one filter (bevel/elementor/pin_to_v3) turns even the default off.
  • Bevel admin — a Bevel menu (Site Settings, Theme Builder, Custom Fonts, Custom Icons and Submissions) and a Bevel top bar on every Bevel screen.
  • The widgets Elementor keeps behind Pro — Form: fields, validation, multi-step, input masks (including an international telephone field with country flags), reCAPTCHA and hCaptcha, and the actions after submit — branded email, second email, redirect, webhook, Mailchimp, Slack, Discord, stored submissions. Plus Search with live results, Gallery, Media Carousel, Flip Box, Blockquote, Hotspot, Table of Contents and Off-Canvas — Bevel’s own widgets, under Bevel’s own names.
  • WooCommerce — Product and Product Archive templates, and twenty-one widgets to build them from, covering the product page and the shop grid. Display conditions cover every product, category and tag. Cart, Checkout, My Account and Order Summary widgets style WooCommerce’s own output rather than replacing it, and pages you have not templated are dressed to match the site anyway. Appears only when WooCommerce is active.
  • Starter Sites — ready-made sites: browse, preview, import in a click. The free ones need no account. The library is hosted, so no template file ships inside the plugin, and an import adds to the site rather than replacing what is there.
  • Bevel account (Site Settings Account) — an optional connection that pays for the one thing Bevel runs: the premium half of the template library. It buys nothing inside this plugin — every feature here works exactly the same connected or not, now and after any plan ends.
  • Submissions — a screen under the Bevel menu listing what visitors sent, with a filter per form, a search across the answers, a date range, read / unread / spam / trash, “resend notification”, and a CSV export.
  • Tools (Site Settings Tools) — Optimization: delayed JavaScript with an exclusion list, LCP image preloading, an HTML disk cache with GZIP, font preloading. WebP Converter: convert the media library and serve WebP to browsers that take it. Database Optimizer: see what every table holds, then delete what you choose. Import / Export: a site as a ZIP, in or out. Starter Templates: site settings, home page, header, footer, single post, single page, archive, 404 and the main menu, each its own tick; anything you already have is left alone. See Installation for when it runs by itself.
  • Forms (Site Settings Settings Forms) — the reCAPTCHA and hCaptcha keys every form on the site shares, and spam rules that run before any action does: a blocklist of words, addresses and IP ranges, and a minimum time to fill the form.
  • Bevel widgets — Counter, Testimonial Grid, Post Grid, Advanced Tabs, Simple Accordion, Image Accordion, Info Box, Highlight Heading, Animated Word Roller, Marquee, Image Marquee, Image Compare, Stacked Slider, Timeline and Circle Progress Bar, under a “Bevel” category of the widget panel.
  • Custom controls on Elementor’s own widgets — button icon styling and nine hover animations, Icon List and Heading extras including Scroll Reveal Fill, Icon Box custom image, Image Box and Text Editor extras, and a click-to-play YouTube embed; on containers, a Sticky Header, 26 animated backgrounds, Blur Background and Animated Borders.
  • General tab in Elementor’s Site Settings — smooth scrolling, a staggered entrance animation with eight styles, a Back to Top button and the icon library switches; plus Boxed Layout, Button Animation (flip text, bubble, switch icon, grow, float) and Blog Typography.

Bevel Kit works with any theme; the Bevel theme is optional. With Elementor Pro on the same site, you keep managing templates in Bevel’s Theme Builder and Pro displays them, while Bevel’s widgets, dynamic tags, fonts, icons, site settings and form submissions keep working. Popups, page transitions, element options and WooCommerce templates switch to Pro’s own.

External services

This plugin talks to services outside your site only where a feature needs one, and never before you ask it to. Requests the page cache makes to your site’s own address — warming its pages, reading its own sitemap, checking that GZIP is on — never leave the site and are not listed here.

my.wpbevel.com — the Bevel account server, contacted in two situations and no others.

Connecting a site, under Site Settings Account, and once a day afterwards to re-check the plan: it receives your site address, the plugin version and the account key you authorise. A site that has never connected is never contacted this way, and disconnecting stops it.

Opening Bevel Starter Sites, which fetches the list of available templates so the screen has something to show, and downloads one archive when you choose to import it. The list is fetched whether or not a site is connected — opening the screen is the request — and is cached for twelve hours. A connected site also sends its account key so the list can mark which templates that plan includes.

templates.wpbevel.com — the block and page library offered inside the Elementor editor. Opening the library fetches the list of available templates, which is cached for twelve hours; choosing one fetches that template’s content, along with your site’s address and language so the template arrives suited to it. Nothing is fetched while the editor loads, so an editor session in which you never open the library never contacts this service. No account is needed and none is sent.

The site a kit came from — during an import you start (a Starter Site, or a ZIP under Tools Import / Export), font files the kit names but does not carry, and images its pages use but its archive left out, are downloaded from that site’s uploads folder. For Bevel’s own starter sites that site is templates.wpbevel.com. Only those file addresses are requested; nothing about your site is sent.

Terms: https://wpbevel.com/terms — Privacy: https://wpbevel.com/privacy

fonts.googleapis.com — font previews on the Site Settings screen, in the admin only. Picking a typeface loads it from Google so you can see it, which tells Google your address and which font you looked at. Nothing loads for visitors from here; whether the site’s own fonts come from Google is Elementor’s setting, not this plugin’s.

Terms: https://policies.google.com/terms — Privacy: https://policies.google.com/privacy

youtube.com — the player itself, for visitors. A video widget set to the optimized embed shows the video’s poster image (see i.ytimg.com below) and loads YouTube’s player only when someone clicks play.

Terms: https://www.youtube.com/t/terms — Privacy: https://policies.google.com/privacy

i.ytimg.com — YouTube’s image server, for the poster image of a YouTube video you embed with the optimized (click-to-play) option. The visitor’s browser loads that one image when the page shows the video, as YouTube’s own embed would; the address carries only the video id. Your server never contacts it. Terms: https://www.youtube.com/t/terms — Privacy: https://policies.google.com/privacy

Services you configure yourself — a form contacts these only once you enter credentials for them, and each is inactive until you do:

Mailchimp (<your data centre>.api.mailchimp.com) — list subscriptions; the address and any fields you map go to the list you name. Terms: https://mailchimp.com/legal/terms — Privacy: https://www.intuit.com/privacy/statement/
Slack (hooks.slack.com) and Discord (discord.com/api/webhooks) — a notification carrying the submission, to the webhook URL you paste in. Terms: https://slack.com/terms-of-service — Privacy: https://slack.com/privacy-policy — Discord Terms: https://discord.com/terms — Privacy: https://discord.com/privacy
Any webhook URL you set — the submission, to the address you chose.
Google reCAPTCHA (www.google.com/recaptcha, script from www.google.com) and hCaptcha (hcaptcha.com, script from js.hcaptcha.com) — spam verification. These also load a script for visitors on any page carrying that field, which is what lets the check happen at all. Terms: https://policies.google.com/terms — Privacy: https://policies.google.com/privacy — hCaptcha Terms: https://www.hcaptcha.com/terms — Privacy: https://www.hcaptcha.com/privacy

Source code

Every script and stylesheet of the plugin’s own ships readable, in the folders it is loaded from (assets/js and assets/css). The one exception is assets/js/optimizer/public.min.js, which is printed into visitors’ pages and so is minified: it is built from public.js beside it with npx terser public.js -c -m --comments false, as its banner says. The third-party libraries listed under Credits keep their original banners and link to their source repositories.

Credits

Bevel Kit is distributed under the GNU General Public License v3 or later.

This plugin bundles the following resources:

Geist and Geist Mono
Copyright (c) 2023 Vercel, Inc.
License: SIL Open Font License, 1.1
License URI: https://scripts.sil.org/OFL
Source: https://github.com/vercel/geist-font
Admin screens only; never enqueued on the front end.

Libraries, each keeping its banner in its own file:

animate.css 3.7.2 — Copyright (c) 2019 Daniel Eden — MIT License — https://github.com/animate-css/animate.css
Page-transition keyframes, under assets/css/animation/.

tippy.js 6.3.7 — Copyright (c) 2017-present atomiks — MIT License — https://github.com/atomiks/tippyjs
Popper (@popperjs/core) 2.11.8 — Copyright (c) 2019 Federico Zivolo — MIT License — https://github.com/floating-ui/floating-ui/tree/v2.x
Used by the element tooltips.

Lenis 1.0.39 — Copyright (c) darkroom.engineering — MIT License — https://github.com/darkroomengineering/lenis
Used for smooth scrolling.

OGL 0.0.64 — Copyright (c) Nathan Gordon, dedicated to the public domain — The Unlicense — https://github.com/oframe/ogl
Used by the animated backgrounds.

jQuery asPieProgress 0.4.7 — Copyright (c) amazingSurge — GNU Lesser General Public License v3.0 — https://github.com/amazingSurge/jquery-asPieProgress
Used by the Circle Progress Bar widget.

International Telephone Input 29.5.1 — Copyright (c) Jack O’Connor — MIT License — https://github.com/jackocnr/intl-tel-input
Its utils.js contains Google’s libphonenumber and the Closure Library — Apache License 2.0 — https://github.com/google/libphonenumber
Used by the form’s telephone field.

WP Meteor — Copyright (c) Aleksandr Guidrevitch — GPLv3 or later — https://wordpress.org/plugins/wp-meteor/
The JavaScript delay engine under assets/js/optimizer/ is based on it.

WebP Convert 2.9.5 and the five packages it is built on (exec-with-fallback, file-util, image-mime-type-guesser, image-mime-type-sniffer, locate-binaries) — Copyright (c) 2018 Bjørn Rosell — MIT License — https://github.com/rosell-dk/webp-convert
Vendored under vendor/webp with their own licence files. Its image-serving classes (src/Serve) are left out: the plugin only uses it to convert.

Elementor Pro — Copyright (c) Elementor Ltd. — GNU General Public License v3 — https://elementor.com
The Carousel widget’s stylesheet (assets/css/nested-carousel.css) follows Pro’s nested carousel, so a carousel built with Pro keeps its look.

Icon libraries (licences under assets/icons/):

Bevel Icons — Copyright (c) 2026 wpbevel.com — GPLv3 or later — https://www.gnu.org/licenses/gpl-3.0.html
Lucide — Copyright (c) 2026 Lucide Icons and Contributors — ISC License — https://github.com/lucide-icons/lucide/blob/main/LICENSE
Feather — Copyright (c) 2013-2023 Cole Bemis — MIT License — https://github.com/feathericons/feather/blob/main/LICENSE
Heroicons — Copyright (c) Tailwind Labs, Inc. — MIT License — https://github.com/tailwindlabs/heroicons/blob/master/LICENSE
Themify Icons — SIL OFL 1.1 (font), MIT (code) — https://themify.me/themify-icons
Phosphor Icons — Copyright (c) 2020-2021 Phosphor Icons — MIT License — https://github.com/phosphor-icons/homepage/blob/master/LICENSE
Bootstrap Icons — Copyright (c) 2019-2024 The Bootstrap Authors — MIT License — https://github.com/twbs/icons/blob/main/LICENSE

Screenshots

Installation

Elementor has to be installed first — Bevel Kit builds on its editor and stores its templates, and without it the plugin stays asleep and says so.

  1. In WordPress, go to Plugins Add New, search for Elementor, install and activate it.
  2. Go to Plugins Add New Upload Plugin, choose bevel-kit.zip, install and activate it. Or search for Bevel Kit and install it from there.
  3. A Bevel menu appears in the admin menu. That is where everything lives: Site Settings, Theme Builder, Custom Fonts, Custom Icons and Submissions.

On a WordPress with nothing on it yet, the kit puts a starter site in by itself the first time you open the admin — a header, a footer, single post, single page, archive and 404 templates, a home page and the colours and fonts to go with them — so the site looks like something from the first minute. A site that already has templates, anything built in Elementor, or more than a new install’s own page and post is left completely alone, and so is a site running Elementor Pro, which has a Theme Builder of its own. The same set is always a button away under Site Settings Tools Starter Templates. To stop it happening at all, return false from the bevel/starter/auto_run filter.

Requirements: WordPress 6.8, PHP 8.0 and Elementor 3.25.

FAQ

Do I need Elementor Pro?

No. Bevel Kit is built for the free Elementor editor, and everything described above works without
Pro on the site.

What happens if I install Elementor Pro later?

Nothing breaks. You keep managing headers, footers and other templates in Bevel Theme Builder, and
Elementor Pro displays them: their conditions stay in step with Pro’s in both directions, so a change
made on either screen shows on the site. Bevel’s widgets, dynamic tags, fonts, icons, site settings
and form submissions keep working. Popups, page transitions, element options and WooCommerce
templates switch to Pro’s own. Templates you built before stay where they are, and turning
Pro off again hands everything back to the kit.

Why is Elementor’s V4 editor switched off?

Because everything in this plugin is built for the element model Elementor has today. Elementor 4
ships its V4 work — atomic widgets, global classes, variables, components and the V4 editor — turned
on by default, and marks it hidden, so it does not appear under Elementor > Experiments and there is
no setting to turn it off. Most of it is still marked alpha or dev by Elementor’s own release status.

Bevel Kit puts those defaults back to off. Nothing is converted and nothing is deleted. If you had
already built something using V4’s own features — a global class, a variable, an atomic widget — it
will render differently while they are off, because those features are what render it; returning
false from the bevel/elementor/pin_to_v3 filter leaves Elementor entirely alone and puts it back.

I am moving off Elementor Pro. Will my pages still render?

Yes. While Pro is not on the site, each of these widgets also answers to the name Pro used for it,
so a page built with Pro keeps rendering with its settings intact. Those older names are hidden from
the widget panel, so you never see two of anything — you build with the Bevel ones.

Will the pages I built keep working if I deactivate the plugin?

The content stays — it is stored in WordPress, not in the plugin. Pages keep their text and images,
but anything drawn by a Bevel widget or a Bevel theme template stops being drawn until the plugin is
active again, the same as with any widget plugin. Nothing of yours is deleted on deactivation — the
page cache clears its stored copies and takes its drop-in back out, which is what it should do.

Does it work with my theme?

Yes, and it does not need the Bevel theme. A theme that calls elementor_theme_do_location()
(Hello Elementor, the Bevel theme) gets the header and footer through that; every other theme, block
themes included, is handled through Elementor’s own header/footer page template, so the templates
print either way and the theme’s own header and footer step aside. The free Bevel theme is simply the
lightest match.

Do I need a Bevel account?

No, and nothing in this plugin is behind one. An account pays for two things that run on Bevel’s
servers rather than on your site — generating pages with an AI assistant, and the premium half of
the Starter Sites library. Every feature listed on this page works exactly the same connected or
not, now and after any plan ends. The free starter sites import with no account at all.

Can I use my own icons and fonts?

Yes. Custom Fonts takes WOFF2, WOFF, TTF and OTF files and serves them from your own site; Custom
Icons takes an IcoMoon or Fontello zip. Both then appear in every typography and icon control.

Does the icon library slow the front end down?

No icon font is loaded for visitors. Every icon is drawn as inline SVG, and the seven bundled
libraries are only read in the editor’s icon picker, each behind its own switch.

Is uploading SVG files safe?

SVG upload is off until you switch it on under Site Settings Settings Security. When it is on,
every SVG entering the media library is stripped of scripts, event handlers and remote references
first. It is still a file format that can carry code, so only enable it if you trust who can upload.

Does it work with WooCommerce?

Yes. Product and Product Archive templates appear in the Theme Builder when WooCommerce is active,
with twenty-one widgets to build them from. Pages you have not built a template for are dressed to
match the site anyway.

Where are form submissions kept?

In your own database, on a screen under the Bevel menu, with a filter per form, a search, a date
range, read / unread / spam / trash, resend and a CSV export. Nothing is sent to Bevel.

Reviews

There are no reviews for this plugin.

Contributors & Developers

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

Contributors

Translate “Bevel Kit” into your language.

Interested in development?

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

Changelog

1.0.0

  • First release: Theme Builder, popups, mega menu, site widgets and Dynamic Tags.
  • Works with any theme, block themes included; the Bevel theme is optional.
  • Elementor Pro: Bevel’s Theme Builder screen, conditions, widgets and dynamic tags keep working beside Pro, which displays the templates.
  • Starter set: Elementor’s default colours and fonts are switched off when the site settings are imported, so widgets inherit the kit’s Global Colours and Fonts.
  • Starter Sites and Import / Export take kits exported with bevel-core: their custom fonts are fetched and installed, their blog posts come across, their logo shows in the header, old setting names are brought up to date, Remix and Iconic icons are swapped for the nearest bundled glyph, and form sender addresses point at this site.
  • Carousel: a nested carousel whose slides are containers, with Elementor Pro’s settings, so Pro-made carousels import and keep their look without Pro. Adds a continuous-scroll mode.
  • Theme Builder: every template type previews edge to edge in its own location, with a stand-in for the page while a header or footer is edited, instead of inside the theme’s single-post layout.
  • Stylesheets load in the head: Elementor’s frontend and kit styles on pages not built with Elementor, every template’s stylesheet, and the widget stylesheets each template uses; whatever is only met while the body renders is printed where it is met.
  • Editor: no more “enqueued with dependencies that are not registered: elementor-frontend” notice on WordPress 6.9.1+ when a template renders a Loop Item.
  • Nav Menu: the primary_menu and mobile_menu locations are registered on every theme, and the widget falls back to the theme’s own location — the assigned menu is the one the header shows.
  • Custom Fonts: font files are checked by structure, not by four signature bytes, and every change to the library runs under a lock.
  • SVG sanitizer: url() is checked in every presentation attribute, and CSS escapes and comments are resolved before the scan.
  • Forms: forwarded addresses are believed only behind a trusted proxy (Cloudflare by default), and one address may send ten submissions a minute.
  • Page cache: nothing that ended as anything but a 200, set a cookie, or asked not to be stored is written down.
  • Simple Accordion: panel ids are scoped to their widget.
  • Element options: sticky, motion effects, custom attributes, wrapper link, display conditions.
  • Custom Fonts and Custom Icons screens.
  • Page Transitions in Site Settings.
  • Site Settings as a full admin page, the Bevel menu and top bar.
  • The General tab of Site Settings and seven bundled icon libraries.
  • Twelve Bevel widgets and the custom controls on Elementor’s free widgets and containers.
  • Nine Pro-parity widgets (Form with submissions, Search, Gallery, Media Carousel, Flip Box, Blockquote, Hotspot, Table of Contents, Off-Canvas) and three more Bevel widgets (Counter, Testimonial Grid, Post Grid).
  • Captcha and spam protection on every form, a Mailchimp action, Slack and Discord notifications, and a Submissions screen with a date range, resend and spam.
  • A Tools tab in Site Settings: Optimization, WebP Converter, Database Optimizer, Import / Export and Starter Templates.
  • A Starter Sites screen and an Account tab.
  • Element tooltips, SVG uploads, meta descriptions, a light logo, row-action duplication and Polylang support for theme templates.
  • Form input masks (international telephone with country flags, phone, date and time, money, credit card, IP address) and a branded layout for HTML notifications.
  • A disk page cache with GZIP, a background preloader and an admin-bar menu, off until you ask for it.
  • Font preloading for the site’s own faces and the Google families Elementor has downloaded.
  • WooCommerce: Product and Product Archive templates, twenty-one shop widgets, and the shop’s own pages dressed to match the site.