XD 34 is out today, you can read about the new features here.
Here are the API changes:
XD 34 adds Auto Height Text which dynamically adjusts its height based on the context of the text layer while its width remains fixed. To support Auto Height Text we have added a new text.layoutBox API that will replace text.areaBox.
text.layoutBox {type:string, ?width:number, ?height:number} details
The text type and any applicable width and height value for the text. Text type will be one of:
-
Text.POINT(for point text also referred as auto width) -
Text.FIXED_HEIGHT(for area text also referred as fixed size) -
Text.AUTO_HEIGHT(for the new auto height text)
Width is a number between 0-999999 and is ignored/omitted for text.Point.
Height is a number between 0-999999 and is ignored/omitted for text.Point and text.AUTO-HEIGHT
Changing POINT text to FIXED_HEIGHT or AUTO_HEIGHT text or vice versa will change the origin / anchor point of the text, thus changing its localBounds, but it will also automatically change the node’s transform so its globalBounds and boundsInParent origins remain unchanged.
Changing FIXED_HEIGHT or AUTO_HEIGHT text to POINT text will automatically insert hard line break ("\n") into the text to match the previous line wrapping’s appearance exactly.
Changing from FIXED_HEIGHT to AUTO_HEIGHT text will automatically change the height of the bounds to match the height of the total text (can be a no-op).
Changing from AUTO_HEIGHT to FIXED_HEIGHT text will not change the bounds, transform or origin (no-op).
How Auto Height Text affects Text.areaBox and text.clippedByArea APIs
Text.areaBox and text.clippedByArea will return the same values for Auto Height Text as they do for Point Text.
-
Text.areaBoxreturnsnullas it does for point text -
Text.clippedByAreareturnsfalseas it does for point text