data-display-and-selection — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited data-display-and-selection (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Complex data collections — products, files, users, orders, tasks — have no single correct view. Different tasks call for different views. Browsing benefits from grid; comparing details benefits from list or table; bulk management benefits from a dense table with mass actions. Give users the choice.
Offer multiple views when the data has both visual and detailed dimensions.
| View | Best for | When to default |
|---|---|---|
| Grid | Visual items: products, images, files, cards | When items are visually distinct and browsing is the primary task |
| List | Moderate detail: tasks, emails, articles | When a key piece of text or metadata drives selection |
| Table | Dense data: orders, reports, user management | When multiple columns of data must be compared |
View toggle placement: top-right of the collection, adjacent to sort/filter controls. Use icon buttons with tooltips (grid, list, table). Persist the user's choice in localStorage.
[Filter ▾] [Sort ▾] [⊞ Grid] [☰ List] [⊟ Table]On mobile, collapse to the view that works best for the content — grid for visual items, list for text. Do not offer a view toggle on small screens unless both views are genuinely usable.
Checkboxes are small targets. Requiring users to hit a 16×16px checkbox to select a row is unnecessary friction — especially on touch devices.
Default: the entire row or card is the selection target.
.row {
cursor: pointer;
background: var(--color-surface);
transition: background 100ms ease-out;
}
.row:hover {
background: var(--color-grey-50);
}
.row.selected {
background: var(--color-primary-subtle); /* subtle brand tint */
}For cards in a grid, the entire card is the selection area — not just a checkbox in the corner.
Selected items communicate their state through a background colour shift — not just a checkbox tick.
Background: --color-primary-subtle — the brand primary colour heavily desaturated and lightened to ~5–8% opacity. Perceptible but not jarring.
Left border accent (optional): A 3px left border in --color-primary reinforces the selected state for list and table rows.
Checkbox: Checked and filled with --color-primary. The checkbox is a secondary signal, not the primary one.
.row.selected {
background: var(--color-primary-subtle); /* e.g. hsl(224, 21%, 94%) */
border-left: 3px solid var(--color-primary);
}Do not use a high-contrast or saturated background for selection — it competes with content and makes dense tables hard to read.
When one or more items are selected, mass actions appear. They disappear when nothing is selected.
Placement: A contextual toolbar that appears at the top of the collection (replacing or supplementing the standard toolbar) when selection is active.
[✓ 3 selected] [Delete] [Archive] [Export] [Move to ▾] [× Clear]Select all: A checkbox in the table header selects all items on the current page. A secondary action "Select all 247" extends to the full dataset.
[☑ Select all on page] → [Select all 247 results]Filter (3)Table column headers stick to the top when scrolling vertically — users must always be able to see what each column means.
For wide tables that scroll horizontally, the first column (row identifier — name, ID) sticks to the left.
Per-row actions (Edit, Delete, View) appear on hover in the rightmost column. Do not show them at rest — they add visual noise.
[Name] [Status] [Date] [Amount] ← at rest
[Name] [Status] [Date] [Amount] [Edit] [⋯] ← on hoverFor enterprise data tables: allow columns to be resized by dragging the header border, and reordered by dragging the header. Persist the layout.
--color-primary-subtle)?~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.