# settings_presets.json

> settings_presets.json 定义 Shoplazza 主题自带的风格预设，本页讲它的 schema，以及预设值如何对应 settings_schema.json。

`settings_presets.json` 文件根据 [settings\_schema.json](./settings-schema-json) 中包含的设置，保存各主题风格的设置值。

## 位置

`settings_presets.json` 文件位于 theme 的 `config` 目录下：

```text title="目录"
└── theme
    ...
    ├── config
        ├── settings_data.json
        ├── settings_presets.json
        └── settings_schema.json
    └── locales
```

***

## Schema

`settings_presets.json` 文件包含以下父级对象：

| 对象          | 描述                                                                                                                              | 是否必填 |
| :------------ | :-------------------------------------------------------------------------------------------------------------------------------- | :------- |
| `presets`     | 包含每个[主题风格](./settings-presets-json#主题风格)对应对象的集合，格式与 current 相同。                                  | 是       |
| `<StyleName>` | 包含某个[主题风格](./settings-presets-json#主题风格)的对象，格式与 current 相同。                                          | 是       |

例如：

```json
{
  "presets": {
    "<StyleName>": {
      "color_body_bg": "#FFFFFF",
      ...
    },
    "Default": {
      "color_body_bg": "#FFFFFF",
      ...
    },
    "Impress": {
      "color_body_bg": "#FFE6EB",
      ...
    }
  }
}
```

:::warning
`Default` 风格代表由所有默认配置组成的风格。当存在 `settings_presets.json` 文件时，必须包含 `Default` 风格。
:::

## 使用说明

使用 `settings_.json` 文件时，您应该熟悉以下概念：

* [主题风格](./settings-presets-json#主题风格)

### 主题风格

主题风格是一组主题设置默认值的集合，让商家在初始设置时可以通过主题编辑器轻松更改 theme 的整体外观和风格。

选择主题风格会将 current 对象更新为对应风格的设置值。但只有[展示性设置](./settings-presets-json#展示性设置)的值会被更新。

#### 展示性设置

展示性设置是与 theme 视觉效果相关的设置，例如文本的颜色和字体，或特定元素是否可见。

以下输入类型属于展示性设置，切换主题风格时这些设置的值会被覆盖：

* [checkbox](../settings/input-settings#checkbox)
* [color](../settings/input-settings#color)
* [font\_picker](../settings/input-settings#font_picker)
* [range](../settings/input-settings#range)
* [select](../settings/input-settings#select)
