GradienceTeam / Community

Share your Presets
GNU General Public License v3.0
50 stars 32 forks source link

propose: accent colors and theme variants #75

Open tfuxu opened 1 year ago

tfuxu commented 1 year ago

Proposal body

Implementing theme variants and accent colors into one preset file would tremendously reduce amount of preset files needed to create a full set of themes. This proposal expects support for different theme variants from default light/dark variants, and will allow up to 12 different accent variations (this limit is made due to future UI implementations for accent selection, but may be a subject for change in future). Implementation of custom CSS for different variations should be firstly discussed before making an addition into proposal, as it might not be actually needed (users might just use defined variables from above sections to change colors in custom CSS if needed).

Example Implementation

{
    "name": "My Preset",
    "author": "<your nickname or full name>",
    "description": "This is my awesome preset. Hope you'll like it :)",
    "variables": {
        # This proposal also allows for different theme variants from default light/dark variants
        "light": {
            ...
        },
        "dark": {
            ...
        },
        "colorful": {
            ...
        },
        ...
    },
    "accents": {
        # Supports up to 12 different accent variations
        "blue": {
            "accent_color": "#1c71d8",
            "accent_bg_color": "#3584e4",
            "accent_fg_color": "#ffffff"
        },
        "green": {
            "accent_color": "#1c71d8",
            "accent_bg_color": "#3584e4",
            "accent_fg_color": "#ffffff"
        },
        "purple": {
            "accent_color": "#1c71d8",
            "accent_bg_color": "#3584e4",
            "accent_fg_color": "#ffffff"
        },
        ...
    },
    "palette": {
        "blue_": {
            "1": "#99c1f1",
            "2": "#62a0ea",
            "3": "#3584e4",
            "4": "#1c71d8",
            "5": "#1a5fb4"
        },
        "green_": {
            "1": "#8ff0a4",
            "2": "#57e389",
            "3": "#33d17a",
            "4": "#2ec27e",
            "5": "#26a269"
        },
        ...
    },
    "custom_css": {
        "gtk4": "",
        "gtk3": ""
    }
}

Edit: Added author and description properties

Additional context

The implementation of theme variants and accent colors into one preset file has been discussed previously in team chats, this proposal simply combines some of those exchanged ideas and makes them into a single implementation.

Did you read the Code of Conduct?