Review the board check
Example board / Check run 042
Select a result to identify the corresponding board objects.
Supplied board-check violations with severity and status filters, object and location details, and host-confirmed selection and resolution actions.
Example board / Check run 042
Select a result to identify the corresponding board objects.
Three ways in. They share one source, so the pixels match whichever you pick.
npm install @noorddev/vlak-react
// once, next to your app's root
import "@noorddev/vlak-react/css";
import { DesignRuleResults } from "@noorddev/vlak-react";Precompiled React and one stylesheet. No compiler to configure. Per-component imports work too: @noorddev/vlak-react/components/design-rule-results.
npx @noorddev/vlak-cli add design-rule-results
The StyleX leaf lands in components/vlak/ with its dependencies, for your own compiler to own. See StyleX.
npx shadcn add https://vlak.dev/r/design-rule-results.json
The same registry item, installed by shadcn's CLI.
<link rel="stylesheet" href="node_modules/@noorddev/vlak/css/vlak.css" />
No React. Link vlak.css and use the markup and classes below.
import { DesignRuleResults } from "@noorddev/vlak-react";
<DesignRuleResults label="Reported design rules" runLabel="Synthetic check run 042" violations={[
{ id: "clearance-1", title: "Copper clearance", severity: "error", status: "open", rule: "Supplied clearance rule", layer: "Front copper", net: "Supply", location: { x: 24.5, y: 18, unit: "mm" }, objects: ["J1 pad 1", "Track 17"] },
{ id: "label-2", title: "Silkscreen overlap", severity: "warning", status: "excluded", layer: "Front silkscreen", objects: ["J1 reference", "J1 outline"] },
]} />Supplied rule-check outcomes with local or controlled filters and host-confirmed actions.
| Prop | Type | Default | Description |
|---|---|---|---|
labelrequired | ReactNode | ||
violationsrequired | readonly DesignRuleViolation[] | ||
filter | DesignRuleFilter | ||
defaultFilter | DesignRuleFilter | initial | |
onFilterChange | (filter: DesignRuleFilter) => void | ||
selectedId | string | null | ||
onSelect | (id: string) => void | Requests selection in the host board viewer; selectedId remains host-owned. | |
onResolve | (id: string) => void | Requests resolution of an open result. Confirmed status never changes locally. | |
runLabel | ReactNode | ||
description | ReactNode |
Also accepts Omit<FieldsetHTMLAttributes<HTMLFieldSetElement>, "onSelect">.
| Keys | Does |
|---|---|
| Tab | Moves through the Vlak filter selectors and available action buttons. |
| Arrow keys, Home, End | Navigates a focused filter's choices. |
| Enter, Space | Chooses a filter or requests the focused selection or resolution action. |
| Escape | Closes an open filter selector. |
<fieldset class="rs-design-rule-results"><legend class="rs-design-rule-results-legend">Reported design rules</legend><p class="rs-design-rule-results-note">Synthetic check run 042</p><ul class="rs-design-rule-results-list"><li class="rs-design-rule-results-item"><p class="rs-design-rule-results-title">Copper clearance</p><dl class="rs-design-rule-results-properties"><div><dt class="rs-design-rule-results-term">Severity</dt><dd class="rs-design-rule-results-detail">Error</dd></div><div><dt class="rs-design-rule-results-term">Confirmed status</dt><dd class="rs-design-rule-results-detail">Open</dd></div><div><dt class="rs-design-rule-results-term">Layer</dt><dd class="rs-design-rule-results-detail">Front copper</dd></div><div><dt class="rs-design-rule-results-term">Location</dt><dd class="rs-design-rule-results-detail">X: 24.5, Y: 18; unit: mm</dd></div></dl></li></ul></fieldset>