Use CSS3 absolute-sizes for font-size
With !89 (merged) we have FontSizeSpec
as a stand-alone type. It has the traditional scheme of things in librsvg where small
, medium
, large
, and all the absolute-size values for the font-size
property are based on a base value of 12pt
. This value gets scaled up and down by powers of 1.2.
I just checked if things changed for CSS3, and they did:
https://drafts.csswg.org/css-fonts-3/#font-size-prop
In librsvg, we use "12pt" as the default value for medium
, and other values are derived from that. I think that may have been because the CSS2 spec suggests, "scaling factor of 1.2 is suggested between adjacent indexes; if the 'medium' font is 12pt, the 'large' font could be 14.4pt." My reading is that it suggests 12pt, but doesn't mandate it.
However, CSS3 has this. It has a table of fractional scaling factors; they changed it from powers of 1.2 to give better results for small fonts. As far as I can tell, it doesn't suggest using "points" anywhere; it just suggests scaling factors to be applied to the default font size, which we define as a unit-less 12.0
.
Having a base value in points complicates things for us, because we need to delay everything until we know the DrawingCtx
's DPI.
I think this code may become simpler if we use the scaling factors recommended by CSS3, based on our unit-less default font size.