I am unsure what your goal is, but perhaps elm-css
<https://github.com/rtfeldman/elm-css> can help you. If you want to
generate styles dynamically, it is probably best to use inline styles.
Am Montag, 5. Juni 2017 12:46:47 UTC+2 schrieb Francesco Orsenigo:
>
> 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 <style> tag inside
> the <body>: this works great but it is not compliant, so I want to find a
> way to insert the styling in the <head>.
>
> I can do this with a port, but where do I execute it?
>
> One solution would be to execute myView inside the program's update
> cycle, store the resulting Html in the model, and have a dummy program
> view function that just produces the pre-rendered html content stored in
> the model, but seems a really weird thing to do and I don't know how it
> would impact performance.
>
> update msg model =
> let
> ...
>
> ( html, style ) = myView model
> in
> ( { model | renderedView = html }, portUpdateHeaderStyle style )
>
> view model =
> model.renderedView
>
>
> The other solution would be to render everything twice, once in the
> program's view to get the html content, and another inside the update cycle
> to get the style and execute the port, but executing myView twice doesn't
> seem great for performance.
>
> Is there a better way?
>
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.