Shopify / Shopify/liquid

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

Open
#2,109 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
11.9k
Forks
1.5k
Avg merge
17h 55m
Merged PRs (30d)
3

Description

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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the visible_if examples in config/settings_schema.json and compare them with the section {% schema %} behavior described in the issue. Reproduce the always-false header and setting case, then verify that both entries are absent in the theme editor while shopify theme check still reports no offense.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.