PURE · Design Standards
Home Security Posture
PURE Design Standards · proposal for review

One table, done right — everywhere.

Today every list on the site is hand-rolled, so search, sort, and select behave differently page to page. This is the proposal for a single, modular PURE Table standard — your rules baked in, every feature a toggle, configured per surface from an admin. Review it, tell me what to change, and I'll extract the component and roll it site-wide.
Awaiting your review — nothing rolled out yet

1 The rules — your standard, baked in

Your four calls become automatic behavior. Each is a default the Table Studio admin can still override per surface.
Search appears past 3×3

More than 3 columns and 3 rows? A search box shows automatically. Small tables stay clean.

auto · > 3 × 3
Sort appears past 2×2

Any table bigger than 2×2 gets click-to-sort headers — 3-state, ascending descending off.

auto · > 2 × 2
Select all + multi-select

A header checkbox selects everything (with an indeterminate middle state); shift-click selects a range.

single & multi
Selected choose an action

The moment a row is checked, an action bar slides in: Copy, Export, Share, Tag, Archive.

bulk actions

2 The table — live, try everything

A real working PURE Table over sample listings. Sort a header, search, check rows to reveal the action bar, page through, switch density. The control deck below turns each feature on and off — that is the per-surface admin.
Surface configTable Studio · listings

3 My recommendation

You asked whether we need two table types, or one modular table that can have or not-have features. Here's the call.

One component, two presets — not two codebases

A single pure-table.js where every capability is a module you switch on or off. "Two types" becomes two saved presets of the same component — so there's one thing to maintain, one set of bugs to fix, one a11y pass.

Data Grid heavy

Search · sort · multi-select · bulk bar · pagination · density · column show/hide. For registries & admin lists — Site Control, Boneyard, Security Posture, Audit Log, Products, Rate Limits.

Simple List light

Sort only, compact, zebra, no selection. For read-only summaries on dashboards, drawers, and embeds where bulk actions would be noise.

Per-surface config, stored in pure_table_configs
Each surface gets a row keyed by its name. The control deck above writes exactly this object. Admins (and the Brand Manager for tokens) edit it in Table Studio — role-gated, audited, reversible.
Live-bound + fail-soft
Reads via PureLive.rpc with the Sample badge until Code wires the data — same pattern as Security Posture & Boneyard.
Accessible + responsive by default
Real <table> semantics, aria-sort, keyboard select, and auto-collapse to stacked cards on phones — built in, not per-page.
First adopters on approval
Rate-limit editor (270) Security Posture Site Control registry Boneyard Audit Log Marketplace products People / leads

Live config — this surface

The object the deck is building right now. This is what a pure_table_configs row looks like.


      
What I need from you: a thumbs-up on “one modular component + two presets,” plus any change to the four default rules (the 3×3 / 2×2 thresholds are tunable). On your nod I'll (1) extract pure-table.js, (2) build the Table Studio admin over pure_table_configs (Code owns the table + RPCs per a short spec I'll write), and (3) adopt it on the rate-limit editor first, then roll the registries onto it. Everything stays additive and reversible — no existing page changes until its table is swapped in and checked.