Skip to content

Responsive Media ​

2.0.2 ​

2026-09-25

  • The Vue integration guide's useContainerState example called useTemplateRef('card') without an explicit type argument — Vue's own default (unknown) doesn't satisfy useContainerState's Ref<Element | null> parameter, so the example as written never actually compiled. Now shows useTemplateRef<HTMLDivElement>('card').

2.0.1 ​

2026-09-12

  • isAbove(key) now correctly returns false for an unrecognized breakpoint key — fixed in the core, Vue, and React implementations.
  • Unified the two independent isSSR() implementations into one, stricter check (window and window.matchMedia both present).
  • Vue's useBreakpoints() now honors inject()/DI, matching useResponsive().
  • Vue's useMediaQuery() can no longer leak its matchMedia listener when called outside an active component — the composable now always returns a stop function.
  • React's useContainerState() now recreates its ResizeObserver if ref.current was null on the first effect run (e.g. an element behind a later-mounted conditional/portal).
  • hydrate(initialState) no longer silently drops keys missing from the live state — it now warns.
  • Added baseline automated test coverage for the Vue and React adapters (previously only the framework-agnostic core was tested).