User themes
Users would like to customize the look of their drive app.
Current Solution
Currently we have a light and dark theme that changes based on the user's system preferences.
Preferred Solution
Not sure how to approach this. Where do we draw the line? If they define a theme, is it a fixed light or dark theme? Does a theme have to define both?
Maybe something like this ...?
accent: ...
accent_background: ...
body_background: ...
body_text: ...
subtle_text: ...
And finally, how would these themes be applied?
If we can pick an existing "theming standard" (is there such a thing???) that would be great, but also if we just well structure the CSS, for starters, then we could use convention to have:
.config/fission/apps/codes.fission.drive/mycooltheme.css <-- a global theme that the user can select. "light" and "dark" are built in, and they can copy them as a starting point.
Or folder level override:
_theme\folder.css
Probably we don't want to clutter folders like this, so:
.config/fission/apps/codes.fission.drive/ and a section in the config file:
{
"folderthemes": {
"Qm123456": "foldertheme.css"
}
}
I'm not too concerned about dark / light right now -- that's a property of the theme, and we can just lean into the CSS emerging standard https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme
OK, after having typed that out...let's go back to our css-zen-garden roots and support CSS-only themes. Global, not folder level overrides right now.
In order to use a custom theme, a user edits a fissiondrive.json file that's in a global config folder. Wherever y'all think is the best spot for that.