Skip to content

Column sizing

View as Markdown

width, minWidth, and maxWidth on table column metadata and report GridDatasetColumn values are approximate displayed-character counts. They are not CSS pixels or database length limits; Sapporta turns them into font-relative grid tracks.

Use width for a fixed column. Prefer minWidth when a column may use extra space, and add maxWidth when long text should stop growing.

  • Title or description: 4080
  • Project, person, or lookup name: 2448
  • Status, priority, or other short controlled value: 1224
  • Date: 1216
  • Timestamp: 1822
  • Labels or tags: 2440

Size for the formatted value people need to scan, not the longest value the database can store. A date cell reads 2026-08-23 and a timestamp cell reads 2026-08-23 16:38, so size for those rather than for the stored 2026-08-23T11:08:00Z. Leave numeric, date, and timestamp report columns unsized when their built-in defaults are sufficient: each preset carries its own width, and schema-declared sizing wins where it is present.

Table metadata:

columns: {
title: { minWidth: 64 },
assignee_id: { label: "Assignee", minWidth: 32 },
status: { minWidth: 20 },
}

Report dataset columns:

columns: [
{ id: "title", label: "Task", kind: "text", minWidth: 80 },
{ id: "project", label: "Project", kind: "text", minWidth: 40 },
{ id: "status", label: "Status", kind: "text", minWidth: 20 },
{ id: "dueDate", label: "Due date", kind: "date" },
{ id: "updatedAt", label: "Updated", kind: "timestamp" },
]