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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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