Skip to content

v0.2.0

Choose a tag to compare

@CoreyKaylor CoreyKaylor released this 03 Aug 19:24
· 8 commits to main since this release

Artboard no longer requires a wasmJs target. Modules that already declare jvm() or only android can still get a spatial gallery of pre-rendered previews; live Wasm remains the fully interactive path.

Highlights

Snapshot galleries (no Wasm required)
Artboard binds to one target you already declare (preference: live Wasm → JVM snapshots → Android snapshots):

  • wasmJs { browser() } — live interactive gallery (unchanged)
  • jvm() without Wasm — headless Skia renders every theme × locale to PNGs
  • android { … } only — same images via Robolectric host tests

Snapshot mode uses a prebuilt viewer (artboard-viewer-dist) over manifest.json + PNGs. Board chrome still works: pan/zoom, search, theme, locale, device, deep links, layout grid, artboardRun, and artboardExport.

./gradlew :ui:artboardSnapshot
./gradlew :ui:artboardRun
./gradlew :ui:artboardExport

Live interaction inside a preview, animation scrubbing, and runtime PNG download still need the Wasm path.

Locale-correct snapshots
Platform locale is set for the full offscreen scene so Compose resources and RTL match the gallery locale control.

Layout grid on image tiles
The screen column/margin/gutter overlay works over snapshot PNGs the same as live frames.

Camera reliability
Gestures accumulate correctly within a frame. Restored cameras are discarded when they would open on empty space, and the board auto-fits instead.

Café showcase
Previews ordered by user flow (browse → item → cart → checkout → orders → settings).

Upgrade

id("io.github.crowded-libs.artboard") version "0.2.0"

No consumer source changes required for existing Wasm galleries. New Maven artifact: artboard-viewer-dist.

Android snapshots: Robolectric sandbox is pinned to API 34 so captures run on JDK 17 (API 36 sandboxes require JDK 21). compileSdk may remain 36.