---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.3
alternate:
  - https://divkit.tech/docs/en/concepts/divs/2/div-state.md
  - https://divkit.tech/docs/ru/concepts/divs/2/div-state.md
---
> **Documentation Index:** Fetch the complete configuration index at https://divkit.tech/docs/en/llms.txt

# div-state
It contains sets of states for visual elements and switches between them.

## Parameters
| Parameters | Description |
| --- | --- |
| `states` | <p>**array**</p><p>Required parameter.</p><p>States. Each element can have a few states with a different layout. Transition between states is performed using [special scheme](../../interaction) of the [action](div-action.md) element.</p><p>An array must not be empty.</p> |
| `type` | <p>**string**</p><p>Required parameter.</p><p>The value must always be `state`.</p> |
| `accessibility` | <p>**object**</p><p>Accessibility settings.</p><p>The value has the type `div-accessibility`.</p><p>Available platforms: Android, iOS, web.</p> |
| `action` | <p>**object**</p><p>One action when clicking on an element. Not used if the `actions` parameter is set.</p><p>The value has the type `div-action`.</p> |
| `action_animation` | <p>**object**</p><p>Click animation. The web only supports the following values: `fade`, `scale`, `native`, `no_animation` and `set`.</p><p>The value has the type `div-animation`.</p><p>Default value: `{"name": "fade", "start_value": 1, "end_value": 0.6, "duration": 100 }`.</p><p>Available platforms: Android, iOS, web.</p> |
| `actions` | <p>**array**</p><p>Multiple actions when clicking on an element.</p> |
| `alignment_horizontal` | <p>**string**</p><p>Horizontal alignment of an element inside the parent element.</p><p>Possible values: `left`, `center`, `right`, `start`, `end`.</p> |
| `alignment_vertical` | <p>**string**</p><p>Vertical alignment of an element inside the parent element.</p><p>Possible values: `top`, `center`, `bottom`, `baseline`.</p> |
| `alpha` | <p>**number**</p><p>Sets transparency of the entire element: `0` — completely transparent, `1` — opaque.</p><p>Restriction for the value `x`: `x >= 0.0 && x <= 1.0`.</p><p>Default value: `1.0`.</p> |
| `animators` | <p>**array**</p><p>Declaration of animators that change variable values over time.</p><p>Available platforms: Android, iOS, web.</p><p>List of possible values:<li>[div-color-animator](div-color-animator.md#div-color-animator)</li><li>[div-number-animator](div-number-animator.md#div-number-animator)</li></p> |
| `background` | <p>**array**</p><p>Element background. It can contain multiple layers.</p><p>List of possible values:<li>[div-linear-gradient](div-linear-gradient.md#div-linear-gradient)</li><li>[div-radial-gradient](div-radial-gradient.md#div-radial-gradient)</li><li>[div-image-background](div-image-background.md#div-image-background)</li><li>[div-solid-background](div-solid-background.md#div-solid-background)</li><li>[div-nine-patch-background](div-nine-patch-background.md#div-nine-patch-background)</li></p> |
| `border` | <p>**object**</p><p>Element stroke.</p><p>The value has the type `div-border`.</p> |
| `capture_focus_on_action` | <p>**bool**</p><p>If the value is:<li>`true` - when the element action is activated, the focus will be moved to that element. That means that the accessibility focus will be moved and the virtual keyboard will be hidden, unless the target element implies its presence (e.g. `input`).</li><li>`false` - when you click on an element, the focus will remain on the currently focused element.</li></p><p>Default value: `true`.</p><p>Available platforms: Android, iOS, web.</p> |
| `clip_to_bounds` | <p>**bool_int**</p><p>Enables the bounding of child elements by the parent's borders.</p><p>Default value: `true`.</p><p>Available platforms: Android, web, iOS.</p> |
| `column_span` | <p>**int**</p><p>Merges cells in a column of the [grid](div-grid.md) element.</p><p>Restriction for the value `x`: `x >= 0`.</p><p>Available platforms: Android, iOS, web.</p> |
| `default_state_id` | <p>**string**</p><p>ID of the status that will be set by default. If the parameter isnt set, the first state of the `states` will be set.</p> |
| `disappear_actions` | <p>**array**</p><p>Actions when an element disappears from the screen.</p><p>Available platforms: Android, iOS, web.</p> |
| `div_id` | <p>**string**</p><p>Parameter is deprecated.</p><p>ID of an element to search in the hierarchy. The ID must be unique at one hierarchy level.</p> |
| `doubletap_actions` | <p>**array**</p><p>Action when double-clicking on an element.</p><p>Available platforms: Android, iOS, web.</p> |
| `extensions` | <p>**array**</p><p>Extensions for additional processing of an element. The list of extensions is given in  [DivExtension](../../extensions).</p><p>Available platforms: Android, iOS, web.</p> |
| `focus` | <p>**object**</p><p>Parameters when focusing on an element or losing focus.</p><p>The value has the type `div-focus`.</p> |
| `functions` | <p>**array**</p><p>User functions.</p><p>Available platforms: Android, iOS, web.</p> |
| `height` | <p>**object**</p><p>Element height. For Android: if there is text in this or in a child element, specify height in `sp` to scale the element together with the text. To learn more about units of size measurement, see [Layout inside the card](../../layout).</p><p>The value has the type `div-size`.</p><p>Default value: `{"type": "wrap_content"}`.</p><p>List of possible values:<li>[div-fixed-size](div-fixed-size.md#div-fixed-size)</li><li>[div-match-parent-size](div-match-parent-size.md#div-match-parent-size)</li><li>[div-wrap-content-size](div-wrap-content-size.md#div-wrap-content-size)</li></p> |
| `hover_end_actions` | <p>**array**</p><p>Actions performed after hovering over an element. Available on platforms that support pointing devices (such as a mouse or stylus).</p><p>Available platforms: web, Android, iOS.</p> |
| `hover_start_actions` | <p>**array**</p><p>Actions performed when hovering over an element. Available on platforms that support pointing devices (such as a mouse or stylus).</p><p>Available platforms: web, Android, iOS.</p> |
| `id` | <p>**string**</p><p>Element ID. It must be unique within the root element. It is used as `accessibilityIdentifier` on iOS.</p> |
| `layout_provider` | <p>**object**</p><p>Provides data on the actual size of the element.</p><p>The value has the type `div-layout-provider`.</p><p>Available platforms: Android, iOS, web.</p> |
| `longtap_actions` | <p>**array**</p><p>Action when long-clicking an element. Doesn't work on devices that don't support touch gestures.</p><p>Available platforms: Android, iOS, web.</p> |
| `margins` | <p>**object**</p><p>External margins from the element stroke.</p><p>The value has the type `div-edge-insets`.</p> |
| `paddings` | <p>**object**</p><p>Internal margins from the element stroke.</p><p>The value has the type `div-edge-insets`.</p> |
| `press_end_actions` | <p>**array**</p><p>Actions performed after clicking/tapping an element.</p><p>Available platforms: web, Android, iOS.</p> |
| `press_start_actions` | <p>**array**</p><p>Actions performed at the start of a click/tap on an element.</p><p>Available platforms: web, Android, iOS.</p> |
| `reuse_id` | <p>**string**</p><p>ID for the div object structure. Used to optimize block reuse. See [block reuse](../../reuse/reuse.md).</p><p>Available platforms: Android, iOS.</p> |
| `row_span` | <p>**int**</p><p>Merges cells in a string of the [grid](div-grid.md) element.</p><p>Restriction for the value `x`: `x >= 0`.</p><p>Available platforms: Android, iOS, web.</p> |
| `selected_actions` | <p>**array**</p><p>List of [actions](div-action.md) to be executed when selecting an element in [pager](div-pager.md).</p><p>Available platforms: Android, iOS, web.</p> |
| `state_id_variable` | <p>**string**</p><p>The name of the variable that stores the ID for the current state. If the variable changes, the active state will also change. The variable is prioritized over the default_state_id parameter.</p> |
| `tooltips` | <p>**array**</p><p>Tooltips linked to an element. A tooltip can be shown by `div-action://show_tooltip?id=`, hidden by `div-action://hide_tooltip?id=` where `id` — tooltip id.</p><p>Available platforms: Android, iOS, web.</p> |
| `transform` | <p>**object**</p><p>Applies the passed transformation to the element. Content that doesn't fit into the original view area is cut off.</p><p>The value has the type `div-transform`.</p><p>Available platforms: Android, iOS, web.</p> |
| `transformations` | <p>**array**</p><p>Array of transformations to be applied to the element in sequence.</p><p>Available platforms: web.</p><p>List of possible values:<li>[div-rotation-transformation](div-rotation-transformation.md#div-rotation-transformation)</li><li>[div-translation-transformation](div-translation-transformation.md#div-translation-transformation)</li></p> |
| `transition_animation_selector` | <p>**string**</p><p>Parameter is deprecated.</p><p>It determines which events trigger transition animations.</p><p>Possible values: `none`, `data_change`, `state_change`, `any_change`.</p><p>Default value: `state_change`.</p> |
| `transition_change` | <p>**object**</p><p>Change animation. It is played when the position or size of an element changes in the new layout.</p><p>The value has the type `div-change-transition`.</p><p>Available platforms: Android, iOS, web.</p><p>List of possible values:<li>[div-change-set-transition](div-change-set-transition.md#div-change-set-transition)</li><li>[div-change-bounds-transition](div-change-bounds-transition.md#div-change-bounds-transition)</li></p> |
| `transition_in` | <p>**object**</p><p>Appearance animation. It is played when an element with a new ID appears. To learn more about the concept of transitions, see [Animated transitions](../../interaction#animation/transition-animation).</p><p>The value has the type `div-appearance-transition`.</p><p>Available platforms: Android, iOS, web.</p><p>List of possible values:<li>[div-appearance-set-transition](div-appearance-set-transition.md#div-appearance-set-transition)</li><li>[div-fade-transition](div-fade-transition.md#div-fade-transition)</li><li>[div-scale-transition](div-scale-transition.md#div-scale-transition)</li><li>[div-slide-transition](div-slide-transition.md#div-slide-transition)</li></p> |
| `transition_out` | <p>**object**</p><p>Disappearance animation. It is played when an element disappears in the new layout.</p><p>The value has the type `div-appearance-transition`.</p><p>Available platforms: Android, iOS, web.</p><p>List of possible values:<li>[div-appearance-set-transition](div-appearance-set-transition.md#div-appearance-set-transition)</li><li>[div-fade-transition](div-fade-transition.md#div-fade-transition)</li><li>[div-scale-transition](div-scale-transition.md#div-scale-transition)</li><li>[div-slide-transition](div-slide-transition.md#div-slide-transition)</li></p> |
| `transition_triggers` | <p>**array**</p><p>Animation starting triggers. Default value: `[state_change, visibility_change]`.</p><p>An array must not be empty.</p><p>Available platforms: Android, iOS, web.</p> |
| `variable_triggers` | <p>**array**</p><p>Triggers for changing variables within an element.</p><p>Available platforms: Android, iOS, web.</p> |
| `variables` | <p>**array**</p><p>Declaration of variables that can be used within an element. Variables declared in this array can only be used within the element and its child elements.</p><p>Available platforms: iOS, web, Android.</p><p>List of possible values:<li>[string_variable](string_variable.md#string_variable)</li><li>[number_variable](number_variable.md#number_variable)</li><li>[integer_variable](integer_variable.md#integer_variable)</li><li>[boolean_variable](boolean_variable.md#boolean_variable)</li><li>[color_variable](color_variable.md#color_variable)</li><li>[url_variable](url_variable.md#url_variable)</li><li>[dict_variable](dict_variable.md#dict_variable)</li><li>[array_variable](array_variable.md#array_variable)</li><li>[property_variable](property_variable.md#property_variable)</li></p> |
| `visibility` | <p>**string**</p><p>Element visibility.</p><p>Possible values: `visible`, `invisible`, `gone`.</p><p>Default value: `visible`.</p> |
| `visibility_action` | <p>**object**</p><p>Tracking visibility of a single element. Not used if the `visibility_actions` parameter is set.</p><p>The value has the type `div-visibility-action`.</p> |
| `visibility_actions` | <p>**array**</p><p>Actions when an element appears on the screen.</p> |
| `width` | <p>**object**</p><p>Element width.</p><p>The value has the type `div-size`.</p><p>Default value: `{"type": "match_parent"}`.</p><p>List of possible values:<li>[div-fixed-size](div-fixed-size.md#div-fixed-size)</li><li>[div-match-parent-size](div-match-parent-size.md#div-match-parent-size)</li><li>[div-wrap-content-size](div-wrap-content-size.md#div-wrap-content-size)</li></p> |

### state
| Parameters | Description |
| --- | --- |
| `state_id` | <p>**string**</p><p>Required parameter.</p><p>State ID. It must be unique at one hierarchy level.</p> |
| `animation_in` | <p>**object**</p><p>Parameter is deprecated.</p><p>State appearance animation. Use `transition_in` instead.</p><p>The value has the type `div-animation`.</p><p>Available platforms: Android, iOS.</p> |
| `animation_out` | <p>**object**</p><p>Parameter is deprecated.</p><p>State disappearance animation. Use `transition_out` instead.</p><p>The value has the type `div-animation`.</p><p>Available platforms: Android, iOS.</p> |
| `div` | <p>**object**</p><p>Contents. If the parameter is missing, the state won't be displayed.</p><p>The value has the type `div`.</p><p>List of possible values:<li>[div-image](div-image.md#div-image)</li><li>[div-gif-image](div-gif-image.md#div-gif-image)</li><li>[div-text](div-text.md#div-text)</li><li>[div-separator](div-separator.md#div-separator)</li><li>[div-container](div-container.md#div-container)</li><li>[div-grid](div-grid.md#div-grid)</li><li>[div-gallery](div-gallery.md#div-gallery)</li><li>[div-pager](div-pager.md#div-pager)</li><li>[div-tabs](div-tabs.md#div-tabs)</li><li>[div-state](div-state.md#div-state)</li><li>[div-custom](div-custom.md#div-custom)</li><li>[div-indicator](div-indicator.md#div-indicator)</li><li>[div-slider](div-slider.md#div-slider)</li><li>[div-switch](div-switch.md#div-switch)</li><li>[div-input](div-input.md#div-input)</li><li>[div-select](div-select.md#div-select)</li><li>[div-video](div-video.md#div-video)</li></p> |
| `swipe_out_actions` | <p>**array**</p><p>Parameter is deprecated.</p><p>Actions when swiping the state horizontally.</p><p>Available platforms: Android, iOS.</p> |

<details>
<summary>JSON</summary>

```json
{
  type*: "state",
  accessibility: {
    description: "string",
    hint: "string",
    is_checked: "bool_int",
    mode: "string",
    mute_after_action: "bool_int",
    state_description: "string",
    type: "string"
  },
  action: {
    download_callbacks: {
      on_fail_actions: [ div-action, ... ],
      on_success_actions: [ div-action, ... ]
    },
    is_enabled: "bool_int",
    log_id*: "string",
    log_url: "string",
    menu_items: [
      {
        action: div-action,
        actions: [ div-action, ... ],
        text*: "string"
      },
      ...
    ],
    payload: "object",
    referer: "string",
    scope_id: "string",
    target: "string",
    typed: div-action-typed,
    url: "string"
  },
  action_animation: {
    duration: "int",
    end_value: "number",
    interpolator: "string",
    items: [ div-animation, ... ],
    name*: "string",
    repeat: div-count,
    start_delay: "int",
    start_value: "number"
  },
  actions: [
    {
      download_callbacks: {
        on_fail_actions: [ div-action, ... ],
        on_success_actions: [ div-action, ... ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_url: "string",
      menu_items: [
        {
          action: div-action,
          actions: [ div-action, ... ],
          text*: "string"
        },
        ...
      ],
      payload: "object",
      referer: "string",
      scope_id: "string",
      target: "string",
      typed: div-action-typed,
      url: "string"
    },
    ...
  ],
  alignment_horizontal: "string",
  alignment_vertical: "string",
  alpha: "number",
  animators: [ div-animator, ... ],
  background: [ div-background, ... ],
  border: {
    corner_radius: "int",
    corners_radius: {
      bottom-left: "int",
      bottom-right: "int",
      top-left: "int",
      top-right: "int"
    },
    has_shadow: "bool_int",
    shadow: {
      alpha: "number",
      blur: "int",
      color: "string",
      offset*: {
        x*: {
          unit: "string",
          value*: "number"
        },
        y*: {
          unit: "string",
          value*: "number"
        }
      }
    },
    stroke: {
      color*: "string",
      style: div-stroke-style,
      unit: "string",
      width: "number"
    }
  },
  capture_focus_on_action: "bool",
  clip_to_bounds: "bool_int",
  column_span: "int",
  default_state_id: "string",
  disappear_actions: [
    {
      disappear_duration: "int",
      download_callbacks: {
        on_fail_actions: [
          {
            download_callbacks: div-download-callbacks,
            is_enabled: "bool_int",
            log_id*: "string",
            log_url: "string",
            menu_items: [
              {
                action: div-action,
                actions: [ div-action, ... ],
                text*: "string"
              },
              ...
            ],
            payload: "object",
            referer: "string",
            scope_id: "string",
            target: "string",
            typed: div-action-typed,
            url: "string"
          },
          ...
        ],
        on_success_actions: [
          {
            download_callbacks: div-download-callbacks,
            is_enabled: "bool_int",
            log_id*: "string",
            log_url: "string",
            menu_items: [
              {
                action: div-action,
                actions: [ div-action, ... ],
                text*: "string"
              },
              ...
            ],
            payload: "object",
            referer: "string",
            scope_id: "string",
            target: "string",
            typed: div-action-typed,
            url: "string"
          },
          ...
        ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_limit: "int",
      payload: "object",
      referer: "string",
      scope_id: "string",
      typed: div-action-typed,
      url: "string",
      visibility_percentage: "int"
    },
    ...
  ],
  div_id: "string",
  doubletap_actions: [
    {
      download_callbacks: {
        on_fail_actions: [ div-action, ... ],
        on_success_actions: [ div-action, ... ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_url: "string",
      menu_items: [
        {
          action: div-action,
          actions: [ div-action, ... ],
          text*: "string"
        },
        ...
      ],
      payload: "object",
      referer: "string",
      scope_id: "string",
      target: "string",
      typed: div-action-typed,
      url: "string"
    },
    ...
  ],
  extensions: [
    {
      id*: "string",
      is_enabled: "bool_int",
      params: "object"
    },
    ...
  ],
  focus: {
    background: [ div-background, ... ],
    border: {
      corner_radius: "int",
      corners_radius: {
        bottom-left: "int",
        bottom-right: "int",
        top-left: "int",
        top-right: "int"
      },
      has_shadow: "bool_int",
      shadow: {
        alpha: "number",
        blur: "int",
        color: "string",
        offset*: {
          x*: {
            unit: "string",
            value*: "number"
          },
          y*: {
            unit: "string",
            value*: "number"
          }
        }
      },
      stroke: {
        color*: "string",
        style: div-stroke-style,
        unit: "string",
        width: "number"
      }
    },
    next_focus_ids: {
      down: "string",
      forward: "string",
      left: "string",
      right: "string",
      up: "string"
    },
    on_blur: [
      {
        download_callbacks: {
          on_fail_actions: [ div-action, ... ],
          on_success_actions: [ div-action, ... ]
        },
        is_enabled: "bool_int",
        log_id*: "string",
        log_url: "string",
        menu_items: [
          {
            action: div-action,
            actions: [ div-action, ... ],
            text*: "string"
          },
          ...
        ],
        payload: "object",
        referer: "string",
        scope_id: "string",
        target: "string",
        typed: div-action-typed,
        url: "string"
      },
      ...
    ],
    on_focus: [
      {
        download_callbacks: {
          on_fail_actions: [ div-action, ... ],
          on_success_actions: [ div-action, ... ]
        },
        is_enabled: "bool_int",
        log_id*: "string",
        log_url: "string",
        menu_items: [
          {
            action: div-action,
            actions: [ div-action, ... ],
            text*: "string"
          },
          ...
        ],
        payload: "object",
        referer: "string",
        scope_id: "string",
        target: "string",
        typed: div-action-typed,
        url: "string"
      },
      ...
    ]
  },
  functions: [
    {
      arguments*: [
        {
          name*: "string",
          type*: "string"
        },
        ...
      ],
      body*: "string",
      name*: "string",
      return_type*: "string"
    },
    ...
  ],
  height: div-size,
  hover_end_actions: [
    {
      download_callbacks: {
        on_fail_actions: [ div-action, ... ],
        on_success_actions: [ div-action, ... ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_url: "string",
      menu_items: [
        {
          action: div-action,
          actions: [ div-action, ... ],
          text*: "string"
        },
        ...
      ],
      payload: "object",
      referer: "string",
      scope_id: "string",
      target: "string",
      typed: div-action-typed,
      url: "string"
    },
    ...
  ],
  hover_start_actions: [
    {
      download_callbacks: {
        on_fail_actions: [ div-action, ... ],
        on_success_actions: [ div-action, ... ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_url: "string",
      menu_items: [
        {
          action: div-action,
          actions: [ div-action, ... ],
          text*: "string"
        },
        ...
      ],
      payload: "object",
      referer: "string",
      scope_id: "string",
      target: "string",
      typed: div-action-typed,
      url: "string"
    },
    ...
  ],
  id: "string",
  layout_provider: {
    height_variable_name: "string",
    width_variable_name: "string"
  },
  longtap_actions: [
    {
      download_callbacks: {
        on_fail_actions: [ div-action, ... ],
        on_success_actions: [ div-action, ... ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_url: "string",
      menu_items: [
        {
          action: div-action,
          actions: [ div-action, ... ],
          text*: "string"
        },
        ...
      ],
      payload: "object",
      referer: "string",
      scope_id: "string",
      target: "string",
      typed: div-action-typed,
      url: "string"
    },
    ...
  ],
  margins: {
    bottom: "int",
    end: "int",
    left: "int",
    right: "int",
    start: "int",
    top: "int",
    unit: "string"
  },
  paddings: {
    bottom: "int",
    end: "int",
    left: "int",
    right: "int",
    start: "int",
    top: "int",
    unit: "string"
  },
  press_end_actions: [
    {
      download_callbacks: {
        on_fail_actions: [ div-action, ... ],
        on_success_actions: [ div-action, ... ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_url: "string",
      menu_items: [
        {
          action: div-action,
          actions: [ div-action, ... ],
          text*: "string"
        },
        ...
      ],
      payload: "object",
      referer: "string",
      scope_id: "string",
      target: "string",
      typed: div-action-typed,
      url: "string"
    },
    ...
  ],
  press_start_actions: [
    {
      download_callbacks: {
        on_fail_actions: [ div-action, ... ],
        on_success_actions: [ div-action, ... ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_url: "string",
      menu_items: [
        {
          action: div-action,
          actions: [ div-action, ... ],
          text*: "string"
        },
        ...
      ],
      payload: "object",
      referer: "string",
      scope_id: "string",
      target: "string",
      typed: div-action-typed,
      url: "string"
    },
    ...
  ],
  reuse_id: "string",
  row_span: "int",
  selected_actions: [
    {
      download_callbacks: {
        on_fail_actions: [ div-action, ... ],
        on_success_actions: [ div-action, ... ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_url: "string",
      menu_items: [
        {
          action: div-action,
          actions: [ div-action, ... ],
          text*: "string"
        },
        ...
      ],
      payload: "object",
      referer: "string",
      scope_id: "string",
      target: "string",
      typed: div-action-typed,
      url: "string"
    },
    ...
  ],
  state_id_variable: "string",
  states*: [
    {
      animation_in: {
        duration: "int",
        end_value: "number",
        interpolator: "string",
        items: [ div-animation, ... ],
        name*: "string",
        repeat: div-count,
        start_delay: "int",
        start_value: "number"
      },
      animation_out: {
        duration: "int",
        end_value: "number",
        interpolator: "string",
        items: [ div-animation, ... ],
        name*: "string",
        repeat: div-count,
        start_delay: "int",
        start_value: "number"
      },
      div: div,
      state_id*: "string",
      swipe_out_actions: [
        {
          download_callbacks: {
            on_fail_actions: [ div-action, ... ],
            on_success_actions: [ div-action, ... ]
          },
          is_enabled: "bool_int",
          log_id*: "string",
          log_url: "string",
          menu_items: [
            {
              action: div-action,
              actions: [ div-action, ... ],
              text*: "string"
            },
            ...
          ],
          payload: "object",
          referer: "string",
          scope_id: "string",
          target: "string",
          typed: div-action-typed,
          url: "string"
        },
        ...
      ]
    },
    ...
  ],
  tooltips: [
    {
      animation_in: {
        duration: "int",
        end_value: "number",
        interpolator: "string",
        items: [ div-animation, ... ],
        name*: "string",
        repeat: div-count,
        start_delay: "int",
        start_value: "number"
      },
      animation_out: {
        duration: "int",
        end_value: "number",
        interpolator: "string",
        items: [ div-animation, ... ],
        name*: "string",
        repeat: div-count,
        start_delay: "int",
        start_value: "number"
      },
      background_accessibility_description: "string",
      bring_to_top_id: "string",
      close_by_tap_outside: "bool",
      div*: div,
      duration: "int",
      id*: "string",
      mode: div-tooltip-mode,
      offset: {
        x*: {
          unit: "string",
          value*: "number"
        },
        y*: {
          unit: "string",
          value*: "number"
        }
      },
      position*: "string",
      substrate_div: div,
      tap_outside_actions: [
        {
          download_callbacks: {
            on_fail_actions: [ div-action, ... ],
            on_success_actions: [ div-action, ... ]
          },
          is_enabled: "bool_int",
          log_id*: "string",
          log_url: "string",
          menu_items: [
            {
              action: div-action,
              actions: [ div-action, ... ],
              text*: "string"
            },
            ...
          ],
          payload: "object",
          referer: "string",
          scope_id: "string",
          target: "string",
          typed: div-action-typed,
          url: "string"
        },
        ...
      ]
    },
    ...
  ],
  transform: {
    pivot_x: div-pivot,
    pivot_y: div-pivot,
    rotation: "number"
  },
  transformations: [ div-transformation, ... ],
  transition_animation_selector: "string",
  transition_change: div-change-transition,
  transition_in: div-appearance-transition,
  transition_out: div-appearance-transition,
  transition_triggers: [ "string", ... ],
  variable_triggers: [
    {
      actions*: [
        {
          download_callbacks: {
            on_fail_actions: [ div-action, ... ],
            on_success_actions: [ div-action, ... ]
          },
          is_enabled: "bool_int",
          log_id*: "string",
          log_url: "string",
          menu_items: [
            {
              action: div-action,
              actions: [ div-action, ... ],
              text*: "string"
            },
            ...
          ],
          payload: "object",
          referer: "string",
          scope_id: "string",
          target: "string",
          typed: div-action-typed,
          url: "string"
        },
        ...
      ],
      condition*: "bool_int",
      mode: "string"
    },
    ...
  ],
  variables: [ div-variable, ... ],
  visibility: "string",
  visibility_action: {
    download_callbacks: {
      on_fail_actions: [
        {
          download_callbacks: div-download-callbacks,
          is_enabled: "bool_int",
          log_id*: "string",
          log_url: "string",
          menu_items: [
            {
              action: div-action,
              actions: [ div-action, ... ],
              text*: "string"
            },
            ...
          ],
          payload: "object",
          referer: "string",
          scope_id: "string",
          target: "string",
          typed: div-action-typed,
          url: "string"
        },
        ...
      ],
      on_success_actions: [
        {
          download_callbacks: div-download-callbacks,
          is_enabled: "bool_int",
          log_id*: "string",
          log_url: "string",
          menu_items: [
            {
              action: div-action,
              actions: [ div-action, ... ],
              text*: "string"
            },
            ...
          ],
          payload: "object",
          referer: "string",
          scope_id: "string",
          target: "string",
          typed: div-action-typed,
          url: "string"
        },
        ...
      ]
    },
    is_enabled: "bool_int",
    log_id*: "string",
    log_limit: "int",
    payload: "object",
    referer: "string",
    scope_id: "string",
    typed: div-action-typed,
    url: "string",
    visibility_duration: "int",
    visibility_percentage: "int"
  },
  visibility_actions: [
    {
      download_callbacks: {
        on_fail_actions: [
          {
            download_callbacks: div-download-callbacks,
            is_enabled: "bool_int",
            log_id*: "string",
            log_url: "string",
            menu_items: [
              {
                action: div-action,
                actions: [ div-action, ... ],
                text*: "string"
              },
              ...
            ],
            payload: "object",
            referer: "string",
            scope_id: "string",
            target: "string",
            typed: div-action-typed,
            url: "string"
          },
          ...
        ],
        on_success_actions: [
          {
            download_callbacks: div-download-callbacks,
            is_enabled: "bool_int",
            log_id*: "string",
            log_url: "string",
            menu_items: [
              {
                action: div-action,
                actions: [ div-action, ... ],
                text*: "string"
              },
              ...
            ],
            payload: "object",
            referer: "string",
            scope_id: "string",
            target: "string",
            typed: div-action-typed,
            url: "string"
          },
          ...
        ]
      },
      is_enabled: "bool_int",
      log_id*: "string",
      log_limit: "int",
      payload: "object",
      referer: "string",
      scope_id: "string",
      typed: div-action-typed,
      url: "string",
      visibility_duration: "int",
      visibility_percentage: "int"
    },
    ...
  ],
  width: div-size
}
```
</details>
