icidasset / diffuse

A music player that connects to your cloud/distributed storage.
https://diffuse.sh
Other
811 stars 68 forks source link

Basic setup for theming #427

Closed icidasset closed 1 month ago

icidasset commented 1 month ago

Basics for theming. Basically, a theme is an Elm function that takes in the UI.Types.Model and returns Html UI.Types.Msg. Themes don't have state management (yet), wanted to keep it simple to get things going. Ideally, we have themes that feel like a totally different app. Not sure if this gets us there, but we can already do a lot with this.

Easy way to get started with a theme, depend as much as possible on the command palette called Alfred. You can reuse the one from the default theme (by importing the code in your Elm module).

Currently we generate one big Tailwind CSS stylesheet based on all the Elm code. Maybe we do separate stylesheets in the future, not sure.

Closes #359