# Settings Schema - Complete Input Type Reference All 28+ input types for `settings_schema.json` with examples. ## Text Inputs ### text Single-line text input: ```json { "type": "text", "id": "store_name", "label": "Store Name", "default": "My Store", "placeholder": "Enter store name", "info": "This appears in the header" } ``` ### textarea Multi-line text input: ```json { "type": "textarea", "id": "footer_text", "label": "Footer Text", "default": "© 2025 My Store. All rights reserved.", "placeholder": "Enter footer text" } ``` ### html HTML code editor: ```json { "type": "html", "id": "custom_html", "label": "Custom HTML", "default": "
Welcome to our store!
", "info": "Add custom HTML code" } ``` ### richtext WYSIWYG rich text editor: ```json { "type": "richtext", "id": "announcement_content", "label": "Announcement Bar Content", "default": "Free shipping on orders over $50!
" } ``` ## Numeric Inputs ### number Numeric input field: ```json { "type": "number", "id": "products_per_page", "label": "Products Per Page", "default": 12, "min": 1, "max": 100, "step": 1, "info": "Number of products to show per page" } ``` ### range Slider input: ```json { "type": "range", "id": "columns", "label": "Number of Columns", "min": 2, "max": 6, "step": 1, "default": 4, "unit": "columns", "info": "Adjust the grid layout" } ``` **Common units:** - `px` - Pixels - `%` - Percentage - `em` - Em units - `rem` - Root em units - Custom text (like "columns", "items") ## Boolean Inputs ### checkbox Toggle checkbox: ```json { "type": "checkbox", "id": "show_search", "label": "Show Search Bar", "default": true, "info": "Display search in header" } ``` ### boolean Boolean setting (same as checkbox): ```json { "type": "boolean", "id": "enable_feature", "label": "Enable Feature", "default": false } ``` ## Selection Inputs ### select Dropdown menu: ```json { "type": "select", "id": "layout_style", "label": "Layout Style", "options": [ { "value": "boxed", "label": "Boxed" }, { "value": "full-width", "label": "Full Width" }, { "value": "wide", "label": "Wide" } ], "default": "full-width", "info": "Choose your layout style" } ``` ### radio Radio button selection: ```json { "type": "radio", "id": "text_alignment", "label": "Text Alignment", "options": [ { "value": "left", "label": "Left" }, { "value": "center", "label": "Center" }, { "value": "right", "label": "Right" } ], "default": "center" } ``` ## Color Inputs ### color Color picker: ```json { "type": "color", "id": "primary_color", "label": "Primary Color", "default": "#000000", "info": "Main brand color" } ``` ### color_background Color with gradient support: ```json { "type": "color_background", "id": "section_background", "label": "Section Background", "default": "linear-gradient(#ffffff, #000000)" } ``` **Supports:** - Solid colors: `#ffffff` - Linear gradients: `linear-gradient(#fff, #000)` - Radial gradients - With opacity ## Media Inputs ### image_picker Image upload and selection: ```json { "type": "image_picker", "id": "logo", "label": "Logo Image", "info": "Recommended size: 300x100px" } ``` Access in Liquid: ```liquid {% if settings.logo %}` wrapper): ```json { "type": "inline_richtext", "id": "banner_text", "label": "Banner Text", "default": "Welcome to our store!", "info": "Text without paragraph wrapper" } ``` ## Complete Example Full settings schema with multiple sections: ```json [ { "name": "theme_info", "theme_name": "Professional Theme", "theme_version": "1.0.0", "theme_author": "Your Name", "theme_documentation_url": "https://docs.example.com", "theme_support_url": "https://support.example.com" }, { "name": "Colors", "settings": [ { "type": "header", "content": "Brand Colors" }, { "type": "color", "id": "color_primary", "label": "Primary Brand Color", "default": "#2196F3" }, { "type": "color", "id": "color_secondary", "label": "Secondary Color", "default": "#FFC107" }, { "type": "header", "content": "Background Colors" }, { "type": "color_background", "id": "color_body_bg", "label": "Body Background", "default": "#FFFFFF" }, { "type": "color_background", "id": "color_header_bg", "label": "Header Background", "default": "linear-gradient(#FFFFFF, #F5F5F5)" } ] }, { "name": "Typography", "settings": [ { "type": "paragraph", "content": "Select fonts for your store. Changes preview in real-time." }, { "type": "font_picker", "id": "type_header_font", "label": "Heading Font", "default": "helvetica_n7", "info": "Font for all headings" }, { "type": "font_picker", "id": "type_body_font", "label": "Body Font", "default": "helvetica_n4", "info": "Font for body text" }, { "type": "range", "id": "type_base_size", "label": "Base Font Size", "min": 12, "max": 24, "step": 1, "default": 16, "unit": "px" } ] }, { "name": "Header", "settings": [ { "type": "image_picker", "id": "logo", "label": "Logo Image" }, { "type": "range", "id": "logo_width", "label": "Logo Width", "min": 50, "max": 300, "step": 10, "default": 150, "unit": "px" }, { "type": "link_list", "id": "main_menu", "label": "Main Menu", "default": "main-menu" }, { "type": "checkbox", "id": "header_sticky", "label": "Sticky Header", "default": true, "info": "Header stays visible while scrolling" }, { "type": "select", "id": "header_style", "label": "Header Style", "options": [ { "value": "minimal", "label": "Minimal" }, { "value": "classic", "label": "Classic" }, { "value": "centered", "label": "Centered" } ], "default": "classic" } ] }, { "name": "Product Pages", "settings": [ { "type": "checkbox", "id": "product_show_vendor", "label": "Show Vendor", "default": true }, { "type": "checkbox", "id": "product_show_sku", "label": "Show SKU", "default": false }, { "type": "select", "id": "product_image_size", "label": "Image Size", "options": [ { "value": "small", "label": "Small" }, { "value": "medium", "label": "Medium" }, { "value": "large", "label": "Large" } ], "default": "medium" }, { "type": "product", "id": "related_product", "label": "Related Product" } ] }, { "name": "Social Media", "settings": [ { "type": "header", "content": "Social Media Accounts" }, { "type": "url", "id": "social_twitter", "label": "Twitter", "placeholder": "https://twitter.com/username" }, { "type": "url", "id": "social_facebook", "label": "Facebook", "placeholder": "https://facebook.com/username" }, { "type": "url", "id": "social_instagram", "label": "Instagram", "placeholder": "https://instagram.com/username" } ] } ] ``` ## Best Practices 1. **Group related settings** into logical sections 2. **Provide clear labels and info text** for guidance 3. **Set sensible defaults** for all settings 4. **Use appropriate input types** for each setting 5. **Add placeholder text** for URL and text inputs 6. **Use headers and paragraphs** to organize complex sections 7. **Limit range values** to reasonable min/max 8. **Test in theme customizer** to ensure good UX 9. **Document dependencies** between settings 10. **Consider mobile experience** when choosing input types