Bug 18323

Summary: Improve font-weight: lighter and bolder
Product: WebKit Reporter: mitz
Component: TextAssignee: Nobody <webkit-unassigned>
Status: RESOLVED MOVED    
Severity: Normal CC: darwin, jdaggett, joe.lencioni+webkit, mmaxfield, nickshanks, phiw2
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   

Description mitz 2008-04-05 11:00:58 PDT
Make font-weight: lighter (bolder) always select the next lighter (heavier) member of the selected family, if available, rather than just increment the font-weight value. Per CSS2.1:
"The computed value of "font-weight" is either:
- one of the legal number values, or
- one of the legal number values combined with one or more of the relative values (bolder or lighter). This type of computed values is necessary to use when the font in question does not have all weight variations that are needed."
Comment 1 Nicholas Shanks 2008-08-27 09:31:15 PDT
for an example, see attachment #12838 [details] & attachment #12839 [details] (Helvetica Neue "lighter x 2" should be same weight as FontWeight100)
Comment 2 mitz 2009-05-21 01:04:55 PDT
*** Bug 25914 has been marked as a duplicate of this bug. ***
Comment 3 mitz 2009-05-21 01:17:59 PDT
<rdar://problem/6910052>
Comment 4 mitz 2010-01-13 10:12:40 PST
*** Bug 33559 has been marked as a duplicate of this bug. ***
Comment 5 Joe Lencioni 2013-05-18 10:32:26 PDT
According to the spec, `bolder` and `lighter` snap to the weights of 100, 400, 700, and 900. The rules for this behavior is indicated by the chart at http://www.w3.org/TR/css3-fonts/#bolderlighter
Comment 6 Joe Lencioni 2013-06-26 22:06:15 PDT
This was recently addressed in the Chromium project. Perhaps a similar solution exists in WebKit land? https://chromiumcodereview.appspot.com/15994009
Comment 7 Myles C. Maxfield 2021-11-30 18:10:59 PST
That Chrome link describes how they don't use the font's weights to determine what "lighter" and "bolder" mean. They match the spec here, just like WebKit does. I've migrated this issue to https://github.com/w3c/csswg-drafts/issues/6847, because the spec needs to change before browsers can change.