TypedSvg is an Elm package that makes it more pleasant to work with SVG (Scalable Vector Graphics). It is based on nphollon's original work.
TypedSvg is a work-in-progress. It intends to replace
elm-lang/svg with a fully typed and documented equivalent. However, as it stands now, there is still work to be done in covering documentation for the entire (very large) SVG spec, as well as potential re-organization work in how the public modules are presented as an API.
TL;DR this package will change
TypedSvgcontains SVG elements like
TypedSvg.Corecontains basic building blocks like
attribute, as well as the
TypedSvg.Typescontains all of the types, as well as some length type helpers like
TypedSvg.Attributescontains typed attributes like
TypedSvg.Filterscontains filter elements.
TypedSvg.Filters.Attributescontains filter element attributes.
TypedSvg.Eventscontains SVG event attributes like
import Color import Html exposing (Html) import TypedSvg exposing (circle, svg) import TypedSvg.Attributes exposing (cx, cy, fill, r, stroke, strokeWidth, viewBox) import TypedSvg.Types exposing (Paint(..), px) import TypedSvg.Core exposing (Svg) myCircle : Svg msg myCircle = circle [ cx (px 100) , cy (px 100) , r (px 30) , fill <| Paint Color.blue , strokeWidth (px 2) , stroke <| Paint <| Color.rgba 0.8 0 0 0.5 ]  main : Html msg main = svg [ viewBox 0 0 800 600 ] [ myCircle ]
TypedSvg works well in conjunction with
folkertdev/svg-path-dsl if you need a typed path domain-specific language.