Dense software

How Polyxd handles B2B interfaces: data tables, bulk actions, navigation, record pages and density.

Consumer apps and internal tools need different amounts of information on screen. A payment screen shows one amount; an accounts list shows 1,284 rows, each with seven fields, that people scan, sort, select and act on in bulk.

Polyxd handles both with the same principle: the model states meaning, the renderer decides density. The generator never sets a row height. It says "this is a list of records with these columns, people can select several and act on them", and Design Direction plus the renderer decide how tightly that is packed on each screen.

Density#

Design Direction's profile.density sets row heights and spacing:

Density Row height For
compact 32px Data-heavy tools on pointer surfaces
comfortable 40px Most B2B software (the default)
spacious 48px Consumer apps, touch

Touch targets keep their minimum whatever the density: inside a dense row, WCAG 2.2's 24px minimum applies, and on phones rows never fall below 44px. The verifier checks this on every render.

Tables#

Table is the component most B2B software is made of. Beyond rows and columns it carries:

On phones a table becomes a list of rows: the entity, the key fields in one line, and the status. Seven columns don't fit a phone, and a horizontally scrolling table is worse than a list. The per-row action keeps the same name at every width, so an agent's steps don't depend on screen size.

The shell around the page#

Record pages#

What stays the same#

Everything the rest of the spec guarantees still applies. Bulk actions go through registered capabilities with their risk levels, so "Cancel 3 subscriptions" still needs a confirmation. The verifier checks contrast, target size, reading order and agent tasks on dense screens exactly as it does on a payment screen.

Polyxd is an early preview. Found something unclear? It will get better with your feedback.