LinnaeUI

A minimal, composable application UI framework.

Fundamental particles

Containers

Manage the display of child elements, handling sizing, positioning and scroll.

Content

Visible elements, handling their internal sizing.

Interactions

Interaction elements take one child, and gives it user interaction capability.

All interaction elements support focus, which makes it sensitive to keyboard input. A click or tap focuses an element, and focus may be moved between neighbors using Tab or other keys. All behavior elements also support hover so that child elements may provide visual feedback of cursor position.

# Here is a datepicker component in LinnaeUI

def datepicker():
  stack
    boxgraphic
    editable(focused -> dropdownShown)
      text YYYY-MM-DD
    dropdown(shown <- dropdownShown)
      grid
        ...

# Here we are unidirectionally binding the
# "focused" state property of the editable
# to the "shown" property of the dropdown. 

Atoms

Molecules

Patterns