Skip to content

fix(popover): keep arrows visible during transitions - #814

Closed
nocdn wants to merge 2 commits into
cloudflare:mainfrom
nocdn:bartek/fix-popover-arrow-overflow
Closed

nocdn wants to merge 2 commits into
cloudflare:mainfrom
nocdn:bartek/fix-popover-arrow-overflow

Conversation

@nocdn

@nocdn nocdn commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

In a few areas, the arrow in the Popover component would not animate in with the popover, but rather jump in after the fade/scale was done - which I believe to be unintended behaviour, for example in the 'before':

Before After
tipbefore tipafter

This fix makes it so overflow-hidden doesn't clip the arrow, and adds a motion wrapper, which permanently positions the arrow and does the zoom. The popup only fades, so its overflow can no longer clip the arrow


  • Reviews
    • bonk has reviewed the change
    • automated review not possible because: I cannot run bonk with my permissions
  • Tests
    • Tests included/updated
    • Automated tests not possible - manual testing has been completed as follows:
    • Additional testing not necessary because:

@pkg-pr-new

pkg-pr-new Bot commented Sep 18, 2026

Copy link
Copy Markdown
npm i https://pkg.pr.new/@cloudflare/kumo@814

commit: f491b9f

@rozenmd

rozenmd commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator

/bonk review this

Comment thread packages/kumo/src/components/popover/popover.tsx
@ask-bonk

ask-bonk Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

I'm Bonk, and I've done a quick review of your PR.

Posted 1 inline finding.

Review notes
  • Confirmed the active checkout is PR fix(popover): keep arrows visible during transitions #814 at the requested head commit and found no prior reviews or inline comments.
  • I’m checking the Popover wrapper against Base UI’s positioning and transition behavior, then will run the focused browser test if the environment supports it.
  • Inspected the complete Popover implementation, its new visual regression test, and the required library changeset.
  • The focused browser-test command could not run because pnpm is unavailable in this runner; static review found the new wrapper does not remove clipping from a consumer-supplied overflow-* class on the popup.

github run

@github-actions

Copy link
Copy Markdown
Contributor

Docs Preview

View docs preview

Commit: f491b9f

@github-actions

Copy link
Copy Markdown
Contributor

📐 Bundle Size

Consumer fixtures bundled against packages/kumo/dist (peers external, minified ESM).

Fixture Raw Gzip Brotli
Button (root) 174.6 KB 49.9 KB 43.1 KB
Button (components/button) 174.5 KB 49.9 KB 43.1 KB
Button + Dialog + Select (root) 299.5 KB 85.8 KB 71.9 KB
Button + Dialog + Select (component subpaths) 299.5 KB 85.9 KB 71.9 KB
Chart (root) 247.1 KB 71.1 KB 60.8 KB
Chart (components/chart) 247.0 KB 71.1 KB 60.8 KB
Badge (components/badge) 44.7 KB 11.7 KB 10.1 KB
Flow (components/flow) 208.9 KB 58.3 KB 50.5 KB
Button (primitives/button) 12.2 KB 4.4 KB 3.9 KB
Primitives barrel 635.8 KB 176.9 KB 139.3 KB
Code highlighting (code) 2.08 MB 468.0 KB 349.3 KB

npm tarball: 544 files, 1.49 MB packed, 6.95 MB unpacked.

⚠️ 23 flagged files in tarball (tests / raw scripts)
  • dist/blocks-source/resource-list/resource-list.test.tsx
  • scripts/component-registry/cache.ts
  • scripts/component-registry/discovery.ts
  • scripts/component-registry/example-cleanup.ts
  • scripts/component-registry/index.test.ts
  • scripts/component-registry/index.ts
  • scripts/component-registry/markdown-generator.ts
  • scripts/component-registry/metadata.ts
  • scripts/component-registry/props-filter.ts
  • scripts/component-registry/schema-generator.ts
  • scripts/component-registry/sub-components.ts
  • scripts/component-registry/types.ts
  • scripts/component-registry/utils.ts
  • scripts/component-registry/variant-parser.ts
  • scripts/css-build.ts
  • scripts/generate-globe-land-mask.mjs
  • scripts/generate-primitives.ts
  • scripts/theme-generator/config.ts
  • scripts/theme-generator/generate-css.test.ts
  • scripts/theme-generator/generate-css.ts
  • scripts/theme-generator/index.ts
  • scripts/theme-generator/migrate.ts
  • scripts/theme-generator/types.ts

Report-only: no size thresholds are enforced yet.

Commit: f491b9fe

@github-actions

Copy link
Copy Markdown
Contributor

Visual contracts

Linux Chromium references exercised by the PR's visual-contracts job.

1 curated contract

truncating text trigger

truncating text trigger

@github-actions

Copy link
Copy Markdown
Contributor
Visual Regression Report — 0 changed, 8 unchanged

No visual changes detected.

@mattrothenberg

Copy link
Copy Markdown
Collaborator

Superseded by #818

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.

3 participants