Commits

Russell Keith-Magee committed f7abce1

Initial checkin

Comments (0)

Files changed (33)

+
+The PRIMARY AUTHORS of jacqui are (and/or have been):
+    Russell Keith-Magee
+
+Copyright (c) Russell Keith-Magee.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    1. Redistributions of source code must retain the above copyright notice,
+       this list of conditions and the following disclaimer.
+
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+
+    3. Neither the name of jacqui nor the names of its contributors may be used
+       to endorse or promote products derived from this software without
+       specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+jacqui v0.1
+===========
+
+Jacqui is a tool for performing configuration management of jQueryUI
+theme bundles.
+
+jQueryUI has great online tools for rolling themes, and for rolling
+custom jQueryUI bundles. However, it doesn't provide an easy way to
+perform configuration management on those bundles. Once you've set up
+a theme, it's difficult to reproduce.
+
+jacqui is a tool that allows you to define a jQueryUI theme as a
+configuration file, and then generate (and unpack) a theme bundle
+based on that configuration. The configuration file can be added to
+version control, and be used to reliably reproduce theme and bundle
+settings in the future.
+
+Why the name ``jacqui``? Because it's the first word I thought of that
+contains the letters J Q U I in order.
+
+Configuration files
+~~~~~~~~~~~~~~~~~~~
+
+jacqui uses two configuration files: A theme description and
+a bundle description.
+
+The theme description is entirely presentation related. It describes the
+fonts, colors, sizes etc for a theme. The sections match the sections for
+the online theme roller [1]; the keys are hopefully self explanatory from
+there.
+
+The bundle description is a description of the parts that will be included
+in the customized download bundle [2]. It includes the javascript modules that
+will be included, the jQuery version binding, and any scoping and naming
+configuration for the theme.
+
+Examples of both files can be found in the examples directory. The themes
+correspond to the full list of themes in the sample gallery; the bundle
+is a complete set of all modules for the most recent jQuery version (1.8.16).
+
+[1] http://jqueryui.com/themeroller/
+[2] http://jqueryui.com/download/
+
+Usage
+~~~~~
+
+Jacqui consists of two command line tools: jacqui and unjacqui.
+
+jacqui
+------
+
+jacqui is used to take a theme description and a bundle description,
+and retrieve a fresh jQueryUI download bundle.
+
+Common usage: Use the "my_theme" theme description, and the
+"my_bundle" bundle description, and download a new bundle, saving
+it as output.zip:
+
+    jacqui -t my_theme.json -b my_bundle.json -o output.zip
+
+Preview: Open "my_theme" using the theme roller, so you can see what
+the theme looks like:
+
+    jacqui -t my_theme.json --preview
+
+unjacqui
+--------
+
+unjacqui is used to take a URL describing a theme, and turn it into
+a configuration file that can be managed.
+
+To use unjacqui: Visit http://jqueryui.com/themeroller/, and construct a
+custom theme. Then, copy the URL for the theme, and pass it to unjacqui:
+
+    unjacqui -o my_theme.json "http://jqueryui.com/themeroller/#ffDefault=Segoe+UI%2C+Arial..."
+
+The URL has been truncated here - it will be quite long in practice.
+
+This will output a JSON file named "my_theme.json" containing a theme
+description.
+

examples/bundle.json

+{
+    "modules": {
+        "ui": [
+            "core",
+            "widget",
+            "mouse",
+            "position",
+            "draggable",
+            "resizable",
+            "selectable",
+            "sortable",
+            "accordion",
+            "autocomplete",
+            "button",
+            "dialog",
+            "slider",
+            "tabs",
+            "datepicker",
+            "progressbar"
+        ],
+        "effects": [
+            "core",
+            "blind",
+            "bounce",
+            "clip",
+            "drop",
+            "explode",
+            "fade",
+            "fold",
+            "highlight",
+            "pulsate",
+            "scale",
+            "shake",
+            "slide",
+            "transfer"
+        ]
+    },
+    "version": "1.8.16",
+    "theme": {
+        "scope": "",
+        "name": "custom-theme"
+    }
+}

examples/themes/black-tie.json

