Section heading

The words that say what a run of rows is about: a day, a folder, an artist. It sits on the rows below it.

Part of a window with two section headings, Today and This week, each over two rows.

Use it when a list falls into groups the reader would name: the day a file arrived, the folder a result is in, the artist of a run of songs. A heading is not a title for the page, which is the page header's, and a list of one group needs none.

Anatomy

A heading above two rows, enlarged, with numbered callouts on the words and on the rows below.
The heading at 1.4 times its size, over its rows.
  1. WordsOne line of text at body size, strong, in the main ink. No count, no icon, no line under it.
  2. RowsThe heading sits on the rows below it: the words end 12 pixels above the foot of the heading, which is where the first row starts.

Sizes

A heading at one and a half times its size with its height of 50 pixels, 16 pixels from the left and 12 pixels from the words to the row below.
The heading at 1.5 times its size.
PartValue
Height50
Text17 pixels (body), strong weight (600), the main ink
From the left16 pixels, in line with a row's symbol
Below the words12 pixels

A heading has no states. It cannot be selected, pressed or focused, and it is not a stop for Tab. A row list skips headings when the arrow keys move, and a picture grid draws its own over each day.

Accessibility

Writing

Name the group as the reader would: "Today", "This week", "Tuesday 22 October", the artist's name. Use the same form down the whole list: days stay days. Do not repeat what the rows say, and do not add a count; counts belong in the view bar.

Do and don't

Two headings, Today and Tuesday, each over the files from that day.
DoName the group: a day, a folder, an artist.
A heading over each row that repeats the name of the file below it.
Don'tPut a heading over every row. A heading that says what its one row says is noise, and the list reads as twice as long.

Code

import Tacit.Kit

Column {
    SectionHeading { text: "Today" }
    ListRow {
        width: parent.width; glyph: "description"
        name: "notes-2026.md"; facts: ["44 kB", "11:20"]
    }
    SectionHeading { text: "Tuesday" }
    ListRow {
        width: parent.width; glyph: "description"
        name: "Lease agreement.pdf"; facts: ["2.2 MB", "14:40"]
    }
}
PropertyWhat it does
textThe words

A row list can draw its headings itself: set section.property and section.delegate, as a ListView takes them. A picture grid uses a heading for each group of its pictures.

Experimental, in Tacit.Kit 0.1. Changed 25 October 2026: first version.