So... vertical-align: middle has special behavior on table cells: it causes align-content: normal to be treated as center (similar to how the top and bottom values trigger start and end, respectively).
Splitting 'vertical-align' into longhands means we have to map the behavior over from the longhands instead. Unfortunately since middle is an actual baseline (halfway between the alphabetic baseline and the ex-height) it's in alignment-baseline whereas top and bottom are line-relative values that shift content but don't represent an actual baseline, and are therefore in baseline-shift. Which means it's possible to specify alignment-baseline: middle; baseline-shift: top. Need to define whether that's treated as vertical-align: top or vertical-align: middle. My suggestion is that top and bottom take precedence, because that's what happens in inline layout as well (alignment baselines are ignored for alignment within the parent in favor of top/bottom alignment within the line box).
So...
vertical-align: middlehas special behavior on table cells: it causesalign-content: normalto be treated ascenter(similar to how thetopandbottomvalues triggerstartandend, respectively).Splitting 'vertical-align' into longhands means we have to map the behavior over from the longhands instead. Unfortunately since
middleis an actual baseline (halfway between the alphabetic baseline and the ex-height) it's inalignment-baselinewhereastopandbottomare line-relative values that shift content but don't represent an actual baseline, and are therefore inbaseline-shift. Which means it's possible to specifyalignment-baseline: middle; baseline-shift: top. Need to define whether that's treated asvertical-align: toporvertical-align: middle. My suggestion is thattopandbottomtake precedence, because that's what happens in inline layout as well (alignment baselines are ignored for alignment within the parent in favor of top/bottom alignment within the line box).