+{
+    "hover": {
+        "text": "ffffff", 
+        "border": "000000", 
+        "background": {
+            "color": "1c1c1c", 
+            "opacity": "55", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "overlay": {
+        "opacity": "30", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "40", 
+            "texture": "04_highlight_hard.png"
+        }
+    }, 
+    "default": {
+        "text": "e3e3e3", 
+        "border": "777777", 
+        "background": {
+            "color": "111111", 
+            "opacity": "40", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "ededed"
+    }, 
+    "corners": {
+        "radius": "4px"
+    }, 
+    "content": {
+        "text": "222222", 
+        "border": "cccccc", 
+        "background": {
+            "color": "f9f9f9", 
+            "opacity": "100", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "222222"
+    }, 
+    "header": {
+        "text": "eeeeee", 
+        "border": "a3a3a3", 
+        "background": {
+            "color": "333333", 
+            "opacity": "8", 
+            "texture": "08_diagonals_thick.png"
+        }, 
+        "icon": "bbbbbb"
+    }, 
+    "error": {
+        "text": "ffffff", 
+        "border": "9e0505", 
+        "background": {
+            "color": "cd0a0a", 
+            "opacity": "45", 
+            "texture": "06_inset_hard.png"
+        }, 
+        "icon": "ffcf29"
+    }, 
+    "active": {
+        "text": "222222", 
+        "border": "cccccc", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "65", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "222222"
+    }, 
+    "highlight": {
+        "text": "363636", 
+        "border": "ffde2e", 
+        "background": {
+            "color": "ffeb80", 
+            "opacity": "55", 
+            "texture": "06_inset_hard.png"
+        }, 
+        "icon": "4ca300"
+    }, 
+    "shadow": {
+        "opacity": "20", 
+        "top": "-8px", 
+        "thickness": "8px", 
+        "cornerRadius": "8px", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "50", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "left": "-8px"
+    }, 
+    "font": {
+        "family": "Verdana, Arial, sans-serif", 
+        "weight": "normal", 
+        "size": "1.1em"
+    }
+}

examples/themes/blitzer.json

+{
+    "hover": {
+        "text": "111111", 
+        "border": "cdd5da", 
+        "background": {
+            "color": "f6f6f6", 
+            "opacity": "100", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "cc0000"
+    }, 
+    "overlay": {
+        "opacity": "40", 
+        "background": {
+            "color": "a6a6a6", 
+            "opacity": "65", 
+            "texture": "09_dots_small.png"
+        }
+    }, 
+    "default": {
+        "text": "004276", 
+        "border": "d8dcdf", 
+        "background": {
+            "color": "eeeeee", 
+            "opacity": "100", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "cc0000"
+    }, 
+    "corners": {
+        "radius": "6px"
+    }, 
+    "content": {
+        "text": "333333", 
+        "border": "eeeeee", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "75", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "cc0000"
+    }, 
+    "header": {
+        "text": "ffffff", 
+        "border": "e3a1a1", 
+        "background": {
+            "color": "cc0000", 
+            "opacity": "15", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "error": {
+        "text": "2e2e2e", 
+        "border": "cc0000", 
+        "background": {
+            "color": "f3d8d8", 
+            "opacity": "75", 
+            "texture": "08_diagonals_thick.png"
+        }, 
+        "icon": "cc0000"
+    }, 
+    "active": {
+        "text": "cc0000", 
+        "border": "eeeeee", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "65", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "cc0000"
+    }, 
+    "highlight": {
+        "text": "444444", 
+        "border": "fcd3a1", 
+        "background": {
+            "color": "fbf8ee", 
+            "opacity": "55", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "004276"
+    }, 
+    "shadow": {
+        "opacity": "10", 
+        "top": "-8px", 
+        "thickness": "8px", 
+        "cornerRadius": "8px", 
+        "background": {
+            "color": "333333", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "-8px"
+    }, 
+    "font": {
+        "family": "Arial,sans-serif", 
+        "weight": "bold", 
+        "size": "1.1em"
+    }
+}

examples/themes/cupertino.json

+{
+    "hover": {
+        "text": "0070a3", 
+        "border": "74b2e2", 
+        "background": {
+            "color": "e4f1fb", 
+            "opacity": "100", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "2694e8"
+    }, 
+    "overlay": {
+        "opacity": "80", 
+        "background": {
+            "color": "eeeeee", 
+            "opacity": "90", 
+            "texture": "08_diagonals_thick.png"
+        }
+    }, 
+    "default": {
+        "text": "2779aa", 
+        "border": "aed0ea", 
+        "background": {
+            "color": "d7ebf9", 
+            "opacity": "80", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "3d80b3"
+    }, 
+    "corners": {
+        "radius": "6px"
+    }, 
+    "content": {
+        "text": "362b36", 
+        "border": "dddddd", 
+        "background": {
+            "color": "f2f5f7", 
+            "opacity": "100", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "72a7cf"
+    }, 
+    "header": {
+        "text": "222222", 
+        "border": "aed0ea", 
+        "background": {
+            "color": "deedf7", 
+            "opacity": "100", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "72a7cf"
+    }, 
+    "error": {
+        "text": "ffffff", 
+        "border": "cd0a0a", 
+        "background": {
+            "color": "cd0a0a", 
+            "opacity": "15", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "active": {
+        "text": "ffffff", 
+        "border": "2694e8", 
+        "background": {
+            "color": "3baae3", 
+            "opacity": "50", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "highlight": {
+        "text": "363636", 
+        "border": "f9dd34", 
+        "background": {
+            "color": "ffef8f", 
+            "opacity": "25", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "2e83ff"
+    }, 
+    "shadow": {
+        "opacity": "30", 
+        "top": "-7px", 
+        "thickness": "7px", 
+        "cornerRadius": "8px", 
+        "background": {
+            "color": "000000", 
+            "opacity": "70", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "left": "-7px"
+    }, 
+    "font": {
+        "family": "Lucida Grande, Lucida Sans, Arial, sans-serif", 
+        "weight": "bold", 
+        "size": "1.1em"
+    }
+}

examples/themes/dark-hive.json

+{
+    "hover": {
+        "text": "ffffff", 
+        "border": "0b93d5", 
+        "background": {
+            "color": "003147", 
+            "opacity": "33", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "overlay": {
+        "opacity": "80", 
+        "background": {
+            "color": "5c5c5c", 
+            "opacity": "50", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "eeeeee", 
+        "border": "444444", 
+        "background": {
+            "color": "222222", 
+            "opacity": "35", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "cccccc"
+    }, 
+    "corners": {
+        "radius": "6px"
+    }, 
+    "content": {
+        "text": "ffffff", 
+        "border": "555555", 
+        "background": {
+            "color": "000000", 
+            "opacity": "25", 
+            "texture": "14_loop.png"
+        }, 
+        "icon": "cccccc"
+    }, 
+    "header": {
+        "text": "ffffff", 
+        "border": "333333", 
+        "background": {
+            "color": "444444", 
+            "opacity": "44", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "error": {
+        "text": "111111", 
+        "border": "ffb73d", 
+        "background": {
+            "color": "ffc73d", 
+            "opacity": "40", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "a83300"
+    }, 
+    "active": {
+        "text": "ffffff", 
+        "border": "26b3f7", 
+        "background": {
+            "color": "0972a5", 
+            "opacity": "20", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "222222"
+    }, 
+    "highlight": {
+        "text": "2e7db2", 
+        "border": "cccccc", 
+        "background": {
+            "color": "eeeeee", 
+            "opacity": "80", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "4b8e0b"
+    }, 
+    "shadow": {
+        "opacity": "60", 
+        "top": "-7px", 
+        "thickness": "7px", 
+        "cornerRadius": "8px", 
+        "background": {
+            "color": "cccccc", 
+            "opacity": "30", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "-7px"
+    }, 
+    "font": {
+        "family": "Verdana, Arial, sans-serif", 
+        "weight": "normal", 
+        "size": "1.1em"
+    }
+}

examples/themes/default-theme.json

+{
+    "font": {
+        "family": "Verdana,Arial,sans-serif",
+        "weight": "normal",
+        "size": "1.1em"
+    },
+    "corners": {
+        "radius": "4px"
+    },
+    "header": {
+        "background": {
+            "color": "cccccc",
+            "texture": "03_highlight_soft.png",
+            "opacity": "75"
+        },
+        "border": "aaaaaa",
+        "text": "222222",
+        "icon": "222222"
+    },
+    "content": {
+        "background": {
+            "color": "ffffff",
+            "texture": "01_flat.png",
+            "opacity": "75"
+        },
+        "border": "aaaaaa",
+        "text": "222222",
+        "icon": "222222"
+    },
+    "default": {
+        "background": {
+            "color": "e6e6e6",
+            "texture": "02_glass.png",
+            "opacity": "75"
+        },
+        "border": "d3d3d3",
+        "text": "555555",
+        "icon": "888888"
+    },
+    "hover": {
+        "background": {
+            "color": "dadada",
+            "texture": "02_glass.png",
+            "opacity": "75"
+        },
+        "border": "999999",
+        "text": "212121",
+        "icon": "454545"
+    },
+    "active": {
+        "background": {
+            "color": "ffffff",
+            "texture": "02_glass.png",
+            "opacity": "65"
+        },
+        "border": "aaaaaa",
+        "text": "212121",
+        "icon": "454545"
+    },
+    "highlight": {
+        "background": {
+            "color": "fbf9ee",
+            "texture": "02_glass.png",
+            "opacity": "55"
+        },
+        "border": "fcefa1",
+        "text": "363636",
+        "icon": "2e83ff"
+    },
+    "error": {
+        "background": {
+            "color": "fef1ec",
+            "texture": "05_inset_soft.png",
+            "opacity": "95"
+        },
+        "border": "cd0a0a",
+        "text": "cd0a0a",
+        "icon": "cd0a0a"
+    },
+    "overlay": {
+        "background": {
+            "color": "aaaaaa",
+            "texture": "01_flat.png",
+            "opacity": "0"
+        },
+        "opacity": "30"
+    },
+    "shadow": {
+        "background": {
+            "color": "aaaaaa",
+            "texture": "01_flat.png",
+            "opacity": "0"
+        },
+        "opacity": "30",
+        "thickness": "8px",
+        "top": "8px",
+        "left": "8px",
+        "cornerRadius": "8px"
+    }
+}

examples/themes/dot-luv.json

+{
+    "hover": {
+        "text": "ffffff", 
+        "border": "222222", 
+        "background": {
+            "color": "00498f", 
+            "opacity": "40", 
+            "texture": "09_dots_small.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "overlay": {
+        "opacity": "30", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "ffffff", 
+        "border": "333333", 
+        "background": {
+            "color": "333333", 
+            "opacity": "20", 
+            "texture": "09_dots_small.png"
+        }, 
+        "icon": "9ccdfc"
+    }, 
+    "corners": {
+        "radius": "4px"
+    }, 
+    "content": {
+        "text": "d9d9d9", 
+        "border": "000000", 
+        "background": {
+            "color": "111111", 
+            "opacity": "20", 
+            "texture": "12_gloss_wave.png"
+        }, 
+        "icon": "9ccdfc"
+    }, 
+    "header": {
+        "text": "f6f6f6", 
+        "border": "0b3e6f", 
+        "background": {
+            "color": "0b3e6f", 
+            "opacity": "15", 
+            "texture": "08_diagonals_thick.png"
+        }, 
+        "icon": "98d2fb"
+    }, 
+    "error": {
+        "text": "ffffff", 
+        "border": "cd0a0a", 
+        "background": {
+            "color": "a32d00", 
+            "opacity": "30", 
+            "texture": "09_dots_small.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "active": {
+        "text": "75abff", 
+        "border": "096ac8", 
+        "background": {
+            "color": "292929", 
+            "opacity": "40", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "00498f"
+    }, 
+    "highlight": {
+        "text": "ffffff", 
+        "border": "052f57", 
+        "background": {
+            "color": "0b58a2", 
+            "opacity": "30", 
+            "texture": "10_dots_medium.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "shadow": {
+        "opacity": "30", 
+        "top": "-8px", 
+        "thickness": "8px", 
+        "cornerRadius": "8px", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "-8px"
+    }, 
+    "font": {
+        "family": "Arial, sans-serif", 
+        "weight": "bold", 
+        "size": "1.3em"
+    }
+}

examples/themes/eggplant.json

+{
+    "hover": {
+        "text": "734d99", 
+        "border": "d1c5d8", 
+        "background": {
+            "color": "eae6ea", 
+            "opacity": "100", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "734d99"
+    }, 
+    "overlay": {
+        "opacity": "80", 
+        "background": {
+            "color": "eeeeee", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "665874", 
+        "border": "dcd9de", 
+        "background": {
+            "color": "dcd9de", 
+            "opacity": "100", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "8d78a5"
+    }, 
+    "corners": {
+        "radius": "6px"
+    }, 
+    "content": {
+        "text": "ffffff", 
+        "border": "7e7783", 
+        "background": {
+            "color": "3d3644", 
+            "opacity": "30", 
+            "texture": "12_gloss_wave.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "header": {
+        "text": "ffffff", 
+        "border": "231d2b", 
+        "background": {
+            "color": "30273a", 
+            "opacity": "25", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "a8a3ae"
+    }, 
+    "error": {
+        "text": "ffffff", 
+        "border": "994d53", 
+        "background": {
+            "color": "994d53", 
+            "opacity": "55", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "ebccce"
+    }, 
+    "active": {
+        "text": "ffffff", 
+        "border": "7e7783", 
+        "background": {
+            "color": "5f5964", 
+            "opacity": "45", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "454545"
+    }, 
+    "highlight": {
+        "text": "333333", 
+        "border": "ffdb1f", 
+        "background": {
+            "color": "fafafa", 
+            "opacity": "55", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "8d78a5"
+    }, 
+    "shadow": {
+        "opacity": "60", 
+        "top": "-4px", 
+        "thickness": "4px", 
+        "cornerRadius": "0px", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "-4px"
+    }, 
+    "font": {
+        "family": "Lucida Grande, Lucida Sans, Arial, sans-serif", 
+        "weight": "bold", 
+        "size": "1.1em"
+    }
+}

examples/themes/excite-bike.json

+{
+    "hover": {
+        "text": "ffffff", 
+        "border": "2293f7", 
+        "background": {
+            "color": "2293f7", 
+            "opacity": "26", 
+            "texture": "08_diagonals_thick.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "overlay": {
+        "opacity": "30", 
+        "background": {
+            "color": "e6b900", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "ffffff", 
+        "border": "ffffff", 
+        "background": {
+            "color": "1484e6", 
+            "opacity": "22", 
+            "texture": "08_diagonals_thick.png"
+        }, 
+        "icon": "fcdd4a"
+    }, 
+    "corners": {
+        "radius": "3px"
+    }, 
+    "content": {
+        "text": "222222", 
+        "border": "aaaaaa", 
+        "background": {
+            "color": "eeeeee", 
+            "opacity": "100", 
+            "texture": "06_inset_hard.png"
+        }, 
+        "icon": "0a82eb"
+    }, 
+    "header": {
+        "text": "e69700", 
+        "border": "cccccc", 
+        "background": {
+            "color": "f9f9f9", 
+            "opacity": "100", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "5fa5e3"
+    }, 
+    "error": {
+        "text": "ffffff", 
+        "border": "e69700", 
+        "background": {
+            "color": "e69700", 
+            "opacity": "20", 
+            "texture": "08_diagonals_thick.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "active": {
+        "text": "ffffff", 
+        "border": "e69700", 
+        "background": {
+            "color": "e69700", 
+            "opacity": "20", 
+            "texture": "08_diagonals_thick.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "highlight": {
+        "text": "333333", 
+        "border": "ffffff", 
+        "background": {
+            "color": "c5ddfc", 
+            "opacity": "25", 
+            "texture": "07_diagonals_small.png"
+        }, 
+        "icon": "0b54d5"
+    }, 
+    "shadow": {
+        "opacity": "20", 
+        "top": "6px", 
+        "thickness": "0px", 
+        "cornerRadius": "3px", 
+        "background": {
+            "color": "e69700", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "6px"
+    }, 
+    "font": {
+        "family": "segoe ui, Arial, sans-serif", 
+        "weight": "bold", 
+        "size": "1.1em"
+    }
+}

examples/themes/flick.json

+{
+    "hover": {
+        "text": "ffffff", 
+        "border": "0073ea", 
+        "background": {
+            "color": "0073ea", 
+            "opacity": "25", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "overlay": {
+        "opacity": "80", 
+        "background": {
+            "color": "eeeeee", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "0073ea", 
+        "border": "dddddd", 
+        "background": {
+            "color": "f6f6f6", 
+            "opacity": "100", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "666666"
+    }, 
+    "corners": {
+        "radius": "2px"
+    }, 
+    "content": {
+        "text": "444444", 
+        "border": "dddddd", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "75", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "ff0084"
+    }, 
+    "header": {
+        "text": "444444", 
+        "border": "dddddd", 
+        "background": {
+            "color": "dddddd", 
+            "opacity": "50", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "0073ea"
+    }, 
+    "error": {
+        "text": "222222", 
+        "border": "ff0084", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "55", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "ff0084"
+    }, 
+    "active": {
+        "text": "ff0084", 
+        "border": "dddddd", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "65", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "454545"
+    }, 
+    "highlight": {
+        "text": "444444", 
+        "border": "cccccc", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "55", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "0073ea"
+    }, 
+    "shadow": {
+        "opacity": "60", 
+        "top": "-4px", 
+        "thickness": "4px", 
+        "cornerRadius": "0px", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "-4px"
+    }, 
+    "font": {
+        "family": "Helvetica, Arial, sans-serif", 
+        "weight": "bold", 
+        "size": "1.1em"
+    }
+}

examples/themes/hot-sneaks.json

+{
+    "hover": {
+        "text": "212121", 
+        "border": "999999", 
+        "background": {
+            "color": "ccd232", 
+            "opacity": "75", 
+            "texture": "07_diagonals_small.png"
+        }, 
+        "icon": "454545"
+    }, 
+    "overlay": {
+        "opacity": "80", 
+        "background": {
+            "color": "f7f7ba", 
+            "opacity": "85", 
+            "texture": "11_white_lines.png"
+        }
+    }, 
+    "default": {
+        "text": "333333", 
+        "border": "93c3cd", 
+        "background": {
+            "color": "93c3cd", 
+            "opacity": "50", 
+            "texture": "07_diagonals_small.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "corners": {
+        "radius": "4px"
+    }, 
+    "content": {
+        "text": "2c4359", 
+        "border": "aaaaaa", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "75", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "c02669"
+    }, 
+    "header": {
+        "text": "e1e463", 
+        "border": "2c4359", 
+        "background": {
+            "color": "35414f", 
+            "opacity": "35", 
+            "texture": "09_dots_small.png"
+        }, 
+        "icon": "e1e463"
+    }, 
+    "error": {
+        "text": "ffffff", 
+        "border": "ff6b7f", 
+        "background": {
+            "color": "ff3853", 
+            "opacity": "50", 
+            "texture": "07_diagonals_small.png"
+        }, 
+        "icon": "ffeb33"
+    }, 
+    "active": {
+        "text": "ffffff", 
+        "border": "ff6b7f", 
+        "background": {
+            "color": "db4865", 
+            "opacity": "40", 
+            "texture": "07_diagonals_small.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "highlight": {
+        "text": "363636", 
+        "border": "b4d100", 
+        "background": {
+            "color": "ffff38", 
+            "opacity": "80", 
+            "texture": "10_dots_medium.png"
+        }, 
+        "icon": "88a206"
+    }, 
+    "shadow": {
+        "opacity": "20", 
+        "top": "8px", 
+        "thickness": "10px", 
+        "cornerRadius": "5px", 
+        "background": {
+            "color": "ba9217", 
+            "opacity": "75", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "8px"
+    }, 
+    "font": {
+        "family": "Gill Sans,Arial,sans-serif", 
+        "weight": "bold", 
+        "size": "1.2em"
+    }
+}

examples/themes/humanity.json

+{
+    "hover": {
+        "text": "a46313", 
+        "border": "f5ad66", 
+        "background": {
+            "color": "f5f0e5", 
+            "opacity": "100", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "f08000"
+    }, 
+    "overlay": {
+        "opacity": "30", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "75", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "3f3731", 
+        "border": "cdc3b7", 
+        "background": {
+            "color": "ede4d4", 
+            "opacity": "70", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "f08000"
+    }, 
+    "corners": {
+        "radius": "6px"
+    }, 
+    "content": {
+        "text": "1e1b1d", 
+        "border": "e0cfc2", 
+        "background": {
+            "color": "f4f0ec", 
+            "opacity": "100", 
+            "texture": "05_inset_soft.png"
+        }, 
+        "icon": "c47a23"
+    }, 
+    "header": {
+        "text": "ffffff", 
+        "border": "d49768", 
+        "background": {
+            "color": "cb842e", 
+            "opacity": "25", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "error": {
+        "text": "592003", 
+        "border": "f8893f", 
+        "background": {
+            "color": "fee4bd", 
+            "opacity": "65", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "ff7519"
+    }, 
+    "active": {
+        "text": "b85700", 
+        "border": "e0cfc2", 
+        "background": {
+            "color": "f4f0ec", 
+            "opacity": "100", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "f35f07"
+    }, 
+    "highlight": {
+        "text": "060200", 
+        "border": "d9bb73", 
+        "background": {
+            "color": "f5f5b5", 
+            "opacity": "75", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "cb672b"
+    }, 
+    "shadow": {
+        "opacity": "30", 
+        "top": "-8px", 
+        "thickness": "8px", 
+        "cornerRadius": "8px", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "75", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "-8px"
+    }, 
+    "font": {
+        "family": "Helvetica,Arial,sans-serif", 
+        "weight": "normal", 
+        "size": "1.1em"
+    }
+}

examples/themes/le-frog.json

+{
+    "hover": {
+        "text": "ffffff", 
+        "border": "8bd83b", 
+        "background": {
+            "color": "4eb305", 
+            "opacity": "50", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "overlay": {
+        "opacity": "30", 
+        "background": {
+            "color": "444444", 
+            "opacity": "15", 
+            "texture": "08_diagonals_thick.png"
+        }
+    }, 
+    "default": {
+        "text": "ffffff", 
+        "border": "45930b", 
+        "background": {
+            "color": "4ca20b", 
+            "opacity": "60", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "corners": {
+        "radius": "10px"
+    }, 
+    "content": {
+        "text": "ffffff", 
+        "border": "72b42d", 
+        "background": {
+            "color": "285c00", 
+            "opacity": "10", 
+            "texture": "05_inset_soft.png"
+        }, 
+        "icon": "72b42d"
+    }, 
+    "header": {
+        "text": "ffffff", 
+        "border": "3f7506", 
+        "background": {
+            "color": "3a8104", 
+            "opacity": "33", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "error": {
+        "text": "2b2b2b", 
+        "border": "fad000", 
+        "background": {
+            "color": "ffdc2e", 
+            "opacity": "95", 
+            "texture": "08_diagonals_thick.png"
+        }, 
+        "icon": "cd0a0a"
+    }, 
+    "active": {
+        "text": "ffffff", 
+        "border": "72b42d", 
+        "background": {
+            "color": "285c00", 
+            "opacity": "30", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "highlight": {
+        "text": "363636", 
+        "border": "f9dd34", 
+        "background": {
+            "color": "fbf5d0", 
+            "opacity": "55", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "4eb305"
+    }, 
+    "shadow": {
+        "opacity": "30", 
+        "top": "4px", 
+        "thickness": "0px", 
+        "cornerRadius": "4px", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "07_diagonals_small.png"
+        }, 
+        "left": "4px"
+    }, 
+    "font": {
+        "family": "Lucida Grande, Lucida Sans, Arial, sans-serif", 
+        "weight": "normal", 
+        "size": "1.1em"
+    }
+}

examples/themes/mint-choc.json

+{
+    "hover": {
+        "text": "baec7e", 
+        "border": "9c947c", 
+        "background": {
+            "color": "44372c", 
+            "opacity": "30", 
+            "texture": "12_gloss_wave.png"
+        }, 
+        "icon": "add978"
+    }, 
+    "overlay": {
+        "opacity": "30", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "9bcc60", 
+        "border": "695444", 
+        "background": {
+            "color": "1c160d", 
+            "opacity": "20", 
+            "texture": "12_gloss_wave.png"
+        }, 
+        "icon": "9bcc60"
+    }, 
+    "corners": {
+        "radius": "4px"
+    }, 
+    "content": {
+        "text": "ffffff", 
+        "border": "9c947c", 
+        "background": {
+            "color": "201913", 
+            "opacity": "10", 
+            "texture": "05_inset_soft.png"
+        }, 
+        "icon": "222222"
+    }, 
+    "header": {
+        "text": "e3ddc9", 
+        "border": "695649", 
+        "background": {
+            "color": "453326", 
+            "opacity": "25", 
+            "texture": "12_gloss_wave.png"
+        }, 
+        "icon": "e3ddc9"
+    }, 
+    "error": {
+        "text": "ffffff", 
+        "border": "5f391b", 
+        "background": {
+            "color": "5f391b", 
+            "opacity": "15", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "f1fd86"
+    }, 
+    "active": {
+        "text": "e3ddc9", 
+        "border": "9c947c", 
+        "background": {
+            "color": "201913", 
+            "opacity": "20", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "e3ddc9"
+    }, 
+    "highlight": {
+        "text": "ffffff", 
+        "border": "add978", 
+        "background": {
+            "color": "619226", 
+            "opacity": "20", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "shadow": {
+        "opacity": "30", 
+        "top": "-8px", 
+        "thickness": "8px", 
+        "cornerRadius": "8px", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "-8px"
+    }, 
+    "font": {
+        "family": "Segoe UI, Helvetica, Arial, sans-serif", 
+        "weight": "bold", 
+        "size": "1.1em"
+    }
+}

examples/themes/overcast.json

+{
+    "hover": {
+        "text": "599fcf", 
+        "border": "bbbbbb", 
+        "background": {
+            "color": "f8f8f8", 
+            "opacity": "100", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "3383bb"
+    }, 
+    "overlay": {
+        "opacity": "80", 
+        "background": {
+            "color": "eeeeee", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "3383bb", 
+        "border": "cccccc", 
+        "background": {
+            "color": "eeeeee", 
+            "opacity": "60", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "70b2e1"
+    }, 
+    "corners": {
+        "radius": "6px"
+    }, 
+    "content": {
+        "text": "333333", 
+        "border": "aaaaaa", 
+        "background": {
+            "color": "c9c9c9", 
+            "opacity": "50", 
+            "texture": "05_inset_soft.png"
+        }, 
+        "icon": "999999"
+    }, 
+    "header": {
+        "text": "444444", 
+        "border": "bbbbbb", 
+        "background": {
+            "color": "dddddd", 
+            "opacity": "35", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "999999"
+    }, 
+    "error": {
+        "text": "ffffff", 
+        "border": "c0402a", 
+        "background": {
+            "color": "c0402a", 
+            "opacity": "55", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "fbc856"
+    }, 
+    "active": {
+        "text": "ffffff", 
+        "border": "999999", 
+        "background": {
+            "color": "999999", 
+            "opacity": "75", 
+            "texture": "06_inset_hard.png"
+        }, 
+        "icon": "454545"
+    }, 
+    "highlight": {
+        "text": "444444", 
+        "border": "ffffff", 
+        "background": {
+            "color": "eeeeee", 
+            "opacity": "55", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "3383bb"
+    }, 
+    "shadow": {
+        "opacity": "60", 
+        "top": "-4px", 
+        "thickness": "4px", 
+        "cornerRadius": "0pxdow=0px", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "-4px"
+    }, 
+    "font": {
+        "family": "Trebuchet MS, Helvetica, Arial, sans-serif", 
+        "weight": "bold", 
+        "size": "1.1em"
+    }
+}

examples/themes/pepper-grinder.json

+{
+    "hover": {
+        "text": "ffffff", 
+        "border": "654b24", 
+        "background": {
+            "color": "654b24", 
+            "opacity": "65", 
+            "texture": "23_fine_grain.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "overlay": {
+        "opacity": "60", 
+        "background": {
+            "color": "6e4f1c", 
+            "opacity": "20", 
+            "texture": "16_diagonal_maze.png"
+        }
+    }, 
+    "default": {
+        "text": "654b24", 
+        "border": "cbc7bd", 
+        "background": {
+            "color": "f8f7f6", 
+            "opacity": "10", 
+            "texture": "23_fine_grain.png"
+        }, 
+        "icon": "b83400"
+    }, 
+    "corners": {
+        "radius": "6px"
+    }, 
+    "content": {
+        "text": "1f1f1f", 
+        "border": "d9d6c4", 
+        "background": {
+            "color": "eceadf", 
+            "opacity": "10", 
+            "texture": "23_fine_grain.png"
+        }, 
+        "icon": "222222"
+    }, 
+    "header": {
+        "text": "453821", 
+        "border": "d4d1bf", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "15", 
+            "texture": "23_fine_grain.png"
+        }, 
+        "icon": "b83400"
+    }, 
+    "error": {
+        "text": "ffffff", 
+        "border": "681818", 
+        "background": {
+            "color": "b83400", 
+            "opacity": "68", 
+            "texture": "23_fine_grain.png"
+        }, 
+        "icon": "fbdb93"
+    }, 
+    "active": {
+        "text": "140f06", 
+        "border": "d9d6c4", 
+        "background": {
+            "color": "eceadf", 
+            "opacity": "15", 
+            "texture": "23_fine_grain.png"
+        }, 
+        "icon": "8c291d"
+    }, 
+    "highlight": {
+        "text": "3a3427", 
+        "border": "b2a266", 
+        "background": {
+            "color": "f7f3de", 
+            "opacity": "15", 
+            "texture": "23_fine_grain.png"
+        }, 
+        "icon": "3572ac"
+    }, 
+    "shadow": {
+        "opacity": "60", 
+        "top": "0", 
+        "thickness": "5px", 
+        "cornerRadius": "18px", 
+        "background": {
+            "color": "000000", 
+            "opacity": "40", 
+            "texture": "16_diagonal_maze.png"
+        }, 
+        "left": "-10px"
+    }, 
+    "font": {
+        "family": "Trebuchet MS, Tahoma, Verdana, Arial, sans-serif", 
+        "weight": "bold", 
+        "size": "1.1em"
+    }
+}

examples/themes/redmond.json

+{
+    "hover": {
+        "text": "1d5987", 
+        "border": "79b7e7", 
+        "background": {
+            "color": "d0e5f5", 
+            "opacity": "75", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "217bc0"
+    }, 
+    "overlay": {
+        "opacity": "30", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "2e6e9e", 
+        "border": "c5dbec", 
+        "background": {
+            "color": "dfeffc", 
+            "opacity": "85", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "6da8d5"
+    }, 
+    "corners": {
+        "radius": "5px"
+    }, 
+    "content": {
+        "text": "222222", 
+        "border": "a6c9e2", 
+        "background": {
+            "color": "fcfdfd", 
+            "opacity": "100", 
+            "texture": "06_inset_hard.png"
+        }, 
+        "icon": "469bdd"
+    }, 
+    "header": {
+        "text": "ffffff", 
+        "border": "4297d7", 
+        "background": {
+            "color": "5c9ccc", 
+            "opacity": "55", 
+            "texture": "12_gloss_wave.png"
+        }, 
+        "icon": "d8e7f3"
+    }, 
+    "error": {
+        "text": "cd0a0a", 
+        "border": "cd0a0a", 
+        "background": {
+            "color": "fef1ec", 
+            "opacity": "95", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "cd0a0a"
+    }, 
+    "active": {
+        "text": "e17009", 
+        "border": "79b7e7", 
+        "background": {
+            "color": "f5f8f9", 
+            "opacity": "100", 
+            "texture": "06_inset_hard.png"
+        }, 
+        "icon": "f9bd01"
+    }, 
+    "highlight": {
+        "text": "363636", 
+        "border": "fad42e", 
+        "background": {
+            "color": "fbec88", 
+            "opacity": "55", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "2e83ff"
+    }, 
+    "shadow": {
+        "opacity": "30", 
+        "top": "-8px", 
+        "thickness": "8px", 
+        "cornerRadius": "8px", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "-8px"
+    }, 
+    "font": {
+        "family": "Lucida Grande, Lucida Sans, Arial, sans-serif", 
+        "weight": "bold", 
+        "size": "1.1em"
+    }
+}

examples/themes/smoothness.json

+{
+    "hover": {
+        "text": "212121", 
+        "border": "999999", 
+        "background": {
+            "color": "dadada", 
+            "opacity": "75", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "454545"
+    }, 
+    "overlay": {
+        "opacity": "30", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "555555", 
+        "border": "d3d3d3", 
+        "background": {
+            "color": "e6e6e6", 
+            "opacity": "75", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "888888"
+    }, 
+    "corners": {
+        "radius": "4px"
+    }, 
+    "content": {
+        "text": "222222", 
+        "border": "aaaaaa", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "75", 
+            "texture": "01_flat.png"
+        }, 
+        "icon": "222222"
+    }, 
+    "header": {
+        "text": "222222", 
+        "border": "aaaaaa", 
+        "background": {
+            "color": "cccccc", 
+            "opacity": "75", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "222222"
+    }, 
+    "error": {
+        "text": "cd0a0a", 
+        "border": "cd0a0a", 
+        "background": {
+            "color": "fef1ec", 
+            "opacity": "95", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "cd0a0a"
+    }, 
+    "active": {
+        "text": "212121", 
+        "border": "aaaaaa", 
+        "background": {
+            "color": "ffffff", 
+            "opacity": "65", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "454545"
+    }, 
+    "highlight": {
+        "text": "363636", 
+        "border": "fcefa1", 
+        "background": {
+            "color": "fbf9ee", 
+            "opacity": "55", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "2e83ff"
+    }, 
+    "shadow": {
+        "opacity": "30", 
+        "top": "-8px", 
+        "thickness": "8px", 
+        "cornerRadius": "8px", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "0", 
+            "texture": "01_flat.png"
+        }, 
+        "left": "-8px"
+    }, 
+    "font": {
+        "family": "Verdana,Arial,sans-serif", 
+        "weight": "normal", 
+        "size": "1.1em"
+    }
+}

examples/themes/south-street.json

+{
+    "hover": {
+        "text": "ffffff", 
+        "border": "327E04", 
+        "background": {
+            "color": "67b021", 
+            "opacity": "25", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "ffffff"
+    }, 
+    "overlay": {
+        "opacity": "90", 
+        "background": {
+            "color": "2b2922", 
+            "opacity": "15", 
+            "texture": "05_inset_soft.png"
+        }
+    }, 
+    "default": {
+        "text": "ffffff", 
+        "border": "327E04", 
+        "background": {
+            "color": "459e00", 
+            "opacity": "15", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "eeeeee"
+    }, 
+    "corners": {
+        "radius": "6px"
+    }, 
+    "content": {
+        "text": "312e25", 
+        "border": "dfd9c3", 
+        "background": {
+            "color": "f5f3e5", 
+            "opacity": "100", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "808080"
+    }, 
+    "header": {
+        "text": "433f38", 
+        "border": "d4ccb0", 
+        "background": {
+            "color": "ece8da", 
+            "opacity": "100", 
+            "texture": "12_gloss_wave.png"
+        }, 
+        "icon": "847e71"
+    }, 
+    "error": {
+        "text": "cd5c0a", 
+        "border": "e3a345", 
+        "background": {
+            "color": "ffedad", 
+            "opacity": "95", 
+            "texture": "03_highlight_soft.png"
+        }, 
+        "icon": "cd0a0a"
+    }, 
+    "active": {
+        "text": "459e00", 
+        "border": "d4ccb0", 
+        "background": {
+            "color": "fafaf4", 
+            "opacity": "100", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "icon": "8DC262"
+    }, 
+    "highlight": {
+        "text": "363636", 
+        "border": "e8e1b5", 
+        "background": {
+            "color": "fcf0ba", 
+            "opacity": "55", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "8DC262"
+    }, 
+    "shadow": {
+        "opacity": "20", 
+        "top": "-12px", 
+        "thickness": "12px", 
+        "cornerRadius": "10px", 
+        "background": {
+            "color": "cccccc", 
+            "opacity": "95", 
+            "texture": "04_highlight_hard.png"
+        }, 
+        "left": "-12px"
+    }, 
+    "font": {
+        "family": "segoe ui, Arial, sans-serif", 
+        "weight": "bold", 
+        "size": "1.1em"
+    }
+}

examples/themes/start.json

+{
+    "hover": {
+        "text": "026890", 
+        "border": "448dae", 
+        "background": {
+            "color": "79c9ec", 
+            "opacity": "75", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "056b93"
+    }, 
+    "overlay": {
+        "opacity": "30", 
+        "background": {
+            "color": "aaaaaa", 
+            "opacity": "75", 
+            "texture": "01_flat.png"
+        }
+    }, 
+    "default": {
+        "text": "ffffff", 
+        "border": "77d5f7", 
+        "background": {
+            "color": "0078ae", 
+            "opacity": "45", 
+            "texture": "02_glass.png"
+        }, 
+        "icon": "e0fdff"
+    }, 
+    "corners": {
+        "radius": "5px"
+    }, 
+    "content": {
+        "text": "222222", 
+        "border": "a6c9e2",