NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Headless anchor-positioning primitives for popovers, tooltips, dropdowns and menus. A Floating UI for Flutter.
Last release 1 months ago
26 Aug 2026
Too new to tell
only 1 release windows
Nearly every release is documented
notes for 3 of 3 stable releases
Nothing withdrawn
no release was ever pulled
1 months old
4 releases · first in 2026
One column per month.
…and PlacementAlign are documented; Offset4's deprecation retargeted from the already-shipped v0.1.0 to v0.3.0. README carries no version numbers.
Docs: doc/API.md catches up with 0.2.0 — AutoPlacement, SizeMiddleware, Hide,
PlacementSide and PlacementAlign are documented; Offset4's deprecation retargeted
from the already-shipped v0.1.0 to v0.3.0. README carries no version numbers.
Tests: docs_freshness_test + readme_snippets_test fail the suite if the docs
drift from the code.
No runtime behaviour change.
Documentation hygiene — no behaviour changes.
doc/API.md caught up with 0.2.0. AutoPlacement, SizeMiddleware and
Hide shipped in 0.2.0 and were documented in the README, but the API
reference still stopped at Arrow — all three now have entries with their
constructor arguments and the middlewareData keys they write. The
Placement section also names PlacementSide / PlacementAlign, which had
never been mentioned by name despite being how you read a resolved placement
(position.placement.side).Offset4 is documented as deprecated, with the replacement spelled out.
Its deprecation message said it would be removed in v0.1.0 — a version that
had already shipped — and now names 0.3.0.^0.2.0; both had to be edited every release and
are exactly what went stale in sibling packages. pubspec.yaml is the
version, CHANGELOG.md is the history, the pub.dev badge renders the current
number. Install is now flutter pub add anchor_kit.test/docs_freshness_test.dart — fails the suite if the README
contains a version literal, if CHANGELOG.md's newest entry doesn't match
pubspec.yaml, or if a public type has no entry in doc/API.md (this is the
guard that found the three undocumented middleware).test/readme_snippets_test.dart — compile-checks every Dart snippet
in the README and doc/API.md against the real API, including each documented
middleware constructor and the "write your own middleware" example.Stable release of the 0.2.0 line (the 0.2.0-dev.* notes below are the full history). Headline changes since 0.1.x:
Stable release of the 0.2.0 line (the 0.2.0-dev.* notes below are the full
history). Headline changes since 0.1.x:
SizeMiddleware (available-space reporting for capped,
scrollable menus), AutoPlacement (pick the side with the most room), and
Hide (flag when the anchor scrolls off-screen). Shift gained main-axis /
cross-axis / RTL controls.FloatingOverlay): overlay mutations are deferred out of the
build/layout phase, so opening/updating an overlay under a LayoutBuilder
(or rebuilt per-frame) no longer throws setState() called during build on
Flutter 3.35+.AutoPlacement): preserves an earlier OffsetMiddleware gap across a
re-place, and only keeps the current side when it is an allowed candidate.computePosition
micro-benchmark.^0.2.0.All public API additions are backward compatible with 0.1.x.
Prerelease of 0.2.0 — opt in with anchor_kit: 0.2.0-dev.1. Stable users stay on 0.1.x until 0.2.0 ships.
Prerelease of 0.2.0 — opt in with anchor_kit: 0.2.0-dev.1. Stable users stay
on 0.1.x until 0.2.0 ships.
SizeMiddleware — reports available space on the resolved side
(data['size'] = {availableWidth, availableHeight}) so a long menu can cap
its height to the viewport and scroll. New "Size" example recipe.AutoPlacement — picks the side with the most room (keeps the current side
if it fits, else least overflow); use instead of Flip.Hide — flags data['hide'] = {referenceHidden} when the anchor scrolls
off-screen.Shift now clamps only the main axis by default (was both axes), so
it no longer detaches the floating element from its anchor. Opt into
crossAxis: true; rtl: true keeps the right edge for oversized elements.SizeMiddleware collides with dart:ui's Size, hence the
Middleware suffix.New: FloatingOverlay gains barrierDismissible + onDismiss — a transparent tap-outside-to-close barrier for dropdowns / selects / popovers.
FloatingOverlay gains barrierDismissible + onDismiss — a
transparent tap-outside-to-close barrier for dropdowns / selects / popovers.?demo=<id> on web. Now runs on web too.0.0.2 fixes below.Your coding agent can read these notes before it upgrades. Set up the MCP server →