**ZeroCore themes for GUI**

The GUI framework now supports themes that specify the colours of various GUI elements.

A mod can load a theme from a JSON file like the provided example_gui_theme.json. The theme file can also be overrided by texture / mod packs authors.

**_Theme elements_**

All values are required and they express RGBA colours in a hexadecimal string (ie: "868686FF")

* FLAT_BACKGROUND_COLOR
Background of a control.

* TEXT_ENABLED_COLOR
Text displayed in an enabled control.

* TEXT_DISABLED_COLOR
Text displayed in a disabled control.

* DARK_OUTLINE_COLOR
Dark border / outline of a control.

* BUTTON_NORMAL_3D_GRADIENT_LIGHT
Background of an enabled button, starting colour of a gradient.
If equal to BUTTON_NORMAL_3D_GRADIENT_DARK, only BUTTON_NORMAL_3D_GRADIENT_LIGHT will be used to draw a flat background.

* BUTTON_NORMAL_3D_GRADIENT_DARK
Background of an enabled button, ending colour of a gradient.
If equal to BUTTON_NORMAL_3D_GRADIENT_DARK, only BUTTON_NORMAL_3D_GRADIENT_LIGHT will be used to draw a flat background.

* BUTTON_NORMAL_3D_BORDER_LIGHT
3D border of an enabled button, light sections.

* BUTTON_NORMAL_3D_BORDER_DARK
3D border of an enabled button, dark sections.

* BUTTON_DISABLED_3D_GRADIENT_LIGHT
Background of a disabled button, starting colour of a gradient.
If equal to BUTTON_DISABLED_3D_GRADIENT_DARK, only BUTTON_DISABLED_3D_GRADIENT_LIGHT will be used to draw a flat background.

* BUTTON_DISABLED_3D_GRADIENT_DARK
Background of a disabled button, ending colour of a gradient.
If equal to BUTTON_DISABLED_3D_GRADIENT_DARK, only BUTTON_DISABLED_3D_GRADIENT_LIGHT will be used to draw a flat background.

* BUTTON_DISABLED_3D_BORDER_LIGHT
3D border of a disabled button, light sections.

* BUTTON_DISABLED_3D_BORDER_DARK
3D border of a disabled button, dark sections.

* BUTTON_ACTIVE_3D_GRADIENT_LIGHT
Background of an active button, starting colour of a gradient.
If equal to BUTTON_ACTIVE_3D_GRADIENT_DARK, only BUTTON_ACTIVE_3D_GRADIENT_LIGHT will be used to draw a flat background.

* BUTTON_ACTIVE_3D_GRADIENT_DARK
Background of an active button, ending colour of a gradient.
If equal to BUTTON_ACTIVE_3D_GRADIENT_DARK, only BUTTON_ACTIVE_3D_GRADIENT_LIGHT will be used to draw a flat background.

* BUTTON_ACTIVE_3D_BORDER_LIGHT
3D border of an active button, light sections.

* BUTTON_ACTIVE_3D_BORDER_DARK
3D border of an active button, dark sections.

* BUTTON_HIGHLIGHTED_3D_GRADIENT_LIGHT
Background of a highlighted button, starting colour of a gradient.
If equal to BUTTON_HIGHLIGHTED_3D_GRADIENT_DARK, only BUTTON_HIGHLIGHTED_3D_GRADIENT_LIGHT will be used to draw a flat background.

* BUTTON_HIGHLIGHTED_3D_GRADIENT_DARK
Background of a highlighted button, ending colour of a gradient.
If equal to BUTTON_HIGHLIGHTED_3D_GRADIENT_DARK, only BUTTON_HIGHLIGHTED_3D_GRADIENT_LIGHT will be used to draw a flat background.

* BUTTON_HIGHLIGHTED_3D_BORDER_LIGHT
3D border of a highlighted button, light sections.

* BUTTON_HIGHLIGHTED_3D_BORDER_DARK
3D border of a highlighted button, dark sections.

* TEXTFIELD_NORMAL_3D_GRADIENT_LIGHT
Background of a text field, starting colour of a gradient.
If equal to TEXTFIELD_NORMAL_3D_GRADIENT_DARK, only TEXTFIELD_NORMAL_3D_GRADIENT_LIGHT will be used to draw a flat background.

* TEXTFIELD_NORMAL_3D_GRADIENT_DARK
Background of a text field, ending colour of a gradient.
If equal to TEXTFIELD_NORMAL_3D_GRADIENT_DARK, only TEXTFIELD_NORMAL_3D_GRADIENT_LIGHT will be used to draw a flat background.

* TEXTFIELD_NORMAL_3D_BORDER_LIGHT
3D border of a text field, light sections.

* TEXTFIELD_NORMAL_3D_BORDER_DARK
3D border of a text field, dark sections.

* TEXTFIELD_CARET
Colour of the caret in a text field.

* GUI_TITLE
Colour of the title of a GUI.

