Gesso
Examples

Issues

A Linear-style issue tracker assembled only from kit items.

A Linear-style issue list built from Record list, Sidebar, Page header, Filter chip, Command, Context menu, and Sheet. Nothing in it is local beyond the routes and the data.

Issues

4 open

GES-191
Record list keyboard
a11y
Gesso
Sep 8
GES-204
Due date picker
forms
Gesso
No due
GES-184
Command palette
kit
Gesso
Sep 4
GES-198
Sidebar icon collapse
chrome
Gesso
Aug 28

Rows are records, not cells

The schema is fixed in the demo file, and users do not add columns. Each issue is a RecordRow whose status, labels, project, assignee, and due date are slots, and the display menu turns slots on and off without touching the data. Labels are category-colored badges and the project is a Chip, so a row reads as a line of facts rather than a spreadsheet row. Editing happens in a sheet rather than in place, which is the opposite trade from Editable grid.

Selecting is not opening

Record list keeps the two apart. ↑ and ↓, or j and k, move the selection, and Enter or a click opens the issue in a sheet with its title, description, assignee, and due date. A status group with no issues stays in the list and shows an Empty state, so the shape of the board holds while it fills.

More than one way in

Status changes from the row's context menu or from the command palette on ⌘K, and the assignee from the palette or the sheet's Combobox. The palette follows context: with an issue open it offers Set status and Assign for that issue, and it always offers Create issue and Jump to.

Built from

shadcn add @gesso/record-list @gesso/sidebar @gesso/page-header @gesso/filter-chip @gesso/command @gesso/context-menu @gesso/sheet @gesso/field @gesso/input @gesso/textarea @gesso/combobox @gesso/date-picker @gesso/hover-card @gesso/avatar @gesso/badge @gesso/kbd @gesso/scroll-area @gesso/category-colors

On this page