Skip to content

Releases: DioxusLabs/taffy

v0.10.0

31 Mar 16:34
e6070c6

Choose a tag to compare

The MSRV for this release is 1.71.

Support for direction

The direction property is now supported, allowing for RTL layout of boxes in Block, Flexbox, and CSS Grid layout modes.

Support for floats

The float and clear properties are now supported. Support consists of a general-purpose FloatContext in the compute module, and integration of float layout into Block layout. Block layout now also has a BlockContext that allows a FloatContext to be shared across an entire Block formatting context.

Float support is feature flagged by the float_layout feature.

Support for parsing styles from CSS string (#929)

All of Taffy's style types (except the top-level Style struct) now have FromStr implementations that parses the type from the CSS representation of that value (e.g. 30px or 50% for LengthPercentage. A future version of Taffy will likely add support for parsing Style from ;-seperated CSS.

CSS parsing is feature flagged by the parse feature.

Changed

  • Make DetailedGridTracksInfo struct accessible from a public module (#899)
  • Add TaffyTree::write_tree method to debug print the tree into an arbitrary writer (#925)
  • The cache set and set APIs now take &LayoutInput rather than individual values (#933)

Fixed

  • Flexbox: apply gap even when there are auto margins (#938)

v0.9.2

22 Nov 18:28
8f30e39

Choose a tag to compare

Fixed

  • Fix wrong size propogation for absolute elements (#878)
  • Fix bounds check in CellOccupancyMatrix::last_of_type (#890)
  • Use doc_cfg instead of doc_auto_cfg (#868)

Changed

  • Upgraded grid dependency from 0.18 to 1.0 (#864)

v0.9.1

27 Sep 14:25
fa5930c

Choose a tag to compare

Fixed

  • Flexbox: don't apply cross-axis stretch alignment to children with auto margins (#861)

v0.9.0

27 Sep 14:24
599b1b7

Choose a tag to compare

Support for named grid lines and grid areas

Taffy now supports named grid lines and areas.

As these rely on arbitrary user-provided strings, Taffy's Style struct is now generic
over a string-like type (via the CheapCloneStr trait). Additionally as the grid feature is optional,
it has a PhantomData field of that type to make type inference work.

Changed

  • PrintTree and RoundTree: use Layout instead of &Layout (#849).
  • Renamed TrackSizingFunction to GridTemplateComponent
  • Renamed NonRepeatedTrackSizingFunction to TrackSizingFunction
  • The Repeat variant of GridTemplateComponent now contains a new GridTemplateRepetition struct, which allows
    line names to be specifed in addition to tracks.
  • The way that grid styles are exposed in the low-level API is now a lot more generic with many associated types.

Added

  • GridTemplateArea struct and Style::grid_template_areas field
  • Style::grid_template_column_names and Style::grid_template_row_names fields. If non-empty, these
    should have length of exactly one greater than the corresponding grid_template_column/grid_template_rows style.

v0.8.3

08 Jun 14:44
a31a40b

Choose a tag to compare

Fixed

  • Fix serde feature on 32bit targets (#845)

v0.8.2

30 May 16:58
9bace2c

Choose a tag to compare

Fixed

  • Fix: Calculate correct new grid size when expanding cell_occupancy_matrix in the negative direction (#843)

v0.8.1

22 Apr 18:19
3d585ec

Choose a tag to compare

Added

  • Impl GridItemStyle and BlockContainerStyle for Style (#832).

v0.8.0

01 Apr 01:39
c3ecb7d

Choose a tag to compare

Highlights

The big feature in this release is support for calc() values in the low-level API.

To use this API:

  • Implement the resolve_calc_value method when implementing the LayoutPartialTree trait.
  • Pass a type-erased pointer (*const ()) to constructors like LengthPercentage::calc(...)

Taffy treats the pointer as an opaque value (excepting that it uses the low 3 bits as a tag) which it will
pass to LayoutPartialTree::resolve_calc_value along with a percentage resolution basis when it needs to
resolve the value.

Changed

  • The representation of many "size" types is now a tagged pointer than an enum. This is to enable calc().
    The effected types are LengthPercentage, LengthPercentageAuto, Dimension, MinTrackSizingFunction, and
    MaxTrackSizingFunction types.

Added

  • Special-case "compressible replaced elements" in grid sizing algorithm (#807)
    This allows for more correct sizing of "replaced" elements such as images that are children
    of flexbox or grid containers.

Fixed

  • Grid: Fix infinite loop due to float precision in grid layout maximise tracks step (#792)
  • Grid: Fix removed wrong addition, causing items to be misplaced. (#817)
  • Grid: Fix grid placement for items with fixed primary axis (#818)
  • Leaf layout: don't set available space to max-size (#819)

v0.7.7

22 Mar 01:07

Choose a tag to compare

Fixed

  • Add #[inline] annotation to some methods on TaffyTree (#802)
  • Add TaffyTree::remove_children_range method (#802)

v0.7.6

20 Feb 11:07

Choose a tag to compare

Fixed

  • Fix infinite loop due to float precision in grid layout maximise tracks step (#792)