PaackEng/paack-ui/6.2.0

NOTE: the latest version is 7.23.0

UI.Radio

Accessible and uniform-styled implementation of a radio buttons.

Radio.group
    { label = "Pick a favorite animal:"
    , onSelectMsg = Msg.SelectRadio
    , idPrefix = "radio-animal"
    }
    |> Radio.withSelected (Just Model.Felines)
    |> Radio.withButtons
        [ Radio.button Model.Felines "Felines"
        , Radio.button Model.Canines "Canines"
        , Radio.button Model.Birds "Birds"
        ]
    |> Radio.renderElement renderConfig

Types

type RadioGroup option msg

The RadioGroup option msg type is used for describing the component for later rendering.

type RadioButton option

The RadioButton option describes an individual radiobutton

Constructors

group : Properties option msg -> RadioGroup option msg

Starts an empty radio group. The first argument is the label used for accessibility. The second is the message triggered when there is a selection.

someRadioGroup =
    Radio.group "Pick a card" Msg.CardPicking
button : option -> String -> RadioButton option

A radio button and an element of a radio group.

Radio.button Model.OrangeJuice "Orange Juice"

Group management

List (RadioButton option)
-> RadioGroup option msg
-> RadioGroup option msg

Replaces a group's list of radio buttons.

Radio.withButtons
    [ Radio.button Model.OrangeJuice "Orange Juice"
    , Radio.button Model.Lemonade "Lemonade"
    , Radio.button Model.SodaSoftDrink "Soda"
    ]
    someRadioGroup
withSelected : Maybe option -> RadioGroup option msg -> RadioGroup option msg

Define one element as selected.

Radio.withSelected (Just Model.DoubleCheddar)

Width

Describes a compatible width.

withWidth : RadioWidth -> RadioGroup option msg -> RadioGroup option msg

Radio.withWidth changes the width of the group.

Radio.withWidth Radio.widthFull someRadioGroup

All the radio buttons' width will fill the container.

The buttons will have the exact width to fit its contents.

NOTE: This is the default value.

Direction

Describes the direction in which the radio group will be rendered.

When displaying, arrange the buttons in horizontal lines.

When displaying, arrange the buttons in a column.

withDirection : Direction -> RadioGroup option msg -> RadioGroup option msg

Radio.withDirection determines whether the radio group's items are arranged horizontally or vertically.

Radio.withDirection Radio.horizontal someRadioGroup

Size

Describes the size of the radio buttons

Small radio buttons (default value)

Medium radio buttons

withSize : RadioSize -> RadioGroup option msg -> RadioGroup option msg

Radio.withSize changes the size of the radio buttons

Radio.withSize Radio.sizeMD someRadioGroup

Rendering

renderElement : RenderConfig -> RadioGroup option msg -> Element msg

End of the builder's life. The result of this function is a ready-to-insert Elm UI's Element.