Skip to content

Config

The config directory holds the theme's global configuration: the theme-wide settings you expose to sellers, and the values they've chosen.

bash
└── theme
    ├── layout
    ├── sections
    ├── config
   ├── settings_schema.json
   └── settings_data.json
    ...

Both files are required.

FilePurpose
settings_schema.jsonDefines the theme settings and how they're grouped in the theme editor.
settings_data.jsonStores the values chosen for those settings, plus data for statically rendered sections.

How they fit together

settings_schema.json declares a setting once, for example a font_family select. The seller picks a value in the theme editor, and it's saved to settings_data.json. At render time the two are merged, with schema defaults filling any gap, and the result is exposed to Liquid as the global settings object.

liquid
<body style="font-family: {{ settings.font_family }}">

Theme settings are read through settings, section settings through section.settings, and block settings through block.settings. See Settings for the setting types available in all three.