Skip to content

v3.0.0

Compare
Choose a tag to compare
@ghivert ghivert released this 05 Aug 12:46
· 34 commits to main since this release
1bde2ce

3.0.0 — New Major Version 🎉

Sketch undergo a major rewrite, switching from being a Lustre-focused package, to a generic CSS-in-Gleam package. Sketch is now split across multiple packages: sketch, sketch_css & sketch_lustre.
Inspired by Gleam, Sketch has now an agnostic core, able to target any project and any compile target, and has few packages specialised for frameworks and libraries to integrate it in a transparent way! This step starts first with the split of Lustre features from the core to its own package, sketch_lustre. This change should help building on top of Sketch, and allow everyone to use the package, in the way they like. Sketch favours diversity!

Changes

  • Deprecations are removed.
  • Remove the mechanism of "virtual stylesheet", because browsers optimise for static CSS. Every class pushed in Cache is now memoised.
  • Add every possible non-experimental CSS properties.
  • Split Lustre bits to sketch_lustre.
  • sketch_css allows to generate a CSS stylesheet from Sketch styles.
  • Class ID change from guess (with magic) to string.inspect (without magic, in a deterministic way). Overhead is really low (few milliseconds at most).
  • sketch.Class now contains its string representation, allowing for quicker lookup in cache.
  • Lustre mechanism switch from injecting styles in globalised Cache to an additional tree walk before render (like elm-css). This is transparent for the user, and should not be felt as a change anyway (time to render differs from a bunch of milliseconds).

Full Changelog: v2.3.0...v3.0.0