lotusui the ikaito design language for Gio — desktop, mobile, web
GitHub

Layout

The readable page column, scrolling, titles, and virtualized lists.

Screen scaffolding: LayoutPage caps content at a readable width and centers it; Scrollable makes mixed content reachable; ListView is the virtualized list for real data. How those pieces (plus Wrap, SimpleGrid, Tabs) reflow when the window changes size is the Responsive guide.

The page column

LayoutPage is the readable column: content capped at 920dp, centered, padded — the difference between a window and a designed page.

Go
lotusui.LayoutPage(th, gtx, func(gtx C) D {
	return content(gtx)
})

TitleWithIcons

A lotusui extension: an in-content / section title with trailing action icons. TopBar is screen chrome (centered title, optional leading); TitleWithIcons is content chrome (start-aligned LabelTitle, trailing icons). Empty icons → title alone.

Go
lotusui.TitleWithIcons(th, "Documents",
	lotusui.SVGIconButton(th, &add, lotusui.IconAdd, 20, false),
)

Two trailing icons

Go
lotusui.TitleWithIcons(th, "Documents",
	lotusui.SVGIconButton(th, &add, lotusui.IconAdd, 20, false),
	lotusui.SVGIconButton(th, &more, lotusui.IconSettings, 20, false),
)

Long lists

For a screen's mixed content, Scrollable; the moment a collection can grow with data, the virtualized ListView component.

API

OptionTypeDescription
TitleWithIcons(th, title, icons…)widgetLabelTitle + trailing icons (Space.XS between icons only).
TopBar(th, title, leading)widgetScreen chrome — centered title, optional leading.

Every demo on this site is the real Go component compiled to WebAssembly — one gallery app, one bundle, addressed by URL hash.