Short answer; no, I would not suggest using percentage for weights.
Long answer; Please considering what the weight value expresses. It is
not necessarily a value chosen by a typographer. It should be the
measured thickness of the dominant strokes of a font. If my assertion
is correct (which I admit can be debated) then it would make sense to
keep the values between 0 and 999. For example, if the dominant stroke
width is 123 design units (e.g. the thickness of a lower case 'l')
then the weight should really be 123 and not 100 or "light". Although
the weight should be a measured values from the font, I do
think it is often a value chosen by the font designer, or possibly
rounded to either 400 or 700 in some cases. Then again, I don't see any
problems in normalizing these values to a percentage (related to the
design units per em of the font). It already is a value relative to one
thousand (an em of 1000 design units), so changing it to percent
(relative one hundred) would not cause any problems (nor any benefits).
You could also specify weight as "bolder" and "lighter", which one
could define as a percentage. I would like to avoid this and simply
deprecate that use (relative weights). You can't really depend on the
ability to create fonts with a synthetic weight (e.g. MM fonts), nor do
I like the result I get from using relative weights to select
next/previous weights of a font family (inconsistent result on
platforms with different set of fonts). Text that should be bold,
normal or light easily get too bold or light or not enough bold or
light with computed relative weights as well. For pages where fine
typography is not needed, then "400" and "700" would be enough to use
bold and non-bold fonts. For pages with fine typography, you would want
to be able to select a known font without any possibility of ambiguity,
i.e. with an explicit weight value that matches the (web-)font exactly.
In either case, you don't need "bolder" and "lighter".
Em2 Solutions AB
Dylan Just wrote:
As such, I would be all for a proposal to define the font-weight
values to include numeric values (0-999).
What about a percentage value, instead?