`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:
{
"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
Source: Shopify/liquid