glaze/oat/sidebar
Oat documentation: https://oat.ink/components/sidebar/
Sidebar layout helpers for responsive app navigation.
Anatomy
A sidebar layout usually includes a layout wrapper, a toggle control, a
sidebar aside, and navigation content.
sidebar enables collapsible behavior on smaller screens,
while sidebar_always keeps the sidebar visible.
Recipe
import glaze/oat/sidebar
import lustre/element/html
sidebar.sidebar(html.div, [], [
sidebar.toggle([], [html.text("Menu")]),
sidebar.aside([], [sidebar.nav([], [html.text("Navigation")])]),
html.main([], [html.text("Content")]),
])
Values
pub fn aside(
attrs: List(attribute.Attribute(msg)),
children: List(element.Element(msg)),
) -> element.Element(msg)
pub fn nav(
attrs: List(attribute.Attribute(msg)),
children: List(element.Element(msg)),
) -> element.Element(msg)
pub fn sidebar(
element: fn(
List(attribute.Attribute(msg)),
List(element.Element(msg)),
) -> element.Element(msg),
attrs: List(attribute.Attribute(msg)),
children: List(element.Element(msg)),
) -> element.Element(msg)
Render a responsive sidebar layout wrapper.
Use this for layouts that collapse to a toggleable sidebar on small screens.
pub fn sidebar_always(
element: fn(
List(attribute.Attribute(msg)),
List(element.Element(msg)),
) -> element.Element(msg),
attrs: List(attribute.Attribute(msg)),
children: List(element.Element(msg)),
) -> element.Element(msg)
Render a sidebar layout that is always visible.
Use this for desktop-first layouts where the sidebar should never collapse.
pub fn toggle(
attrs: List(attribute.Attribute(msg)),
children: List(element.Element(msg)),
) -> element.Element(msg)
pub fn topnav(
attrs: List(attribute.Attribute(msg)),
children: List(element.Element(msg)),
) -> element.Element(msg)