Elementor 101 · Lesson 07

Build a design system with Variables and Classes

Colour, font and size Variables, reusable Classes, the Design System panel and Default Styles.

  • ⏱ ~20 min
  • Intermediate
  • 6 steps + quiz
  • Works with free Elementor

Written for Elementor 4.3.3 · Elementor Pro 4.3.1 · Updated October 2026

01Why a design system pays off

A design system is a short list of decisions you make once: brand colours, fonts, sizes, and what a button or a card looks like. Elementor 4 gives you two tools for it:

  • Variables are single values with a name: brand-rose = #ed3d6b, space-l = 48 px.
  • Classes are bundles of styles with a name, such as btn-primary or card. Classes can use Variables.

Change the variable and every Class and element that uses it updates across the whole site. That's how a rebrand takes ten minutes instead of a weekend.

02Create your Variables

Click Design System in the top bar. The panel has three tabs: Defaults, Variables and Classes. On the Variables tab, add a variable, pick its type (Color, Font or Size), give it a name and a value, then click Save changes.

Design System panel on the Variables tab, listing brand-primary #3858E9, brand-ink #16181D, font-heading Roboto and space-m 24px in a Name and Value table
Fig. 1 — Four starter variables: two colours, a font and a spacing size.

Start small:

TypeStart withExample names
Colour2 brand colours, text, muted text, background, borderbrand, accent, text, text-muted, surface, line
FontA heading font and a body fontfont-display, font-body
SizeA spacing scale and a few font sizesspace-s 12, space-m 24, space-l 48, text-xl 48

03Create and apply Classes

  1. Select a Button and style it with your Variables: background brand, padding space-s / space-m, plus a radius.
  2. In the Type class name field at the top of the Style tab, type btn-primary and create it. The styles now live in the Class instead of the Local class.
  3. Add a hover state to the Class, as in lesson 06.
  4. On every other primary button, just add btn-primary. Done.

An element can have several Classes, for example card plus card--featured. The Class Manager lets you rename, reorder, find where a Class is used, and delete unused ones.

brand#ed3d6b→ .btn-primarybg: brand→ 12 buttonsupdate together
Fig. 2 — Variable → Class → elements. Change the first box and everything downstream follows.

04Default Styles for plain HTML tags

Default Styles (new in 4.3) set the base look of supported HTML tags across the site, such as headings, paragraphs and links. You'll find them on the Defaults tab of the Design System panel. Set your heading font, body font and link colour here once. You then need fewer Classes, because a plain h2 already looks right.

05Keep classic widgets in sync

Classic widgets use the older Global Colors and Global Fonts in Site Settings. Version 4 can sync colour Variables and typography Classes to them, so a classic Testimonial widget and an Atomic Heading share the same brand colours and fonts.

Turn on syncing for the Variables and Classes your classic widgets need. Then edit them in the Design System panel, not in Site Settings.

06Common mistakes

  • Forty colour Variables. If you can't remember when to use a colour, it shouldn't be a variable. Keep it to around 6–10.
  • Overriding Classes locally. One local tweak is fine. Twenty of them means you need a modifier Class such as btn-primary--large.
  • Naming Classes after a page. home-hero-button can't be reused anywhere else. Name Classes by what they are.

✓Quick quiz

Three questions to check the essentials. Get them all right to complete the lesson.

1. What is the difference between a Variable and a Class?
2. Which colour Variable name ages best?
3. Where should you style plain h1–h6 site-wide in 4.3?