Skip to content

feat(ui): prototype shared shadow overlay for portals (YPE-5138) - #349

Closed
abharms wants to merge 3 commits into
youversion:journey-to-the-shadow-domfrom
abharms:spike/shadow-dom-complex-component
Closed

feat(ui): prototype shared shadow overlay for portals (YPE-5138)#349
abharms wants to merge 3 commits into
youversion:journey-to-the-shadow-domfrom
abharms:spike/shadow-dom-complex-component

Conversation

@abharms

@abharms abharms commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add one shared, styled overlay shadow root for portalled SDK content
  • route internal Radix Popover and Dialog portals to that root when rendered under ShadowRootHost
  • prove the architecture with BibleVersionPicker and SignInDialog Storybook browser integration tests
  • constrain popovers to Radix's available viewport height and namespace the picker spacing token
  • preserve the existing document.body portal behavior outside shadow isolation
  • record findings and remaining accessibility risks in ADR 0005

Scope

This is an architecture spike, not a BibleVersionPicker rollout. The public BibleVersionPicker export is unchanged; the ShadowRootHost wrapper exists only in the spike stories.

Findings

The Chromium proof covers host-CSS isolation, ancestor and viewport clipping, internal scrolling, positioning, focus, Escape and outside-click dismissal, shared-overlay reuse, and actual SignInDialog composition. Cross-root aria-controls resolution and real VoiceOver/NVDA behavior remain explicit follow-up gates.

Verification

  • UI unit suite: 408 tests passed
  • Storybook Chromium integration: 11 tests passed
  • UI build and style verification passed
  • UI typecheck and lint passed
  • git diff --check passed

The root pnpm test command could not complete locally because the core test setup requires YVP_API_HOST, which was not available. The complete UI suite passed independently.

@changeset-bot

changeset-bot Bot commented Aug 19, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: b5e16e2

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@youversion/platform-react-ui Patch
vite-react Patch
@youversion/platform-core Patch
@youversion/platform-react-hooks Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@abharms
abharms force-pushed the spike/shadow-dom-complex-component branch from 4d2d8f1 to f569abf Compare August 19, 2026 18:16
@abharms abharms changed the title feat(ui): prototype shared shadow overlay for portals feat(ui): prototype shared shadow overlay for portals (YPE-5138) Aug 19, 2026
@abharms

abharms commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

Superseded by #350, which uses a same-repository branch so CI can access the required repository secrets.

@abharms abharms closed this Aug 20, 2026
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.

2 participants