Skip to content

The ontology tables read like a table - #540

Merged
WaylandYang merged 3 commits into
devfrom
fix/the-tables-paginate
Sep 9, 2026
Merged

The ontology tables read like a table#540
WaylandYang merged 3 commits into
devfrom
fix/the-tables-paginate

Conversation

@WaylandYang

@WaylandYang WaylandYang commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Three things wrong with the table view, all found in one pass.

It drew every row

916 classes, 1102 properties, 599 attributes, all built into the DOM at once. You
can feel it in the scrollbar, and only the dozen rows on screen are being read.

The rail's class tree has paginated from the start (14 per page). The tables now do
the same, using the Pager and pageSlice already in ui/, at 50 per page. Fifty
rather than fourteen because a full-width table shows more at once.

The classes table paginates the already-flattened tree, so a page is a
contiguous run of tree order and a child is never separated from the parent above
it. The pager sits after the table rather than in a fixed footer: that area is
already a scroll region, and pinning a bar there would clip the last row.

Its skeleton was the wrong shape

The loading skeleton reused the rail's row (24px) for rows that are really 39px.
A third too short, and a column of them reads dense and wrong — visibly not the
shape of the table that is coming.

Fixed the way the rail's version already works: build it from the real Tr and
Td
, so the height comes from the components rather than a number someone typed.
The cell also needs a full line box inside it (.u-skel-line, one --text-body
line-height), because a real cell holds a line of text; without it the row is
8 + 16 + 8 instead of 8 + 22 + 8. Measured after: 38.5px against the real 39px, the
half-pixel being the row border.

A skeleton's whole job is to say what shape is coming. Saying it wrong is worse
than not saying it.

Two columns of noise

The key column is gone. accepted_answer is machine identity, not something to
read, and in a table meant for scanning the library sideways — which classes have no
instances, which properties have no domain — it just restates the name on every row.
It is still in the detail panel, where one term is discussed at a time.

The filter's / icon is gone. By convention that hints "press slash to focus",
but the shortcut is only bound on the Docs page, so here it advertised a key that
does nothing. The rail's identical filter on the same page uses a magnifier; now
both do.

Checked

  • pnpm build clean; style guard 46/46.
  • Against the 916-class knowledge base:
action result
classes, first page 1–50 of 916, 50 rows, starts at Technology
next 51–100 of 916, starts at BefriendAction
third page 101–150 of 916
switch to Properties 1–50 of 1102, from the top
filter to one match pager hides itself
clear the filter back to 1–50 of 1102
headers NAME / Parent class / Cannot also be / Instances / Attributes
skeleton row 38.5px against a real row's 39px

🤖 Generated with Claude Code

@WaylandYang WaylandYang changed the title The ontology tables draw a page at a time The ontology tables read like a table Sep 9, 2026
WaylandYang and others added 3 commits September 9, 2026 21:41
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
…othing

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
@WaylandYang
WaylandYang force-pushed the fix/the-tables-paginate branch from 058d56c to 914ddea Compare September 9, 2026 13:41
@WaylandYang
WaylandYang merged commit 2bc9036 into dev Sep 9, 2026
4 checks passed
@WaylandYang
WaylandYang deleted the fix/the-tables-paginate branch September 9, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant