danielnarey/elm-modular-ui

A friendly UI development framework based on Bulma CSS


Keywords
bulma-css, elm-lang, functional-programming, pipeline, ui-components, user-interface
License
BSD-2-Clause
Install
elm-package install danielnarey/elm-modular-ui 1.0.2

Documentation

Modular UI for Elm

A friendly UI development framework based on Bulma CSS

New: Live example code at http://danielnarey.com/elm-modular-ui

  • Modular UI is a framework for building a modern user interface in Elm that abstracts out a lot of the details of the underlying HTML and CSS. It also provides a set of helpers for updating an element's classes, attributes, styles, and mouse/keyboard event handlers.
  • Modular UI is partially inspired by and designed to be used with the Bulma CSS framework (docs, github). Many of the constructor functions apply Bulma element classes to provide default styling that will give your layout and controls a clean, modern look. Bulma modifier classes can be used for easy customization, and available modifiers for each element class are listed in the package documentation. Alternatively, you can use the class names indicated in the documentation to write custom CSS for your application.
  • Modular UI element constructors automate the implementation ARIA web accessibility features where appropriate. The package also includes a set of helpers for adding common ARIA attributes where needed.
  • Modular UI is backed by my Semantic Dom package, which provides an interface to Elm VirtualDom. In particular, Modular UI constructors and modifiers rely on Semantic Dom's Element module, which makes it possible to construct elements as updatable Elm records before they are rendered to unmodifiable VirtualDom nodes.

Versions

  • 1.0.0: Complete with respect to features; in-browser testing is ongoing
  • 1.0.1: Documentation fixes; minor change in event handling for Ui.Input.float
  • 1.0.2: Bug fixes for delete button and SVG icon constructors

Package Modules

Basics

Interactive Elements

Content Elements

Customizing Appearance and Interaction