Skip to content

WIP: feat(react-headless-components-preview): add Popover & positioning#36006

Draft
mainframev wants to merge 5 commits intomicrosoft:masterfrom
mainframev:feat/headless-popover-v2
Draft

WIP: feat(react-headless-components-preview): add Popover & positioning#36006
mainframev wants to merge 5 commits intomicrosoft:masterfrom
mainframev:feat/headless-popover-v2

Conversation

@mainframev
Copy link
Copy Markdown
Contributor

@mainframev mainframev commented Apr 20, 2026

Adds a headless Popover (Popover, PopoverTrigger, PopoverSurface) to the @fluentui/react-headless-components-preview package, positioned via the native CSS Anchor Positioning API instead of floating-ui

Supported PositioningProps: position, align, offset, coverTarget, autoSize, matchTargetSize, strategy, pinned, positioningRef, fallbackPositions, overflowBoundary, custom target, positioning shorthands ('below', 'start' etc).

Feature with v9 @fluentui/react-popover

v9 feature Status
open / defaultOpen / onOpenChange
openOnHover + mouseLeaveDelay
openOnContext (right-click, cursor-anchored)
withArrow (+ consumer-owned arrow CSS via [data-placement])
trapFocus + aria-modal / role="dialog" ✅ (via useFocusScope)
disableAutoFocus
closeOnScroll, closeOnIframeFocus
inline (skip top-layer)
mountNode (portal target)
Nested popovers (per-instance Escape / dismiss)
positioning.position + positioning.align
positioning.offset (number or { mainAxis, crossAxis })
positioning.coverTarget
positioning.fallbackPositions
positioning.autoSize (true / 'width' / 'height')
positioning.overflowBoundary
positioning.matchTargetSize: 'width'
positioning.strategy: 'absolute' | 'fixed'
positioning.pinned
positioning.target (custom anchor)
positioning.positioningRef (imperative setTarget)
positioning.flipBoundary TBA

Related Issue(s)

@github-actions
Copy link
Copy Markdown

Pull request demo site: URL

@mainframev mainframev force-pushed the feat/headless-popover-v2 branch from 22f36ba to e9fef9d Compare April 20, 2026 01:46
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 20, 2026

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-headless-components-preview
react-headless-components-preview: entire library
64.854 kB
19.302 kB
81.73 kB
24.786 kB
16.876 kB
5.484 kB

🤖 This report was generated against c2bf30e8260326f8e7c018853e4e86cbfae0d2d0

@mainframev mainframev force-pushed the feat/headless-popover-v2 branch 2 times, most recently from 08029d0 to 84ccbd1 Compare April 20, 2026 10:24
@mainframev mainframev force-pushed the feat/headless-popover-v2 branch from 84ccbd1 to 41aae8b Compare April 20, 2026 14:50
@mainframev mainframev force-pushed the feat/headless-popover-v2 branch 2 times, most recently from 1fef504 to f9b65d7 Compare April 21, 2026 23:19
@mainframev mainframev force-pushed the feat/headless-popover-v2 branch from f9b65d7 to c72c4f4 Compare April 21, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant