Skip to content

The ADR-0080 page-source styling retraction reached 3 of 11 prose sites — 8 more still teach "JSX/HTML + Tailwind", in two spellings #5461's grep cannot see #5469

Description

@os-support-ai

Found while implementing #5461, which names three sites and asserts they are the
complete set. They are not. Filing rather than fixing — #5461's declared file surface is
packages/types/src/layout.ts and packages/components/src/renderers/layout/react-page.tsx
only, and its dispatch says stop on breach.

Why #5461's measurement under-counted

#5461 measured with grep -rn "HTML + Tailwind" packages/ apps/ content/ and got 3 hits.
That single-line, single-spelling probe misses two whole classes:

  1. HTML+Tailwind (no spaces) — a different spelling of the same compound.
  2. JSX/Tailwind — a third spelling that drops "HTML" entirely.
  3. Line-wrapped occurrencespackages/react-runtime/README.md wraps the exact
    phrase across a line boundary inside a blockquote (... constrained JSX/HTML + /
    > Tailwind, parsed ...), so even the literal spelling is invisible to a
    line-oriented grep.

A multiline-tolerant sweep for every compound spelling finds 11 live sites, plus 5 in
CHANGELOG.md files (immutable release history — those must stay):

grep -rnP -U -z -o --include='*.ts' --include='*.tsx' --include='*.md' \
  --include='*.mdx' --include='*.json' --include='*.js' --include='*.mjs' --include='*.css' \
  '(JSX|HTML|html|jsx)\s*[/+]\s*(\*|>|//|\n|\r|\s)*\s*Tailwind' .

The 8 sites left over after #5461

Measured at 9bd753682.

# Site Spelling
1 packages/components/src/renderers/layout/page.tsx:541 JSX/HTML+Tailwind
2 packages/sdui-parser/src/types.ts:5 JSX/HTML+Tailwind
3 packages/react-runtime/README.md:17-18 JSX/HTML +Tailwind (line-wrapped)
4 packages/components/src/renderers/basic/html-elements.tsx:10 JSX/Tailwind
5 packages/components/src/__tests__/div-deprecation-provenance.test.tsx:12 JSX/Tailwind
6 packages/components/src/__tests__/span-deprecation-provenance.test.tsx:13 JSX/Tailwind
7 content/docs/components/basic/div.mdx:20 JSX/Tailwind
8 content/docs/components/basic/span.mdx:22 JSX/Tailwind

Two of these are the highest-reach of the whole family after the TSDoc #5461 fixes:

  • page.tsx:541 sits on the kind === 'html' dispatch arm itself — the exact line a
    reader lands on when tracing how an html page renders.
  • react-runtime/README.md:17-18 is a published package README: it goes to npm,
    and it is the paragraph that routes untrusted-author work to the html tier.

div.mdx / span.mdx are published docs pages; the two *-deprecation-provenance
tests carry the framing in a header docstring only (no assertion depends on it).

The authority (unchanged from #5461)

ADR-0080's header amendment, 2026-06-30, under ADR-0065 (Accepted): a page's source
is runtime metadata, so the console's build-time Tailwind never scans it and an authored
utility class silently produces no CSS. "Do not author Tailwind classes in page source."
The tiers themselves stand; only the styling primitive changes.

Already-correct sources to match, so the tree does not gain a fourth phrasing:

Suggested shape

Same as #5461's: drop the Tailwind half of the compound, keep every load-bearing claim
(parse-never-execute, the untrusted-author safety argument, the deprecated jsx alias),
and name the real primitive where the site is consumer-facing — the published README and
the two .mdx pages. The three test/source docstrings can just drop "+ Tailwind"; they
are not teaching styling.

Related: the console preview harnesses do not merely describe this framing, they
demonstrate it — filed separately.


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatched

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions