(#605): Compute 'bolder' and 'lighter' font-weight correctly
Previously, font-weight="bolder" or "lighter" would map unconditionally to pango's Ultrabold and Light, which is wrong as those are relative values that must be computed with respect to the inherited value.
We now do this:
-
First, support arbitrary numbers in the range [1, 1000] instead of the fixed set 100/200/.../900, per css-fonts-4 - https://drafts.csswg.org/css-fonts-4/#font-weight-prop
-
Second, use the "relative weights" table from https://drafts.csswg.org/css-fonts-4/#relative-weights
Note that this is different from https://www.w3.org/TR/2008/REC-CSS2-20080411/fonts.html#propdef-font-weight which simply made "bolder" and "lighter" go up and down the 100..900 scale. That had the effect of not always performing a visible change in weight, since most font families only have a few weights available and do not cover the whole range.
Fixes #605 (closed)