Skip to content

Let users customize themes with URL-encoded styles #82

@a-trost

Description

@a-trost

It would be great if you could customize themes with data stored as URL parameters. Similar to how Cloudinary/Imgix do their image transforms with an image API, themes could have a Theme API where everything gets added to the URL.

Customized URLs might look something like this:
https://showmy.chat/c/TrostCodes?theme=frontend-horse&text-color=03ae92&bg-color=03ae92&mod-bg-color=03fa20&font-size=16&font-family=Roboto

These could be defined per-theme with a JSON object, providing labels, types (color, text, select, integer), etc.

Then in an interface, you'd be able to customize the different properties. Here's a quick mockup of how I see this potentially looking:

detailed mockup of a Customize Theme UI, with fields to edit colors, font sizes, families, and more.

If you paste an old URL in, the values would load and you'd be able to easily customize once again.

We'd need to decide if some themes just have small customization options, or arent' customizable at all. Or if there are standard values across all themes, like font-family or text-color. I worry that would limit the potential creativity of future themes, so letting each theme create its own properties feels like the most flexible way, if not a tad chaotic.

This would also address #2

Caveat

This idea assumes demand for people to deeply customize their themes.
It might be better for the time being to focus on building out more theme styles that people like, rather than putting the onus on users to create a style they like through this method.

@BenDMyers did mention that you could get around this URL encoding bit by adding custom styles in OBS which is a great workaround.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions