Skip to content
Protocore Design Systemv1.6.9

/// Data Display

NumberedRow

An enumerated [ NN ] row with a title, optional body, and a right-aligned meta slot.

import { NumberedRow } from "@protocore/pds";
View as Markdown

Basics

Pass an index, a title, and optional body copy as children. Each row sits under a bottom hairline, with the number rendered as a zero-padded [ NN ] bracket in column one.

01
Message committed
The source chain records the packet and emits a commit event to the verifier set.
02
Attestation gathered
A quorum of the DVN signs the payload hash; signatures are aggregated off-chain.
03
Delivered to destination
The executor submits the proof and the message is applied atomically at the endpoint.

Meta slot

The meta slot is right-aligned and accepts any node — a Tag, timestamp, or count. Use it for provenance that shouldn't compete with the title.

01
Eligibility
You must be legally permitted to operate a validator in your jurisdiction.
terms
02
Slashing conditions
Double-signing or prolonged downtime forfeits a portion of the bonded stake.
terms
03
Disclaimers
The protocol is provided on an as-is basis without warranties of any kind.
terms

Interactive rows

Give a row an href and it renders as an anchor; the whole row dims to 0.6 on hover as a CSS-only affordance (no React hover state). Ideal for changelog and index listings.

When to use it

Reach for NumberedRow when the ordinal matters — numbered terms and policy clauses, ranked results, FAQ entries, or a changelog where readers cite "item 3". The [ NN ] bracket makes the sequence scannable and quotable.

If the row is a flat record with no meaningful order (a job posting, an endpoint, a table line), use ListingRow — its columnar meta cells and trailing ↗︎ suit scannable lists better. For key/value facts with no ordering at all, use DefinitionList; for a time-ordered sequence with connective rules, use Timeline.

Usage

Do

  • Use it where the number is load-bearing — clauses, ranked items, cited FAQ entries.
  • Keep the body to roughly one measure (≤64ch) so rows stay scannable.
  • Put provenance (timestamp, tag, count) in the `meta` slot, not the title.
  • Add `href` only when the whole row navigates somewhere.

Don't

  • Don't renumber rows manually inside the title — pass `index`.
  • Don't use it for unordered records; that's ListingRow's job.
  • Don't stack interactive controls inside the meta slot of an `href` row — the whole row is already the target.
  • Don't pad ordinals inconsistently; keep one `pad` width across a set.

Accessibility

KeysAction
TabMoves focus to the row when it is interactive (has an href).
EnterActivates the row link (native anchor behavior).
  • A non-interactive row is a plain container — no role is imposed on it.
  • The `[ NN ]` bracket is decorative context; keep the meaningful label in `title` so it is read first.
  • Hover dimming is purely visual; focus-visible rings come from the base focus policy on the anchor.

NumberedRow props

PropTypeDefaultDescription
childrenReactNodeOptional secondary body copy shown under the title.
classNamestring
hrefstringWhen set, the row renders as an anchor and gains the interactive hover.
index *string | numberRow number shown as `[ NN ]` in column one. Numbers are zero-padded.
metaReactNodeRight-aligned meta slot (timestamp, tag, count…).
padnumber2Zero-pad width for a numeric index.
styleCSSProperties
title *ReactNodePrimary label for the row.

Related

  • ListingRowA scannable list row — mono title, mono meta columns, and a trailing outbound arrow; hover dims to 0.6.
  • DefinitionListA dt/dd record display — mono uppercase label beside (or above) a typed value atom.
  • TimelineA vertical event history with square tone markers on a hairline connector — mono timestamp, sans body.
  • CodeRefAn inline mono id/hash chip with middle-truncation — copy-on-click, or a link when href is set.