dzuk-mutant / elm-css / Css.Value

A module for handling elm-css's phantom types.

You need to use this if you want to directly reference elm-css phantom type values in your own code.


type Value supports
    = Value String

A value that can be passed to a CSS property.

limeGreen : Value { supports | rgb : Supported }
limeGreen =
    rgb 0 100 44

The type variable value of { supports | rgb : Supported } is there because CSS has so many overloaded values. For example, it's important that display none and flex none both compile, yet whereas display block should compile, flex block should not. Having open records in the type variables for Value makes satisfying these overlapping constraints possible.

For convenience, there are type aliases for certain values which are often reused. Color is one of these.

limeGreen : Css.Color
limeGreen =
    rgb 0 100 44

This is structured like an opaque type but is fully exposed. This is so separate CSS modules like Css.Media can integrate with this.

unpack : Value a -> String

A helper function that unpacks a Value type.


type Supported
    = Supported

A type used to specify which properties and which values work together.