Coupling view and style is not the problem, it's the *goal*.
Right now, you can't declare CSS in the place where you use it: you need to
create a separate stylesheet with references, use those references in your
view and then put the stylesheet somewhere.
This is not how we write all the rest
It seams that you have driven yourself into a corner because of a series of
choices that you made with your code architecture.
The best way forward is to refactor you code so that you decouple the style
from the view.
You should be able to get both of them from the model independently.
Once
I am experimenting with view functions that produce both html content and
the style that should be applied to that markup, as in
myView : Model -> ( Html msg, List CssRule )
So far, I have been rendering the above by creating a