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.IconButton

Icon buttons allow users to take actions and make choices with a single tap.

Table of Contents

Resources

Basic Usage

import Material.IconButton as IconButton


type Msg
    = Clicked


main =
    IconButton.iconButton
        (IconButton.config |> IconButton.setOnClick Clicked)
        (IconButton.icon "favorite")

Configuration

type alias Config msg =
Config msg

Icon button configuration

config : Config msg

Default icon button configuration

Configuration Options

setOnClick : msg -> Config msg -> Config msg

Specify a message when the user clicks on an icon button

setDisabled : Bool -> Config msg -> Config msg

Specify whether an icon button is disabled

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

setLabel : Maybe String -> Config msg -> Config msg

Specify an icon button's HTML5 arial-label attribute

setAttributes : List (Attribute msg) -> Config msg -> Config msg

Specify additional attributes

Icon Button

iconButton : Config msg -> Icon -> Html msg

Icon button view function

Disabled Icon Button

To disable an icon button, set its setDisabled configuration option to True. Disabled icon buttons cannot be interacted with and have no visual interaction effect.

IconButton.iconButton
    (IconButton.config |> IconButton.setDisabled True)
    (IconButton.icon "favorite")

Labeled Icon Button

To set the HTML attribute arial-label of a icon button, use its setLabel configuration option.

IconButton.iconButton
    (IconButton.config
        |> IconButton.setLabel (Just "Add to favorites")
    )
    (IconButton.icon "favorite")

Icon Button with Custom Icon

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

type alias Icon =
Icon

Icon type

icon : String -> Icon

Material Icon

IconButton.iconButton IconButton.config
    (IconButton.icon "favorite")
(List (Attribute Never) -> List (Html Never) -> Html Never)
-> List (Attribute Never)
-> List (Html Never)
-> Icon

Custom icon

IconButton.iconButton IconButton.config
    (IconButton.customIcon Html.i
        [ class "fab fa-font-awesome" ]
        []
    )
svgIcon : List (Attribute Never) -> List (Html Never) -> Icon

SVG icon

IconButton.iconButton IconButton.config
    (IconButton.svgIcon
        [ Svg.Attributes.viewBox "…" ]
        [-- …
        ]
    )

Focus an Icon Button

You may programatically focus an icon button by assigning an id attribute to it and use Browser.Dom.focus.

IconButton.iconButton
    (IconButton.config
        |> IconButton.setAttributes
            [ Html.Attributes.id "my-icon-button" ]
    )
    (IconButton.icon "wifi")