# Atomic Widgets
Elementor Core AdvancedAtomic widgets are content elements in Elementor’s atomic architecture. Each widget is stored as an object with elType set to widget and a widgetType that identifies the widget (for example e-heading, e-paragraph, or e-button). Alongside identity and versioning, the object holds interactions, editor metadata, control values in settings, and optional nested elements in elements.
# JSON Structure
Atomic widget structure:
{
"id": "12345678",
"version": "0.0",
"elType": "widget",
"widgetType": "e-heading",
"isInner": false,
"settings": [],
"editor_settings": [],
"interactions": [],
"styles": [],
"elements": []
}
2
3
4
5
6
7
8
9
10
11
12
# JSON Values
| Argument | Type | Description |
|---|---|---|
id | string | The unique identification key representing the element. |
version | string | The widget schema version, used for data migrations. |
elType | string | Always widget for atomic widgets. |
widgetType | string | The widget type (for example e-heading, e-paragraph, e-button). |
isInner | boolean | Whether the element is an inner element. |
settings | array/object | Control values from the panel. Empty array when undefined; otherwise an object whose keys are control IDs. Values are usually typed (see below). |
editor_settings | array/object | Editor-only metadata. Not rendered on the frontend. |
interactions | array | Interactions attached to the widget. Empty when none are defined. |
elements | array | Nested elements. Often empty; widgets that support nesting store child elements here. |
# Typed settings
Atomic widget controls serialize as typed { $$type, value } objects (see atomic prop values). Examples include plain strings, rich text (html-v3), links, and dynamic/query references, depending on the widget schema.
# Nested elements
Widgets that support nesting store children in elements, the same pattern as layout atomic elements. Leaf widgets typically use an empty elements array.
# Example
A page with an e-div-block containing three atomic widgets (heading, paragraph, button). Paragraph text is shortened for readability; all attributes are preserved.
{
"title": "test widgets",
"type": "page",
"version": "0.4",
"page_settings": [],
"content": [
{
"id": "710c74bb",
"version": "0.0",
"elType": "e-div-block",
"isInner": false,
"settings": [],
"editor_settings": [],
"interactions": [],
"styles": [],
"elements": [
{
"id": "662f0d0d",
"version": "0.0",
"elType": "widget",
"widgetType": "e-heading",
"isInner": false,
"settings": {
"tag": {
"$$type": "string",
"value": "h3"
},
"title": {
"$$type": "html-v3",
"value": {
"content": {
"$$type": "string",
"value": "My title"
},
"children": []
}
},
"link": {
"$$type": "link",
"value": []
}
},
"editor_settings": [],
"interactions": [],
"styles": [],
"elements": []
},
{
"id": "71022738",
"version": "0.0",
"elType": "widget",
"widgetType": "e-paragraph",
"isInner": false,
"settings": {
"paragraph": {
"$$type": "html-v3",
"value": {
"content": {
"$$type": "string",
"value": "Lorem ipsum dolor sit amet."
},
"children": []
}
},
"link": {
"$$type": "link",
"value": []
}
},
"editor_settings": [],
"interactions": [],
"styles": [],
"elements": []
},
{
"id": "480c5582",
"version": "0.0",
"elType": "widget",
"widgetType": "e-button",
"isInner": false,
"settings": {
"link": {
"$$type": "link",
"value": {
"destination": {
"$$type": "query",
"value": {
"id": {
"$$type": "number",
"value": 33514
},
"label": {
"$$type": "string",
"value": "About Us"
}
}
}
}
}
},
"editor_settings": [],
"interactions": [],
"styles": [],
"elements": []
}
]
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109