monlovesmango / astral

Nostr client made with Quasar
https://astral.ninja
MIT License
100 stars 38 forks source link

FR: User created shareable themes. #89

Open SuperPhatArrow opened 1 year ago

SuperPhatArrow commented 1 year ago

Feature Request: User Created Shareable Themes

The idea here is that users can share the themes that they create with their followers (and the world!)

Introduction

In the settings currently, there is a list of 10 preset themes for the user to choose from. This feature request proposes that this theme library be user editable and that user created custom themes can be saved in the library and shared as a nostr note, which astral clients can recognise from the format and offer users that receive the note a way to add it to their theme library. This could allow designers and other creative people skilled in colour to showcase their creations and perhaps even receive value-for-value tips for their work.

Suggested Sharing Format

This is just my suggestion, no problem if you have a better way!

Add my Astral theme to your theme Library: { "Supernova": ["#ffffff", "#fefefe", "#eeeeee", "#dddddd"] }

Not a real theme, lol! The array values are in the same order as they appear in app at the moment, (primary, secondary, accent, background) and can be any CSS colour string (eg hex, rgb, rgba, hsl, etc). The users of other clients will see the message as it appears above and is kind of free astral advertising and buzz, but how astral displays it to it's users could be quite different. It could replace the JSON with, for example, the four colours in the theme or, even, if you want to get fancy, a small mock-up of what the theme would look like demonstrating the four colours in elements they will be used in.

Most importantly, astral would insert a button that would add the theme to the library, perhaps even a followup button if they do to apply the theme immediately.

Maybe it would be preferable to have the button first load the theme for 5 seconds before reverting back, in case some joker make the theme unusable by making everything black!

Another suggestion would be to extend the JSON a little to include details about the author:

{
  "name": "Supernova",
  "colors": ["#ffffff", "#fefefe", "#eeeeee", "#dddddd"],
  "creator": "npub1....",
  "lnurl": "nosternova24@walletofsatoshi.com"
}
monlovesmango commented 1 year ago

wow you are reading my mind! I do have an idea on how to implement but I need time to stand up my media server integration.

my idea is that you can pull in all your follow's themes to choose from in settings, when you go to other users profiles you see their theme (if they have one set), and if you see someone elses theme and like it you can set it as your own theme. if you use someone elses theme there will be metadata to indicate who the theme came from originally. something like that. what do you think?

SuperPhatArrow commented 1 year ago

Yeah that sounds great. It's a bit like myspace!

monlovesmango commented 1 year ago

thats exactly the ethos I'm going for! early web social platforms like myspace/xanga

cubical8569 commented 1 year ago

You can use something like userstyles (see userstyles.world). It will give even greater flexibility and won't require additions to nostr clients.

monlovesmango commented 1 year ago

wow those are really cool! but I think its a bit too much for astral. I don't want css to be changing everywhere, just want people to be able to update their colors. I think the more complicated the customization is the less non-technical uesrs will use it.