Layers is a C++ theme framework that empowers users and gives them full control over app appearances.

class ComboBox :
    public LDefinable, public Widget
{
protected:
    LAttribute* corner_radii
        { new LAttribute("Corner Radii", 5.0) }

    LAttribute* fill
        { new LAttribute("Fill", "#001122") };

    LAttribute* text_color
        { new LAttribute("Text Color", "#ffffff") };
    
    void paint(Widget* widget);
};
{
    "ComboBox": {
        "attributes": {
            "Corner Radii": 5.0
            "Fill": "L:Theme/Tertiary",
            "Text Color": "L:Theme/Foreground"
        },
        "children": {
            "DropMenu": {
                // ...
            }
        }
    }
}
{
    "Blue": {
        "attributes": {
            "Foreground": "#3cf9ff",
            "Gradient": [
                "0:#363f57",
                "1:#424e66"
            ],
            "Primary": "#333c4f",
            "Secondary": "#282f41",
            "Tertiary": "#1a2436"
        }
    }
}
{
    "Color Dialog": {
        "attributes": {
            "Border.Fill": "L:rainbow_gradient"
        }
    },
    "Gradient Dialog": {
        "attributes": {
            "Border.Fill": "L:rainbow_gradient"
        }
    },
    "Main Window": {
        "attributes": {
            "Border.Fill": "L:rainbow_gradient"
        }
    }
}

Layers data is stored externally in JSON format on the user's system. This means that it can be manipulated by external software, such as Nebula.