Input settings can hold a value and are configurable by merchants. Input settings are generally composed of [standard attributes](#standard-attributes), and there are two categories: - [Basic input settings](#basic-input-settings) - [Specialized input settings](#specialized-input-settings) To learn how to access the values of these settings for use in your theme, refer to the [settings overview](/docs/storefronts/themes/architecture/settings#access-settings). > Tip: > If you want to add informational elements to your settings display, like a heading, then refer to [Sidebar settings](/docs/storefronts/themes/architecture/settings/sidebar-settings). ## Standard attributes The following are standard attributes across input settings. However, depending on the input type, there might be extra attributes or some might not apply:
Attribute Description Required
type The setting type, which can be any of the basic or specialized input setting types. Yes
id The setting ID, which is used to access the setting value. Yes
label The setting label, which will show in the theme editor. Yes
default The default value for the setting. No
info An option for informational text about the setting. No
## Basic input settings The following are the basic input setting types: - [checkbox](#checkbox) - [number](#number) - [radio](#radio) - [range](#range) - [select](#select) - [text](#text) - [textarea](#textarea) ## checkbox A setting of type `checkbox` outputs a checkbox field. This setting type can be used for toggling features on and off, such as whether to show an announcement bar. For example, the following setting generates the following output:

When accessing the value of a `checkbox` type setting, data is returned as a [boolean](/docs/api/liquid/basics/types#boolean). > Note: > If `default` is unspecified, then the value is `false` by default. ## number A setting of type `number` outputs a single number field. In addition to the [standard attributes](#standard-attributes) of an input setting, `number` type settings have the following attribute:
Attribute Description Required
placeholder

A placeholder value for the input.

These values only appear for settings defined in settings_schema.json. They don't appear for settings defined in a section's schema.

No
You can use this setting type to capture a varying numerical value, such as the number of products to show per page on a collection page. For example, the following setting generates the following output:

When accessing the value of a `number` type setting, data is returned in one of the following formats: - [A number](/docs/api/liquid/basics/types#number). - [nil](/docs/api/liquid/basics/types#nil), if nothing has been entered. > Caution: > The `default` attribute is optional. However, the value must be a number and not a string. Failing to adhere results in an error. ## radio A setting of type `radio` outputs a radio option field. In addition to the [standard attributes](#standard-attributes) of an input setting, `radio` type settings have a required `options` attribute that accepts an array of `value` and `label` definitions. You can use this setting type to capture a multi-option selection, such as the alignment of a header logo. For example, the following setting generates the following output:

When accessing the value of a `radio` type setting, data is returned as a [string](/docs/api/liquid/basics/types#string). > Note: > If `default` is unspecified, then the first option is selected by default. ## range A setting of type `range` outputs a range slider field with an input field. In addition to the [standard attributes](#standard-attributes) of an input setting, `range` type settings have the following attributes:
Attribute Description Required
min The minimum value of the input Yes
max The maximum value of the input Yes
step The increment size between steps of the slider. Defaults to 1 when omitted. No
unit The unit for the input. For example, you can set px for a font-size slider. No
You can use this setting type to capture a varying numerical value, such as font size. You can update the `range` value using the provided slider, or by typing a value into the input field: - If you enter a value that doesn't respect the `step` definition, then the value rounds to the closest step. - If you enter a value outside of the given `min` and `max`, then the value reverts to the `min` or `max` value accordingly. For example, the following setting generates the following output:

When accessing the value of a `range` type setting, data is returned as a [number](/docs/api/liquid/basics/types#number). > Caution: > The `default` attribute is required. The `min`, `max`, `step`, and `default` attributes can't be string values. Failing to adhere results in an error. ## select A setting of type `select` outputs [different selector fields](#selector-fields), depending on certain criteria. In addition to the [standard attributes](#standard-attributes) of an input setting, `select` type settings have the following attributes:
The additional attributes that the select type settings supports
Attribute Description Required
options Takes an array of value/label definitions for each option in the drop-down. Yes
group An optional attribute that you can add to each option to create option groups in the drop-down. No
### Selector fields The following criteria render selector fields as either a `DropDown` or a `SegmentedControl`:
The rendering criteria for selector fields
Field Rendering criteria Output
Dropdown
  • The optional group attribute is used.
  • More than five options are provided.
  • The options are too long and might overflow their container.
Selector fields rendered as a field of type DropDown
SegmentedControl
  • The optional group attribute isn't used.
  • Two to five options are provided.
  • All options fit within their container and don't overflow.
Selector fields rendered as a SegmentedControl field
You can use this setting type to capture a multi-option selection, such as the vertical alignment of slideshow text. For example, the following setting generates the following output:

However, if your setting matches the criteria for a drop-down field (`DropDown`) because it has more than five options, then the following output is generated:

When accessing the value of a `select` type setting, data is returned as a [string](/docs/api/liquid/basics/types#string). > Note: > If `default` is unspecified, then the first option is selected by default. ## text A setting of type `text` outputs a single-line text field. In addition to the [standard attributes](#standard-attributes) of an input setting, `text` type settings have the following attribute:
Attribute Description Required
placeholder

A placeholder value for the input.

These values only appear for settings defined in settings_schema.json. They don't appear for settings defined in a section's schema.

No
You can use this setting type to capture short strings, such as titles. For example, the following setting generates the following output

When accessing the value of a `text` type setting, data is returned in one of the following formats: - A [string](/docs/api/liquid/basics/types#string). - An [`empty` object](/docs/api/liquid/basics/types#emptydrop), if nothing has been entered. > Tip: > Settings of type `text` are not updated when switching presets. ## textarea A setting of type `textarea` outputs a multi-line text field. In addition to the [standard attributes](#standard-attributes) of an input setting, `textarea` type settings have the following attribute:
Attribute Description Required
placeholder

A placeholder value for the input.

These values only appear for settings defined in settings_schema.json. They don't appear for settings defined in a section's schema.

No
You can use this setting type to capture larger blocks of text, such as messages. For example, the following setting generates the following output:

When accessing the value of a `textarea` type setting, data is returned in one of the following formats: - A [string](/docs/api/liquid/basics/types#string). - An [`empty` object](/docs/api/liquid/basics/types#emptydrop), if nothing has been entered. ## Specialized input settings The following are the specialized input setting types: - [article](#article) - [blog](#blog) - [collection](#collection) - [collection_list](#collection_list) - [color](#color) - [color_background](#color_background) - [color_scheme](#color_scheme) - [color_scheme_group](#color_scheme_group) - [font_picker](#font_picker) - [html](#html) - [image_picker](#image_picker) - [inline_richtext](#inline_richtext) - [link_list](#link_list) - [liquid](#liquid) - [metaobject](#metaobject) - [metaobject_list](#metaobject_list) - [page](#page) - [product](#product) - [product_list](#product_list) - [richtext](#richtext) - [text_alignment](#text_alignment) - [url](#url) - [video](#video) - [video_url](#video_url) ## article A setting of type `article` outputs an article picker field that's automatically populated with the available articles for the store. You can use this setting type to capture an article selection, such as the article to feature on the homepage. For example, the following setting generates the following output:

When accessing the value of an `article` type setting, data is returned in one of the following formats: - An [`article` object](/docs/api/liquid/objects/article). To ensure backwards compatibility with [legacy resource-based settings](/docs/storefronts/themes/architecture/settings#legacy-resource-based-settings), outputting the setting directly will return the object's handle. - `blank` if no selection has been made, the selection isn't visible, or the selection no longer exists > Note: > Settings of type `article` are not updated when switching presets. `article` settings also don't support the `default` attribute. ## blog A setting of type `blog` outputs a blog picker field that's automatically populated with the available blogs for the store. You can use this setting type to capture a blog selection, such as the blog to feature in the sidebar. For example, the following setting generates the following output:

When accessing the value of a `blog` type setting, data is returned in one of the following formats: - A [`blog` object](/docs/api/liquid/objects/blog). To ensure backwards compatibility with [legacy resource-based settings](/docs/storefronts/themes/architecture/settings#legacy-resource-based-settings), outputting the setting directly will return the object's handle. - `blank`, if either no selection has been made or the selection no longer exists. > Note: > Settings of type `blog` are not updated when switching presets. `blog` settings also don't support the `default` attribute. ## collection A setting of type `collection` outputs a collection picker field that's automatically populated with the available collections for the store. You can use this setting type to capture a collection selection, such as a collection for featuring products on the homepage. For example, the following setting generates the following output:

When accessing the value of a `collection` type setting, data is returned in one of the following formats: - A [`collection` object](/docs/api/liquid/objects/collection). To ensure backwards compatibility with [legacy resource-based settings](/docs/storefronts/themes/architecture/settings#legacy-resource-based-settings), outputting the setting directly will return the object's handle. - `blank`, if no selection has been made, the selection isn't visible, or the selection no longer exists. > Note: > Settings of type `collection` are not updated when switching presets. `collection` settings also don't support the `default` attribute. ## collection_list A setting of type `collection_list` outputs a collection picker field that's automatically populated with the available collections for the store. You can use this setting type to capture multiple collections, such as a group of collections to feature on the homepage. In addition to the [standard attributes](#standard-attributes) of an input setting, `collection_list` type settings have the following attributes:
Attribute Description Required
limit The maximum number of collections that the merchant can select. The default limit, and the maximum limit you can set, is 50. No

When accessing the value of a `collection_list` type setting, data is returned in one of the following formats: - An array of [`collection` objects](/docs/api/liquid/objects/collection) The array supports pagination using the [paginate](/docs/api/liquid/tags/paginate#paginate-paginating-setting-arrays) tag. You can also append `.count` to the [setting key](/docs/storefronts/themes/architecture/settings#access-settings) to return the number of collections in the array. - `blank` if no selection has been made, the selection isn't visible, or the selection no longer exists ## color A setting of type `color` outputs a color picker field. You can use this setting type to capture a color selection for various theme elements, such as the body text color. For example, the following setting generates the following output:

When accessing the value of a `color` type setting, data is returned in one of the following formats: - A [`color` object](/docs/api/liquid/objects/color). - `blank`, if no selection has been made. ## color_background A setting of type `color_background` outputs a text field for entering [CSS background](https://developer.mozilla.org/en-US/docs/Web/CSS/background) properties. You can use this setting type to capture background settings for various theme elements, such as the store background. > Caution: > Settings of type `color_background` do not support image related background properties. For example, the following setting generates the following output:

When accessing the value of a `color_background` type setting, data is returned in one of the following formats: - A [string](/docs/api/liquid/basics/types#string). - An empty string, if nothing has been entered. ## color_scheme A setting of type `color_scheme` outputs a picker with all of the available theme color schemes, and a preview of the selected color scheme. Theme color schemes in the picker are defined using the [`color_scheme_group`](#color_scheme_group) setting. You can apply a color scheme to sections, blocks and general theme settings. Color scheme settings aren't supported in app blocks. For example, the following setting generates the following output:

When accessing the value of a `color_scheme` type setting, Shopify returns the selected `color_scheme` object from `color_scheme_group`. If no value was entered, or the value was invalid, then the default value from `color_scheme` is returned. If the default value is also invalid, then the first `color_scheme` from `color_scheme_group` is returned. If the theme doesn't have `color_scheme_group` data in `settings_data.json`, then [nil](/docs/api/liquid/basics/types#nil) is returned. ## color_scheme_group A setting of type `color_scheme_group` outputs a color scheme which is composed of the following input setting types: - `header` - `color` - `color_background` Color schemes can be added only in `settings_schema.json`. For example, the following setting generates the following output:

### role The `role` field outputs a color scheme preview. The color scheme previews are visible to merchants anywhere in the editor where they might pick a color scheme. You can assign roles to your color scheme definitions to map the color scheme to the previews. For example you can assign `role.background` to the `Background` definition. Role uses the following standardized mapping of the `color_scheme_group` definition to the color scheme preview:
Role Description Required? Gradient?
role.background Renders the background color of the preview Yes Optional
role.text Renders the text color of the preview Yes No
role.primary_button role.secondary_button Render the 1st and 2nd pills in the preview Yes Optional
role.primary_button_border role.secondary_button_border Render the 1st and 2nd pills' border in the preview Yes No
role.on_primary_button role.on_secondary_button Aren't used in the preview Yes No
role.links role.icons Aren't used in the preview Yes No
![color scheme mapping](/assets/themes/settings/specialized/color-scheme-mapping.png) ## font_picker A setting of type `font_picker` outputs a font picker field that's automatically populated with fonts from the [Shopify font library](/docs/storefronts/themes/architecture/settings/fonts#shopify-font-library). This library includes web-safe fonts, a selection of Google Fonts, and fonts licensed by Monotype. You can use this setting type to capture a font selection for various theme elements, such as the base heading font. For example, the following setting generates the following output:

When accessing the value of a `font_picker` type setting, data is returned as a [`font` object](/docs/api/liquid/objects/font). > Caution: > The `default` attribute is required. Failing to include it will result in an error. You can find the possible values through the [available fonts](/docs/storefronts/themes/architecture/settings/fonts#available-fonts) in the Shopify font library. ## html A setting of type `html` outputs a multi-line text field that accepts HTML markup. In addition to the [standard attributes](#standard-attributes) of an input setting, `html` type settings have the following attribute:
Attribute Description Required
placeholder A placeholder value for the input No
You can use this setting type to capture custom blocks of HTML content, such as a video embed. For example, the following setting generates the following output:

The following HTML tags will be automatically removed: - `` - `` - `` When accessing the value of an `html` type setting, data is returned in one of the following formats: - A [string](/docs/api/liquid/basics/types#string) that contains the entered content. - An [`empty` object](/docs/api/liquid/basics/types#emptydrop), if nothing has been entered. > Note: > Unclosed HTML tags are automatically closed when the setting is saved. This may not line up with your intended formatting, so be sure to verify your input. ## image_picker A setting of type `image_picker` outputs an image picker field that's automatically populated with the available images from the [Files](https://help.shopify.com/manual/shopify-admin/productivity-tools/file-uploads) section of Shopify admin, and has the option to upload new images. Merchants also have an opportunity to enter alt text and select a [focal point](#image-focal-points) for their image. You can use this setting type to capture an image selection, such as logos, favicons, and slideshow images. For example, the following setting generates the following output:

When accessing the value of an `image_picker` type setting, data is returned in one of the following formats: - An [`image` object](/docs/api/liquid/objects/image). - [nil](/docs/api/liquid/basics/types#nil), if either no selection has been made or the selection no longer exists. > Note: > Settings of type `image_picker` are not updated when switching presets. `image_picker` settings also don't support the `default` attribute. ### Image focal points Images selected using an `image_picker` setting support focal points. A focal point is a position in an image that the merchant wants to remain in view as the image is cropped and adjusted by the theme. Focal points can be set in the theme editor `image_picker` setting, or from the **Files** page. To make sure that your theme respects the focal point of the image, do the following: - Render your images using the [`image_tag`](/docs/api/liquid/filters/image_tag) filter. - Consider positioning images within containers using `object-fit: cover`. Using `image_tag`, if a focal point was provided, then an `object-position` style is added to the image tag, with the value set to the focal point.

If you need override the `object-position` style for a specific use case, then pass a `style: object-position: inherit;` property to the `image_tag` filter. > Tip: > > You can also access the focal point data using [`image.presentation.focal_point`](/docs/api/liquid/objects/image_presentation#image_presentation-focal_point). ## inline_richtext A setting of type `inline_richtext` outputs HTML markup that isn't wrapped in paragraph tags (`

`). The setting includes the following basic formatting options: - Bold - Italic - Link > Note: > The `inline_richtext` setting doesn't support the following features: > > - Line breaks (`
`) > - An underline option in the rich text editor. Merchants can underline text using the `CMD`+`U` or `CTRL`+`U` keyboard shortcut. You can use this setting type to capture formatted text content, such as introductory brand content on the homepage. For example, the following setting generates the following output:

When accessing the value of a `inline_richtext` type setting, data is returned in one of the following formats: - A [string](/docs/api/liquid/basics/types#string) that contains the entered content. - An [`empty` object](/docs/api/liquid/basics/types#emptydrop), if nothing has been entered. ## link_list A setting of type `link_list` outputs a menu picker field that's automatically populated with the available menus for the store. You can use this setting type to capture a menu selection, such as the menu to use for footer links. For example, the following setting generates the following output:

When accessing the value of a `link_list` type setting, data is returned in one of the following formats: - A [`linklist` object](/docs/api/liquid/objects/linklist). - `blank`, if either no selection has been made or the selection no longer exists. > Note: > Accepted values for the `default` attribute are `main-menu` and `footer`. ## liquid A setting of type `liquid` outputs a multi-line text field that accepts HTML and [limited](#limitations) Liquid markup. You can use this setting type to capture custom blocks of HTML and Liquid content, such as a product-specific message. Merchants can also use a liquid setting to add the code needed to integrate certain types of [apps](/docs/apps/build/online-store) into your theme. For example, the following setting generates the following output:

When accessing the value of a `liquid` type setting, data is returned in one of the following formats: - A [string](/docs/api/liquid/basics/types#string) that contains the entered content. - An [`empty` object](/docs/api/liquid/basics/types#emptydrop), if nothing has been entered. > Note: > The `default` attribute is optional. However, if you use it, then its value can't be an empty string. Additionally, unclosed HTML tags are automatically closed when the setting is saved. This might not line up with your intended formatting, so be sure to verify your input. ### Limitations Settings of type `liquid` don't have access to the following liquid objects/tags: - [layout](/docs/api/liquid/tags/layout) - [content_for_header](/docs/api/liquid/objects/content_for_header) - [content_for_layout](/docs/api/liquid/objects/content_for_layout) - [content_for_index](/docs/api/liquid/objects/content_for_index) - [section](/docs/api/liquid/tags/section) - [javascript](/docs/storefronts/themes/architecture/sections/section-assets#javascript) - [stylesheet](/docs/storefronts/themes/architecture/sections/section-assets#stylesheet) - [schema](/docs/storefronts/themes/architecture/sections/section-schema) - [settings](/docs/api/liquid/objects/settings) However, `liquid` settings can access the following: - [Global Liquid objects](/docs/api/liquid/objects) - Template specific objects like `collection`, `product`, etc. (within their respective templates) - Standard Liquid [tags](/docs/api/liquid/tags) and [filters](/docs/api/liquid/filters) If your content includes non-existent, or empty, Liquid tags, then they will be rendered as empty strings. For example, the following setting generates the following output:

> Caution: > Content entered in these settings can't exceed 50kb. Saving content that either exceeds this limit or includes invalid Liquid will result in an error. ## metaobject A `metaobject` setting allows merchants to select metaobject entries of a designated type through a picker interface. This setting supports both standard and custom metaobject definitions: 1. Standard metaobject definitions: These are readily available in the theme editor and do not need to be pre-enabled on a shop. An example of a standard metaobject is the `product_review` metaobject. [Learn more](/docs/apps/build/custom-data/metaobjects/list-of-standard-definitions) about current standard metaobject definitions. 2. Custom metaobject definitions: These are designed for custom themes and require the metaobject definition to already exist. Note that custom metaobject definitions are not allowed in themes listed on the Theme Store. An example of a custom metaobject would be an `author` metaobject. Additionally, apps can utilize `metaobject` settings with their own app-owned metaobject definitions and entries. `metaobject` type settings have the following attributes, in addition to the [standard attributes](#standard-attributes) of an input setting:
Attribute Description Required
metaobject_type The metaobject type allowed by the picker. Yes
A `metaobject` setting value can be either of the following formats: - A [`metaobject` object](/docs/api/liquid/objects/metaobject) - `blank` if no selection has been made, the selection isn't visible, or the selection no longer exists ### Standard metaobject example

### Custom metaobject example

### Limitations - Only a single `metaobject_type` is supported at a time, as defined in the setting's schema. - In order for themes to meet [publishing guidelines](/docs/storefronts/themes/store/requirements#13-settings) for the Shopify Theme Store, only standard definitions can be used. Custom or app owned definitions cannot be used. - When referencing a **custom** or **app created** `metaobject_type`, the definition must exist on the shop and be available to the storefront. If either condition isn't met, the setting will show an error in the theme editor.
![metaobject-missing-definition](/assets/themes/settings/specialized/metaobject_error.png) ### Usage in apps Apps can leverage `metaobject` settings in their app blocks or embeds to enhance theme functionality. By creating metaobject definitions under [reserved namespaces](/docs/apps/build/custom-data/ownership#create-metaobject-definitions-with-reserved-types), apps can offer advanced configuration options for merchants while maintaining a simple user experience. Consider an app designed to improve brand storytelling through customer testimonials. Here's a potential implementation: 1. Create a custom metaobject definition named `Customer Testimonial` 2. Use app blocks to collect customer data on a post-purchase page 3. Write this data as `Customer Testimonial` metaobject entries 4. Provide a `Testimonial` app block with a `metaobject` setting that uses the `Customer Testimonial` metaobject type 5. Access the `metaobject` setting value in Liquid to display the selected testimonials

## metaobject_list A `metaobject_list` setting allows merchants to select multiple metaobject entries of a designated type through a picker interface. This setting supports both standard and custom metaobject definitions: 1. Standard metaobject definitions: These are readily available in the theme editor and do not need to be pre-enabled on a shop. An example of a standard metaobject is the `product_review` metaobject. [Learn more](/docs/apps/build/custom-data/metaobjects/list-of-standard-definitions) about current standard metaobject definitions. 2. Custom metaobject definitions: These are designed for custom themes and require the metaobject definition to already exist. Note that custom metaobject definitions are not allowed in themes listed on the Theme Store. An example of a custom metaobject would be an `author` metaobject. Additionally, apps can utilize `metaobject_list` settings with their own app-owned metaobject definitions and entries. `metaobject_list` type settings have the following attributes, in addition to the [standard attributes](#standard-attributes) of an input setting:
Attribute Description Required
limit The maximum number of products that the merchant can select. The default limit, and the maximum limit you can set, is 50. No
metaobject_type The metaobject type allowed by the picker. Yes
A `metaobject_list` setting value can be either of the following formats: - An array of [`metaobject` objects](/docs/api/liquid/objects/metaobject) The array supports pagination using the [paginate](/docs/api/liquid/tags/paginate#paginate-paginating-setting-arrays) tag. You can also append `.count` to the [setting key](/docs/storefronts/themes/architecture/settings#access-settings) to return the number of metaobject entries in the array. - `blank` if no selection has been made, the selection isn't visible, or the selection no longer exists ### Standard metaobject list example

### Custom metaobject list example

### Limitations - Only a single `metaobject_type` is supported at a time, as defined in the setting's schema. - In order for themes to meet [publishing guidelines](/docs/storefronts/themes/store/requirements#13-settings) for the Shopify Theme Store, custom or app owned definitions cannot be used. - When referencing a **custom** or **app created** `metaobject_type`, the definition must exist on the shop and be available to the storefront. If either condition isn't met, the setting will show an error in the theme editor.
![metaobject-list-missing-definition](/assets/themes/settings/specialized/metaobject_error.png) ### Usage in apps Apps can leverage `metaobject_list` settings in their app blocks or embeds to enhance theme functionality. By creating metaobject definitions under [reserved namespaces](/docs/apps/build/custom-data/ownership#create-metaobject-definitions-with-reserved-types), apps can offer advanced configuration options for merchants while maintaining a simple user experience. Using the same [example](#metaobject) as above, a `Testimonials` app-block could allow merchants to select multiple testimonial entries. The `metaobject_list` setting would make this implementation possible.

## page A setting of type `page` outputs a page picker field that's automatically populated with the available pages for the store. You can use this setting type to capture a page selection, such as the page to feature content for in a size-chart display. For example, the following setting generates the following output:

When accessing the value of a `page` type setting, data is returned in one of the following formats: - A [`page` object](/docs/api/liquid/objects/page). To ensure backwards compatibility with [legacy resource-based settings](/docs/storefronts/themes/architecture/settings#legacy-resource-based-settings), outputting the setting directly will return the object's handle. - `blank`, if no selection has been made, the selection isn't visible, or the selection no longer exists. > Note: > Settings of type `page` are not updated when switching presets. `page` settings also don't support the `default` attribute. ## product A setting of type `product` outputs a product picker field that's automatically populated with the available products for the store. You can use this setting type to capture a product selection, such as the product to feature on the homepage. For example, the following setting generates the following output:

When accessing the value of a `product` type setting, data is returned in one of the following formats: - A [`product` object](/docs/api/liquid/objects/product). To ensure backwards compatibility with [legacy resource-based settings](/docs/storefronts/themes/architecture/settings#legacy-resource-based-settings), outputting the setting directly will return the object's handle. - `blank` if no selection has been made, the selection isn't visible, or the selection no longer exists > Note: > Settings of type `product` are not updated when switching presets. `product` settings also don't support the `default` attribute. ## product_list A setting of type `product_list` outputs a product picker field that's automatically populated with the available products for the store. You can use this setting type to capture multiple products, such as a group of products to feature on the homepage. > Note: > You can only choose from products that are published to the online store and have an `active` status. In addition to the [standard attributes](#standard-attributes) of an input setting, `product_list` type settings have the following attributes:
Attribute Description Required
limit The maximum number of products that the merchant can select. The default limit, and the maximum limit you can set, is 50. No

When accessing the value of a `product_list` type setting, data is returned in one of the following formats: - An array of [`product` objects](/docs/api/liquid/objects/product) The array supports pagination using the [paginate](/docs/api/liquid/tags/paginate#paginate-paginating-setting-arrays) tag. You can also append `.count` to the [setting key](/docs/storefronts/themes/architecture/settings#access-settings) to return the number of products in the array. - `blank` if no selection has been made, the selection isn't visible, or the selection no longer exists ## richtext A setting of type `richtext` outputs a multi-line text field with the following basic formatting options: - Bold - Italic - Underline - Link - Paragraph - Unordered list > Note: > No underline option appears in the rich text component. Merchants can underline text using the `CMD`+`U` or `CTRL`+`U` keyboard shortcut. You can use this setting type to capture formatted text content, such as introductory brand content on the homepage. For example, the following setting generates the following output:

When accessing the value of a `richtext` type setting, data is returned in one of the following formats: - A [string](/docs/api/liquid/basics/types#string) that contains the entered content. - An [`empty` object](/docs/api/liquid/basics/types#emptydrop), if nothing has been entered. ### default The `default` attribute isn't required. However, if it's used, then only `

` or `