- From: Christopher Slye <cslye@adobe.com>
- Date: Fri, 24 Feb 2012 12:59:29 -0800
- To: John Daggett <jdaggett@mozilla.com>
- CC: www-style list <www-style@w3.org>
John, I appreciate the revision, but I'm still left thinking that it doesn't improve what's already spec'd.
But recognizing that that's not a very helpful response, I'll take a little more time to consider the situation. I'll hope to comment more substantially early next week.
Meanwhile, I will be interested to see if anyone else has an opinion.
Thanks. -Christopher
On Feb 22, 2012, at 9:22 PM, John Daggett wrote:
> Given the reaction to my original proposal for simplifying
> font-variant-ligatures, I'd like to propose a smaller set of changes,
> ones that hopefully cover the majority of use cases while making the
> syntax less verbose.
>
> As noted previously, the current syntax is:
>
> 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 ]
>
> OpenType defines certain features as "on by default" and this includes
> the common ligature feature 'liga'. So the property values here are not
> completely boolean properties, they are really tri-state with possible
> states being "use defaults", "explicitly on" or "explicitly off". In
> the default 'font-variant-ligatures: normal' case, 'fi' ligatures will
> appear but discretionary ligatures such as 'st' and 'ct' ligatures won't
> (fonts can choose which ligatures are classified under which feature but
> these examples are a typical pattern).
>
> Additionally, features can be enabled/disabled per-font via
> @font-face rules:
>
> @font-face {
> font-family: DefaultText;
> src: url(xxx.woff) format("woff");
> font-variant: discretionary-ligatures;
> }
>
> body { font-family: DefaultText; }
>
> /* override font-specific setting, common ligatures on by default */
> span.special { font-variant-ligatures: no-discretionary-ligatures; }
>
> I think we can eliminate a couple of these 'no-xxx' values by defining
> 'common-ligatures' to mean "base only" and have the other values
> (discretionary, historical) be additive:
>
> font-variant-ligatures: normal | inherit | no-ligatures | [ common-ligatures || discretionary-ligatures || historical-ligatures ]
>
> In terms of OpenType features this would translate to:
>
> normal == use defaults, both OpenType and font-specific
> no-ligatures == liga=0, clig=0, dlig=0, hlig=0
> common-ligatures == liga=1, clig=1, dlig=0, hlig=0 *
> discretionary-ligatures == dlig=1
> historical-ligatures == hlig=1
>
> * = (dlig/hlig) explicitly turned off when (discretionary-ligatures/historical-ligatures)
> not also listed
>
> Note: I've added 'clig' == "contextual ligatures" to common-ligatures,
> moving it from 'contextual' in 'font-variant-alternates'.
>
> Using the new syntax with the example above:
>
> /* override font-specific setting, enable only common ligatures explicitly */
> span.special { font-variant-ligatures: common-ligatures; }
>
> The only situation this wouldn't cover would be one where an
> author explicitly wants to disable common ligatures but wants to enable
> only historical ligatures (or only discretionary ligatures).
>
> Regards,
>
> John Daggett
>
Received on Friday, 24 February 2012 20:59:56 UTC