i

Paragraph

Content · researched

A block of running text.

atom

Each block is the real component from that system’s own package, in an isolated frame. They are live: hover, focus and press them. Frames are drawn on white so systems compare on one ground, and a font a system licenses only for its own site (GOV.UK’s Transport) falls back to what the system itself specifies.

Ant Design

Typography.Paragraph native: no antd 6.6.5
Variants
—
Sizes
—
States documented
disabled
Accessibility guidance
no

Renders p; supports copyable, editable, ellipsis.

2 corrected on re-read
  • builds_on_native: "yes" → "no" Rendered Typography.Paragraph is div.ant-typography, not <p>; Title gives h2, Text kbd
  • states_documented: null → ["disabled"] Typography.Paragraph API row: disabled

Carbon

absentCarbon does not ship this component. Nothing is drawn in its place.

Checked docs components list, Elements > Typography and the react and web-components directories. Body text is a type-style token set, with no paragraph component.

GOV.UK

Paragraphs (style: govuk-body) native: yes govuk-frontend 6.5.1
Variants
Lead paragraph, Body small
Sizes
govuk-body-l, govuk-body, govuk-body-s
States documented
—
Accessibility guidance
no

Checked: component index (https://design-system.service.gov.uk/components/ , 37 components), patterns index, styles index, repo tree src/govuk/components and objects, and installed govuk-frontend 6.5.1 components directory. Paragraph text is documented only as type styles (Styles > Paragraphs: govuk-body, govuk-body-l classes).

8 corrected on re-read
  • present: "absent" → "ships" Styles > Paragraphs is a documented page; core/_typography.scss ships govuk-body, -l, -s classes; no macro
  • alias_kind: null → "same" govuk-body on native <p> does the canonical job; shipped as a style, not a component
  • name_in_system: null → "Paragraphs (style: govuk-body)" Styles page "Paragraphs"
  • builds_on_native: null → "yes" Classes apply to native <p>
  • variants: null → ["Lead paragraph","Body small"] Page headings
  • sizes: null → ["govuk-body-l","govuk-body","govuk-body-s"] Classes named on the Paragraphs page (lead paragraph, default, body small)
  • a11y_documented: null → "no" No accessibility section on page
  • urls: {"docs_url":null,"code_url":null} → {"docs_url":"https://design-system.service.gov.uk/styles/paragraphs/","code_url":"https://github.com/alphagov/govuk-frontend/blob/main/packages/govuk-frontend/src/govuk/core/_typography.scss"} docs 200; blob 200

Material Web

absentMaterial Web does not ship this component. Nothing is drawn in its place.

Checked docs/components (20 component pages), the repo top-level dirs, labs/, labs/gb/components and the installed 2.5.0 package. Only type-scale styles (typography/), no text-block component.

Primer

Text contested native: partly @primer/react 38.40.1
Variants
—
Sizes
large, medium, small
States documented
—
Accessibility guidance
yes

Disagrees with index (said not shipped). Primer React Text is a span-by-default typography wrapper (as prop allows p); no dedicated paragraph component. Status ready.

Spectrum

Text contested native: yes @spectrum-web-components/button 1.12.4
Variants
serif, emphasized, strong
Sizes
XS, S, M, L, XL, XXL, XXXL
States documented
—
Accessibility guidance
unread

Implementations: S2 and v3. Index disagreement (partial): S2 Text wraps React Aria Text, which defaults to a span (elementType prop), so it is an inline text slot, not a block paragraph; the block-text job is done by the style macro and Content. No spectrum.adobe.com page, no SWC element (typography is CSS in spectrum-css). Not in installed SWC 1.12.4.

4 corrected on re-read
  • present: "ships" → "ships" Typography Body style: spectrum-css .spectrum-Body applied to p; SWC gen2 typography docs Body variant. S2/v3 Text is a span, not a paragraph
  • variants: null → ["serif","emphasized","strong"] CSS classes spectrum-Body--serif, -emphasized, -strong
  • sizes: null → ["XS","S","M","L","XL","XXL","XXXL"] CSS classes spectrum-Body--sizeXS to sizeXXXL
  • urls: {"docs_url":"https://react-spectrum.adobe.com/react-spectrum/Text.html","code_url":"https://github.com/adobe/react-spectrum/blob/main/packages/@react-spectrum/s2/exports/Text.ts"} → {"docs_url":"https://spectrum.adobe.com/foundations/typography/overview","code_url":"https://github.com/adobe/spectrum-css/tree/main/components/typography"} HTTP 200; changed: docs_url, code_url

USWDS

Paragraph native: unread @uswds/uswds 3.14.0
Variants
—
Sizes
—
States documented
default
Accessibility guidance
no

Agrees with index. Style class for the native p; no component page. Prose (separate page and package usa-prose) formats a block of content elements and is a different, larger job.

1 corrected on re-read
  • builds_on_native: "yes" → "unread" no markup using usa-paragraph found; scss only

Platform facts

Native elementpSpec p/MDN: represents a paragraph; blocks of text, 'but HTML paragraphs can be any structural grouping of related content'. Anatomy: none.
Baseline—
APG patternnone
ARIA role—
Shipped by5 of 7 systems

Anatomy

    The seven states

    default Static text.
    hover n/a — Not interactive.
    focus n/a — Not focusable by default.
    active n/a — Not interactive.
    disabled n/a — Not defined by APG or HTML.
    error n/a — Not defined by APG or HTML.
    loading n/a — Not defined by APG or HTML.

    Every cell was read twice, the second time from raw sources by a separate pass. 15 of 35 fields changed on the second read — open any “corrected” note to see what it said before.