flex
Yoga's flex shorthand is a different field from flexGrow, so the split by sign is load bearing. A positive value is equivalent either way here: Node.resolveFlexGrow falls back to flex, and because Litho's config sets useWebDefaults (com.facebook.litho.yoga.LithoYogaFactory.createYogaConfig) Node.processFlexBasis leaves basis at auto for a positive flex rather than pinning it to 0px. A negative value is not: Yoga reads it as shrink, and only via the !useWebDefaults branch of resolveFlexShrink, which Litho never takes — so passing it to grow would leave a negative grow factor on the node and stretch the child instead of leaving it at its content size.