1. Home
  2. /
  3. Elm-ui
  4. /
  5. Elm UI Button Click Example

Elm UI Button Click Example - Elm-ui Typing CST Test

Loading…

Elm UI Button Click Example — Elm-ui Code

Changes label text when button is clicked.

module Main exposing (main)

import Browser
import Element exposing (..)
import Element.Events exposing (onClick)

-- MODEL

type alias Model =
	{ clicked : Bool }

initialModel : Model
initialModel =
	{ clicked = False }

-- UPDATE

type Msg = Click

update : Msg -> Model -> Model
update msg model =
	case msg of
		Click -> { model | clicked = True }

-- VIEW

view : Model -> Element Msg
view model =
	column [ spacing 10, padding 20, alignCenter ]
		[ text (if model.clicked then "Button Clicked!" else "Click the Button")
		, button [ onClick Click ] (text "Click Me")
		]

-- MAIN

main = Browser.sandbox { init = initialModel, update = update, view = view }

Elm-ui Language Guide

Elm UI is a library for building web interfaces in Elm, focusing on layout and styling in a declarative, type-safe way without relying on CSS.

Primary Use Cases

  • ▸Building web interfaces in Elm
  • ▸Creating responsive layouts without CSS
  • ▸Developing reusable UI components
  • ▸Prototyping web app designs quickly
  • ▸Type-safe styling and spacing

Notable Features

  • ▸Declarative layout syntax
  • ▸Completely typed in Elm
  • ▸Composable UI boxes
  • ▸Supports responsive and flexible layouts
  • ▸Eliminates manual CSS for many tasks

Origin & Creator

Elm UI was created by the Elm community, with Evan Czaplicki (creator of Elm) influencing its design for declarative UI patterns.

Industrial Note

Elm UI is used primarily in Elm applications to replace CSS for layout management, providing strong type safety and predictable UI behavior.

More Elm-ui Typing Exercises

Elm UI Counter ExampleElm UI Hello WorldElm UI Toggle ExampleElm UI Input ExampleElm UI Counter with StepElm UI Color Box ExampleElm UI Progress ExampleElm UI List Example

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher