#2109·liquid

`visible_if` on a `header` in `config/settings_schema.json` is ignored by the theme editor

Author: romanstetsykCreated Aug 8, 2026Updated Aug 8, 2026

visible_if on {"type": "header"} entry in config/settings_schema.json has no effect in the theme editor. Regular settings in the same section, using the same expression, hide correctly - the header alone stays visible, leaving an orphan heading with nothing beneath it.

shopify theme check reports no offenses for the file.

Example

In config/settings_schema.json, add a section containing a header and a normal setting, both gated by the same always false expression:

json
{
  "name": "Global section name",
  "settings": [
    {
      "type": "header",
      "content": "This won't hide",
      "visible_if": "{{ false }}"
    },
    {
      "id": "test_setting",
      "type": "text",
      "label": "Test setting",
      "visible_if": "{{ false }}"
    }
  ]
}

Expected

Neither entry is rendered - both are gated by the same false condition.

Actual

"Test setting" is hidden but "This won't hide" is still visible.

Note that visible_if is honored on a {"type": "header"} in section {% schema %} blocks but has no effect in config/settings_schema.json