Skip to content

Docs: hand-duplicated props tables drift risk, missing a11y sections, no per-component changelog #879

Description

@ravisuhag

Summary

Component docs (apps/www) have the right shape — props table, live demo playground, accessibility notes — but three gaps showed up in a practices audit.

Issues found

  1. Props tables are hand-duplicated and can drift. Each component has a shadow props.ts file (e.g. apps/www/src/content/docs/components/button/props.ts) read by fumadocs-typescript's remarkAutoTypeTable (apps/www/source.config.ts:16-33,62) instead of being generated from the real component types. Comparing button/props.ts against the actual button.tsx:127-134 union already shows props omitted from the doc.

  2. Accessibility sections are inconsistent. Present on Button, Dialog, Checkbox, Tabs, Select, Sidebar. Missing entirely on Combobox, Menu, ContextMenu, and DataView — notably the most complex component in the library has no accessibility documentation.

  3. No per-component changelog. Only one repo-wide packages/raystack/CHANGELOG.md (changesets-generated), and it isn't linked or surfaced anywhere on the apps/www docs site. Consumers browsing a component's docs page have no way to see what changed for that component.

Suggested approach

  • Generate props tables directly from the real component source, or add a CI check that diffs the shadow props.ts files against the actual exported prop types so drift fails a build instead of shipping silently.
  • Backfill Accessibility sections for combobox, menu, context-menu, and dataview.
  • Surface per-component changelog entries on each docs page (even a filtered view of the existing changesets changelog would close most of the gap).

Notes

Found via a components.build practices audit (docs dimension).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestglobalCross-cutting issue affecting multiple components

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions