v0.9.0
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.
PrintTreeandRoundTree: useLayoutinstead of&Layout(#849).- Renamed
TrackSizingFunctiontoGridTemplateComponent - Renamed
NonRepeatedTrackSizingFunctiontoTrackSizingFunction - The
Repeatvariant ofGridTemplateComponentnow contains a newGridTemplateRepetitionstruct, 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.
GridTemplateAreastruct andStyle::grid_template_areasfieldStyle::grid_template_column_namesandStyle::grid_template_row_namesfields. If non-empty, these should have length of exactly one greater than the correspondinggrid_template_column/grid_template_rowsstyle.
v0.8.0
The big feature in this release is support for calc() values in the low-level API.
To use this API:
- Implement the
resolve_calc_valuemethod when implementing theLayoutPartialTreetrait. - Pass a type-erased pointer (
*const ()) to constructors likeLengthPercentage::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.
- The representation of many "size" types is now a tagged pointer than an enum. This is to enable
calc(). The effected types areLengthPercentage,LengthPercentageAuto,Dimension,MinTrackSizingFunction, andMaxTrackSizingFunctiontypes.
- 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.
- 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)