Skip to content

feat(native): add cross-platform renderer foundation - #506

Draft
bntvllnt wants to merge 1 commit into
mainfrom
feat/react-native-platform
Draft

feat(native): add cross-platform renderer foundation#506
bntvllnt wants to merge 1 commit into
mainfrom
feat/react-native-platform

Conversation

@bntvllnt

@bntvllnt bntvllnt commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add framework-free @vllnt/ui-core tokens, native themes, platform types, and portable contracts generated from packages/design
  • add experimental @vllnt/ui-native Button, Text, Heading, Badge, and Card renderers plus a private Expo catalog that bundles on Android and iOS
  • make registry pages, JSON, search, JSON-LD, llms surfaces, and MCP platform-aware while preserving the stable @vllnt/ui web package
  • add native CI and a separately gated, canary-only synchronized publishing workflow

Scope

This PR implements the native renderer, shared-token/contract, registry, CI, and release-boundary portion of #479. Hook extraction and Tailwind preset consolidation remain separate follow-up work.

@vllnt/ui remains byte-for-byte unchanged across its manifest, source tree, CSS, and theme files. Native packages are experimental and publication remains disabled until maintainers provision npm trusted publishers, create the protected npm-native-canary environment, and set NATIVE_CANARY_PUBLISH_ENABLED=true.

Verification

  • pnpm install --frozen-lockfile
  • pnpm lint
  • pnpm -F @vllnt/ui exec tsc --noEmit --project tsconfig.build.json
  • pnpm build
  • pnpm test:once — 318 web test files / 1,671 web tests plus core, native, catalog, and registry tests
  • pnpm check:circular
  • pnpm ci:native — package boundaries, packed artifacts, Expo Doctor 21/21, Android + iOS Metro exports
  • pnpm -F @vllnt/ui-registry registry:check
  • pnpm -F @vllnt/ui-registry registry:integrity
  • pnpm -F @vllnt/ui-registry i18n:check
  • pnpm -F @vllnt/ui-registry exec playwright test e2e/platforms.spec.ts — 3 passed
  • CI=1 pnpm -F @vllnt/ui-registry exec playwright test e2e/i18n.spec.ts — 44 passed
  • React Doctor staged scan — no errors
  • dependency audit comparison — no new high-severity advisory versus origin/main; Expo's ws path is pinned to 8.21.3
  • git diff --check

Review notes

  • Full Playwright CT was attempted, but the repository currently tracks baselines for only a small subset of the 309 web components; 37 cases passed and baseline-less cases failed. No web package implementation or style files change in this PR.
  • Native destructive-label contrast is generated and tested at WCAG AA. Native dark background uses near-black rather than pure black.
  • No merge or package publication is requested by this draft.

Related to #479

@vllnt-pilot

vllnt-pilot Bot commented Sep 3, 2026

Copy link
Copy Markdown

ntk preview

App Status Preview
ui-registry Ready https://pr-506-ui-registry.preview.vllnt.ai
storybook Skipped (preview cell not configured)

Built from f1e04d36 · public + no-index (ADR-082) · torn down on close

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant