Skip to content

[css-flexbox-1] Should Flex Container Intrinsic Main Size algorithm really use _scaled_ flex shrink factor? #6909

Closed
@davidsgrogan

Description

@davidsgrogan

https://drafts.csswg.org/css-flexbox-1/#intrinsic-main-sizes says

For each flex item, subtract its outer flex base size from its max-content contribution size.

  • This result has pixel units.

If that result is positive, divide by its flex grow factor floored at 1

  • This result has pixel units.

if negative, divide by its scaled flex shrink factor having floored the flex shrink factor at 1.

  • This result has no units because scaled flex shrink factor has pixel units. scaled flex shrink factor is equal to flex shrink factor * inner flex base size (https://drafts.csswg.org/css-flexbox-1/#scaled-flex-shrink-factor).

    Put another way and expanding some terms:

    (flex base size - max-content contribution size) / (inner flex base size * max(1, flex shrink factor))

    Numerator and denominator both have pixel units so the result is unitless.

This is the item’s max-content flex fraction


So items in the same flexbox can have max-content flex fractions of different units depending on if the result of the first step is positive or negative. That doesn't seem right. Maybe

if negative, divide by its scaled flex shrink factor having floored the flex shrink factor at 1.

should be the following?

if negative, divide by its flex shrink factor floored at 1.

/cc @fantasai and @dholbert who appear to have developed this algorithm originally

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions