github meursyphus/ssgoi v6.3.0
v6.3.0 — hero smooth variant + image-fit

11 hours ago

Highlights

Hero — variant: "smooth"

A new variant alongside the existing default. Same base spring (300/30) with doubleSpring: 1 layered on top, so the shared tile glides into rest through a soft follower stage instead of snapping. default stays the crisp baseline.

transition({ type: "hero", variant: "smooth" })

Hero — per-side HeroFit ("contain" | "cover")

Each side of a hero pair can now declare its own fit strategy via fromFit / toFit. The tile morphs the clip-path between the two so the same image can render contain on one screen and cover on the next without a hard cut.

Hero — provider tree split

Internals reorganized into orthogonal subtrees:

  • provider/chrome/static, fade (handles outgoing/incoming page chrome)
  • provider/variant/default, smooth (handles physics)

Both are driven by dispatcher tables — no more if/switch on type or variant inside transition.ts. Adding a new chrome strategy or physics variant is now a single-file change.

The static type now consistently uses the temporary shared-element clone, matching fade; docstrings and transition.ts are simplified to reflect the unified clone path.

Axis — z provider split

axis/provider/z.ts is split into directional / non-directional submodules for readability. No behavior change.

Docs

  • New web showcase: Airbnb Photo Tour (gallery + photo detail) demonstrating hero with image-fit between grid and detail views.
  • google-photos: extracted shared PhotoGridLink helper.
  • Hero llms.txt refreshed; showcase catalog registers the new demo; new web-showcase-shell layout component.

Packages

All published at 6.3.0:

  • @ssgoi/core
  • @ssgoi/react
  • @ssgoi/svelte
  • @ssgoi/vue
  • @ssgoi/angular
  • @ssgoi/solid

Don't miss a new ssgoi release

NewReleases is sending notifications on new releases.