Skip to content

Configuration

This document describes how you can configure your theme

Global Settings Config configs/custom.json

This file contains the settings for the entire theme and to make development easier you may separate sections into groups and add headings through the setting groups depending on the amount you need.

json
[
    {
        "name": "Group 1",
        "settings": [
            {
                "type": "header",
                "content": "This is an example header"
            },
            {
                "type": "colour",
                "id": "theme_example_colour",
                "label": "Example Colour",
                "default": "#02B4FE"
            },
        ]
    },
    {
        "name": "Group 2",
        "settings": [
            {
                "type": "header",
                "content": "This is an example header"
            }
        ]
    }
]

Setting References

Because settings are usable in sections as well as the configs/custom.json page, the references sections show each different configuration option as easily copy and paste-able objects you can use when needed

Section Types

OptionDescription
typeDefines the type of input the option takes
idMust be unique. It is how the settings are references in the theme.
labelDescribes to the user what the option is for.
placeholderA value for the input's placeholder text. This is for text-based setting types only..
defaultdefine a default value for the option.
infoProvide additional info about the option to the end user.

Settings:

SettingDescription
colourAllows the user to choose a colour with a colour picker
fontAllows the user to select from a list of fonts
richtextAllows the user to add text and with minimal styles also links
markdownAllows the user to add markdown content
textAllow the user to input a single line text field
textareaAllows the user to input multi line text
mediaAllows the user to upload images
radioAllows the user to select from radio buttons
selectAllows the user to select from a drop-down
checkboxAllows the user to check a box return a true or false value
rangeAllows the user to choose a value withing a range with a range slider

This setting is only usable on configs/custom.json and is not necessary for sections

json
{
    "type": "header",
    "content": "This is an example header"
}

Colour

json
{
    "type": "colour",
    "id": "theme_example_colour",
    "label": "Example Colour",
    "default": "#02B4FE"
}

Font

json
{
    "type": "font",
    "id": "theme_example_font",
    "label": "Example Font"
}

Richtext

json
{
    "type": "richtext",
    "id": "theme_example_richtext",
    "label": "Example Rich Text"
}

Markdown

Automatically converts inputted markdown to html

json
{
    "type": "markdown",
    "id": "theme_example_markdown",
    "label": "Example Markdown"
}

Text

json
{
    "type": "text",
    "id": "theme_example_text",
    "label": "Example Text"
}

Textarea

Similar to text but adds a large input surface for easier reading

json
{
    "type": "textarea",
    "id": "theme_example_textarea",
    "label": "Example Textarea"
}

Image/Media

json
{
    "type": "media",
    "id": "theme_example_image",
    "label": "Example Image"
}

Radio Button

json
{
    "type": "radio",
    "id": "theme_example_radio",
    "label": "Example radio",
    "options": [
        { "value": "one", "label": "Radio One" },
        { "value": "two", "label": "Radio Two" }
    ],
    "default": "one"
}

Select Box

json
{
    "type": "select",
    "id": "theme_example_select",
    "label": "Example Select",
    "options": [
        { "value": "one", "label": "Option A" },
        { "value": "two", "label": "Option B" },
        { "value": "three", "label": "Option C" }
    ],
    "default": "one"
}

Checkboxes

json
{
    "type": "checkbox",
    "id": "theme_example_checkbox",
    "label": "Example Checkbox",
    "options": [
        { "value": "", "label": "Select" },
        { "value": "one", "label": "Checkbox One" },
        { "value": "two", "label": "Checkbox Two" }
    ],
    "default": ""
}

Range slider

json
{
    "type": "range",
    "id": "theme_example_range",
    "label": "Example Font Size",
    "min": 12,
    "max": 18,
    "step": 1,
    "unit": "px",
    "default": 16
}

pages.json

The pages.json controls where and what content can be displayed on the website, this can include anything from articles to category ranges.

Available Pages

These are pages that currently work with this new system

Page NameActionDescription
index
articles.collection
articles.collection.show
articles.show
products.all
products.show
category.listing
category.landing
category.all
calendar.show
contact
gallery
locations
stockists
route
search
tags.listing
testimonials
wishlist

Available Features

FeatureDescription
banner
category
slider
featureOnly available on products.show pages
filter
content_table
gallery
tag
calendar_widget
menu