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

Table

Bounded tabular data: muted header, hairline rows, widget cells.

For the comparison-shaped data a screen actually shows. Cells are arbitrary widgets (Table) or plain strings (TableText); column weights via Widths. Long collections belong in ListView.

Installation

Use the module import (the default), or own the source: lotusui add vendors the component into your app and lotusui update keeps the copy mergeable — see Registry.

Go
go get github.com/ikaito-com/lotusui

# or vendor the source into your app:
go run github.com/ikaito-com/lotusui/cmd/lotusui add table

Usage

Go
lotusui.TableText(th, lotusui.TableOpts{
	Caption: "A list of recent invoices.",
	Footer:  []string{"Total", "", "", "$750.00"},
},
	[]string{"Invoice", "Status", "Method", "Amount"},
	[][]string{
		{"INV-001", "Paid", "Credit card", "$250.00"},
		{"INV-002", "Pending", "Transfer", "$150.00"},
	})

Actions

A quiet menu per row — a ghost trigger aligned to the row's end, its panel end-aligned so it stays on screen.

Go
menu.Variant = lotusui.ButtonGhost
menu.Align = lotusui.PopoverEnd
menu.Layout(th, gtx, "⋯",
	lotusui.DropdownMenuItem(th, &edit, "Edit", false),
	lotusui.DropdownMenuItem(th, &dup, "Duplicate", false),
	lotusui.DropdownMenuSeparator(th),
	lotusui.DropdownMenuItem(th, &del, "Delete", true),
)

API

OptionTypeDescription
Widths[]float32Per-column flex weights; nil = equal.
Footer[]stringA final emphasized row (totals) above the caption.
CaptionstringMuted caption under the table.

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