aforemny/material-components-web-elm/6.0.0

NOTE: the latest version is 9.1.0

Rerouted (regenerated, verified). Same repository and tag, but GitHub now builds the zip with different bytes, so it no longer matches the SHA-1 package.elm-lang.org recorded. The Lamdera package server serves a copy recovered from https://github.com/aforemny/material-components-web-elm.

What we checked: Tag 6.0.0 is still on github.com/aforemny/material-components-web-elm; its commit fa5f16f0eddc is from 2020-10-08 13:01 UTC, before the version was published (2020-10-08 13:03 UTC); every file Elm uses matches a copy in a Lamdera package cache from 2021-02-13, from before the change; elm.json is byte-identical to package.elm-lang.org's; the exposed modules match docs.json; the zip's SHA-1 is not the published one (GitHub's zip no longer comes out byte for byte the same), so the contents were checked instead.

The Lamdera compiler uses this copy and prints a one-line notice saying so. elm itself fails to download this version.

Details · package.elm-lang.org's zip: https://github.com/aforemny/material-components-web-elm/zipball/6.0.0/

Material.TextField.Icon

Text field icons can either be leading or trailing icons, and can be purely cosmetic or can be interacted with.

Table of Contents

Resources

Basic Usage

import Material.TextField as TextField
import Material.TextField.Icon as TextFieldIcon


type Msg
    = Interacted


main =
    TextField.filled
        (TextField.config
            |> TextField.setLeadingIcon
                (Just (TextFieldIcon.icon "favorite"))
            |> TextField.setTrailingIcon
                (Just (TextFieldIcon.icon "favorite")
                    |> TextFieldIcon.setOnInteraction
                        Interacted
                )
        )

Icon

This library natively supports Material Icons. However, you may also include SVG or custom icons such as FontAwesome.

type alias Icon msg =
Icon msg

Icon type

icon : String -> Icon msg

Material Icon

TextField.filled
    (TextField.config
        |> TextField.setLeadingIcon
            (Just (TextField.icon "favorite"))
    )

Custom Icon

(List (Attribute msg) -> List (Html msg) -> Html msg)
-> List (Attribute msg)
-> List (Html msg)
-> Icon msg

Custom icon

TextField.raised
    (TextField.config
        |> TextField.setLeadingIcon
            (Just
                (TextField.customIcon Html.i
                    [ class "fab fa-font-awesome" ]
                    []
                )
            )
    )

SVG Icon

svgIcon : List (Attribute msg) -> List (Svg msg) -> Icon msg

SVG icon

TextField.raised
    (TextField.config
        |> TextField.setLeadingIcon
            (Just
                (TextField.svgIcon
                    [ Svg.Attributes.viewBox "…" ]
                    [-- …
                    ]
                )
            )
    )

Interactive Icon

To be able to interact with an icon, set its setOnInteraction configuration option to the message that should be dispatched.

setOnInteraction : msg -> Icon msg -> Icon msg

Specify a message when the user interacts with the icon

TextFieldIcon.icon "favorite"
    |> TextFieldIcon.setOnInteraction Interacted

Disabled Icon

To disable an icon, set its setDisabled configuration option to True.

setDisabled : Bool -> Icon msg -> Icon msg

Specify an icon to be disabled

Disabled icons cannot be interacted with and have no visual interaction effect.

TextFieldIcon.icon "favorite"
    |> TextFieldIcon.setDisabled True