Skip to content
Get Bricks

Element Interactions Schema

Element interactions define event-driven behavior: when a trigger fires, an action is executed on a target. They are stored in the _interactions key inside any element’s settings object.

Interactions are a flat array of interaction items. Each item specifies a trigger event, the action to perform, and a target element or selector.

{
"type": "array",
"description": "Element interactions: event-driven behavior rules. Each item defines a trigger, action, and target.",
"items": {
"type": "object",
"description": "A single interaction rule: when a trigger fires, an action is executed on a target element.",
"properties": {
"action": {
"type": "string",
"description": "Action to perform. show: show element, hide: hide element, click: click element, setAttribute/removeAttribute/toggleAttribute: HTML attribute operations, toggleOffCanvas: toggle offcanvas panel, loadMore: load more query items, startAnimation: CSS animation, scrollTo: scroll to element, javascript: call custom JS function, openAddress/closeAddress: map address, clearForm: clear form, storageAdd/storageRemove/storageCount: browser storage operations.",
"enum": [
"show",
"hide",
"click",
"setAttribute",
"removeAttribute",
"toggleAttribute",
"toggleOffCanvas",
"loadMore",
"startAnimation",
"scrollTo",
"javascript",
"openAddress",
"closeAddress",
"clearForm",
"storageAdd",
"storageRemove",
"storageCount"
]
},
"actionAttributeKey": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"actionAttributeValue": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"ajaxQueryId": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"animationDelay": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"animationDuration": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"animationId": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"animationType": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"conditionsSep": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"delay": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"disablePreventDefault": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"filterElementId": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"formId": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"id": {
"type": [
"string",
"integer"
],
"description": "Unique identifier for this interaction"
},
"infoBoxId": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"interactionConditions": {
"type": "array",
"description": "Sub-conditions that must be met before the action fires",
"items": {
"type": "object",
"description": "A sub-condition on an interaction that must be met before the action fires. Typically checks browser storage values.",
"properties": {
"conditionType": {
"type": "string",
"description": "Type of condition check (e.g. \"storage\")"
},
"storageCompare": {
"type": "string",
"description": "Comparison operator for the storage value"
},
"storageCompareValue": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"storageKey": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
}
},
"additionalProperties": false
}
},
"interactionConditionsRelation": {
"type": "string",
"description": "How sub-conditions are combined: \"and\" (all must match) or \"or\" (any must match)",
"enum": [
"and",
"or"
]
},
"jsFunction": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"jsFunctionArgs": {
"type": "array",
"description": "Arguments passed to the custom JavaScript function (used with action \"javascript\")",
"items": {
"type": "object",
"properties": {
"jsFunctionArg": {
"type": "string",
"description": "Argument value"
}
},
"additionalProperties": false
}
},
"loadMoreQuery": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"offCanvasSelector": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"popupContextId": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"popupContextType": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"rootMargin": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"runOnce": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"scrollOffset": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"scrollToDelay": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"scrollToOffset": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"storageType": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"target": {
"type": "string",
"description": "Target reference: \"self\" for the triggering element, an element ID, or a selector context"
},
"targetFormSelector": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"targetSelector": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"templateId": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"toggleOffCanvasInfo": {
"oneOf": [
{
"type": [
"string",
"number",
"integer",
"boolean",
"null"
]
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"trigger": {
"type": "string",
"description": "Event that fires this interaction. Element: click, mouseover, focus, blur, mouseenter, mouseleave, enterView, leaveView, animationEnd, ajaxStart, ajaxEnd, formSubmit, formSuccess, formError. Browser: scroll, contentLoaded, mouseleaveWindow. Query filters: filterOptionEmpty, filterOptionNotEmpty. WooCommerce: wooAddedToCart, wooAddingToCart, wooRemovedFromCart, wooUpdateCart, wooCouponApplied, wooCouponRemoved.",
"enum": [
"click",
"mouseover",
"focus",
"blur",
"mouseenter",
"mouseleave",
"enterView",
"leaveView",
"animationEnd",
"ajaxStart",
"ajaxEnd",
"formSubmit",
"formSuccess",
"formError",
"scroll",
"contentLoaded",
"mouseleaveWindow",
"filterOptionEmpty",
"filterOptionNotEmpty",
"wooAddedToCart",
"wooAddingToCart",
"wooRemovedFromCart",
"wooUpdateCart",
"wooCouponApplied",
"wooCouponRemoved"
]
}
},
"additionalProperties": false
}
}
PropertyTypeDescription
idstring | integerUnique identifier for this interaction
triggerstringEvent that fires this interaction (see triggers below)
actionstringAction to perform (see actions below)
targetstringTarget reference ("self", element ID, or selector context)
targetSelectorstringCSS selector for the target element
delaystringDelay before executing the action (ms)
runOncebooleanIf true, the interaction fires only once

These properties apply depending on the chosen action:

PropertyTypeUsed with
animationTypestringstartAnimation (animation type)
animationIdstringstartAnimation (predefined animation ID)
animationDelaystringstartAnimation (animation delay)
animationDurationstringstartAnimation (animation duration)
jsFunctionstringjavascript (function name to call)
jsFunctionArgsarrayjavascript (arguments array: [{ jsFunctionArg: "value" }])
scrollToDelaystringscrollTo (delay before scrolling)
scrollToOffsetstringscrollTo (scroll offset in pixels)
scrollOffsetstringscroll trigger (scroll position threshold)
rootMarginstringenterView/leaveView (IntersectionObserver root margin)
templateIdstringTemplate ID reference
formIdstringForm element ID
ajaxQueryIdstringAJAX query element ID
offCanvasSelectorstringtoggleOffCanvas (offcanvas CSS selector)
toggleOffCanvasInfostringtoggleOffCanvas (info field)
filterElementIdstringQuery filter element ID
infoBoxIdstringInfo box element ID
loadMoreQuerystringloadMore (query element ID)
targetFormSelectorstringclearForm (form CSS selector)
actionAttributeKeystringsetAttribute/removeAttribute/toggleAttribute (attribute name)
actionAttributeValuestringsetAttribute/toggleAttribute (attribute value)
disablePreventDefaultbooleanDo not call preventDefault() on the trigger event
storageTypestringstorageAdd/storageRemove/storageCount (storage type)
popupContextIdstringPopup context ID
popupContextTypestringPopup context type
conditionsSepstringVisual separator for conditions UI
{
"_interactions": [
{
"id": "abc123",
"trigger": "click",
"action": "startAnimation",
"target": "self",
"animationType": "fadeIn",
"animationDuration": "500"
},
{
"id": "def456",
"trigger": "enterView",
"action": "show",
"target": "self",
"rootMargin": "0px 0px -100px 0px",
"runOnce": true
}
]
}

Element

  • click
  • mouseover
  • focus
  • blur
  • mouseenter
  • mouseleave
  • enterView
  • leaveView
  • animationEnd
  • ajaxStart
  • ajaxEnd
  • formSubmit
  • formSuccess
  • formError

Browser / Window

  • scroll
  • contentLoaded
  • mouseleaveWindow

Query filters

  • filterOptionEmpty
  • filterOptionNotEmpty

WooCommerce

  • wooAddedToCart
  • wooAddingToCart
  • wooRemovedFromCart
  • wooUpdateCart
  • wooCouponApplied
  • wooCouponRemoved

Popup templates have two additional triggers (showPopup, hidePopup) available via the templateInteractionItem variant in template settings.

ActionDescription
showShow element
hideHide element
clickClick element
setAttributeSet an HTML attribute
removeAttributeRemove an HTML attribute
toggleAttributeToggle an HTML attribute
toggleOffCanvasToggle an offcanvas panel
loadMoreLoad more items (query loop)
startAnimationStart a CSS animation
scrollToScroll to an element
javascriptExecute a custom JavaScript function
openAddressOpen a map address
closeAddressClose a map address
clearFormClear a form
storageAddAdd item to browser storage
storageRemoveRemove item from browser storage
storageCountCount items in browser storage

Each interaction can optionally include sub-conditions that must be met before the action fires. These are stored in the interactionConditions array, with interactionConditionsRelation controlling whether conditions are combined with AND or OR logic.

PropertyTypeDescription
interactionConditionsarrayArray of interactionConditionItem objects
interactionConditionsRelationstring"and" or "or" (default: "and")
PropertyTypeDescription
conditionTypestringType of condition check
storageComparestringComparison operator for storage value
storageCompareValueanyValue to compare storage against
storageKeyanyBrowser storage key to check
{
"id": "abc123",
"trigger": "click",
"action": "show",
"target": "self",
"interactionConditions": [
{
"conditionType": "storage",
"storageKey": "user_preference",
"storageCompare": "==",
"storageCompareValue": "dark"
}
],
"interactionConditionsRelation": "and"
}