- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Fri, 29 Aug 2008 11:03:46 -0500
- To: "Bert Bos" <bert@w3.org>
- Cc: "www-style@w3.org" <www-style@w3.org>
- Message-ID: <dd0fbad0808290903v40953f5cibcbc8805de16a0d6@mail.gmail.com>
On Fri, Aug 29, 2008 at 10:48 AM, Bert Bos <bert@w3.org> wrote: > > L. David Baron wrote: > > 15.6 contains some contradictory statements as a result of previous >> edits [1] which were themselves needed to resolve existing >> contradictions. See >> http://csswg.inkedblade.net/spec/css2.1#issue-48 (and note that what >> we're discussing is issue 49). >> > > Another way to solve issue 48 may be to re-use the concept of "first > available font" that we introduced to define the value of 'ex'. > > Concretely: remove no text from 15.6, but add this bullet point before the > two that define 'bolder' and 'lighter'. It says to only look at the first > family: > > * Determine the font weight mappings of all fonts (of any style, size > or variant) in the first family in 'font-family' that has any fonts > available. Compute the used value of 'font-weight' using this set of > fonts, as follows: > > The existing bullets could remain unchanged or cleaned up to avoid some > confusion and ambiguities, as follows: > > * 'bolder' selects the next weight that is assigned to a font that is > darker than the *parent's weight* [was: inherited one]. If there is > no such weight, it simply results in the next darker numerical value > [remove: (and the font remains unchanged)], unless the inherited > value was '900' in which case the resulting weight is also '900'. > > * 'lighter' is similar, but works in the opposite direction: it > selects the next lighter keyword with a different font from the > *parent's weight* [was: inherited one], unless there is no such > font, in which case it selects the next lighter numerical value > [remove: (and keeps the font unchanged)]. > > > > With this addition the original algorithm (next available font or +100) is > well-defined again and the outcome of Fantasai's puzzle is as Sylvaing said: > > b -> 700 (because a bolder font is available and it has weight 700) > c -> 800 (because no bolder font is available, so we just add 100) > d -> 700 (because a lighter font than 800 is available, viz., 700) > > and thus d is bold. > > It will satisfy some people's intuition ("in an ideal font d would be > bolder than a") and fail others ("in an ideal font, d would be lighter than > c"). You can't win... > > > > For issue 49, this means that the computed value of 'font-weight' is > neither a sequence nor a count, it is simply an absolute weight (100..900), > *but* it cannot be computed without knowing the available fonts. > > That shouldn't be a problem in most cases, except when the font is not yet > downloaded when you compute property values. In that case you must either > wait until the font is downloaded and installed, or continue assuming the > font does not exist and recompute properties if it later turns out that the > font downloaded and installed fine. > > The same is true for any calculations that involve 'ex', so it's nothing > new. That should probably work well. It's essentially identical to what many people have expressed re: 'imaginary' weights that are matches by the best of the font's ability. Is there a particular reason you're clamping the font-weight at 900? I think this is probably well out of range of normal use, but if an author *did* somehow bump into it, it'll cause the same problems that a lot of people in this thread say they want to avoid. ~TJ
Received on Friday, 29 August 2008 16:04:22 UTC