[css3-fonts] simplifying font-variant-ligatures

I'd like to propose restructuring the property values for
'font-variant-ligatures' in the interest of simplifying the overall
syntax for the font-variant shorthand. Christoph Päper proposed this a while
back [1].

  font-variant-ligatures: normal | inherit | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> ]

where

  <common-lig-values>     = [ common-ligatures | no-common-ligatures ]

  <discretionary-lig-values> = [ discretionary-ligatures | no-discretionary-ligatures ]

  <historical-lig-values> = [ historical-ligatures | no-historical-ligatures ]

Structuring the property this way allows individual ligature features to
be explicitly enabled or disabled independent of each other.  The
downside is that it ends up being verbose:

  /* enable common and discretionary ligatures */
  font-variant-ligatures: common-ligatures discretionary-ligatures;  

Given that several user agents are now implementing the
'font-feature-settings' property, I think it would be simpler to define
this more simply and let users use the 'font-feature-settings' property
for more fine-grained control.

Proposed new syntax, similar to what Christoph proposed:

  font-variant-ligatures: normal | inherit | common-ligatures | discretionary-ligatures | all-ligatures

The value in this definition effectively defines the level of ligatures used.
For OpenType fonts, these values would explicitly be defined to mean:

  normal                  == use defaults
  common-ligatures        == liga=1, dlig=0, hlig=0
  discretionary-ligatures == liga=1, dlig=1, hlig=0
  all-ligatures           == liga=1, dlig=1, hlig=1

I also propose trimming the 'no-contextual' value from
font-variant-alternates for similar reasons.

The way 'font-feature-settings' is defined, individual OpenType features
can still be disabled individually for unusual cases.

Regards,

John Daggett

[1] http://lists.w3.org/Archives/Public/www-style/2010Mar/0049.html

Received on Thursday, 16 February 2012 05:45:37 UTC