On Tuesday 2013-02-05 13:42 -0700, L. David Baron wrote:
> Here are proposed edits for animatability lines for css3-fonts.  I
> also used "see individual properties" slightly more for the
> font-variant shorthand, since it's a shorthand.
> 
> It marks animatibility for font-stretch as an issue.  I tend to
> think it probably should be animatable (basically just like
> font-weight is), but that requires a bit more text if others agree.
> 
> (I didn't try running the preprocessor on this.)

Here's a revised version that specifies animation for font-stretch
rather than noting it as an issue.

-David

-- 
𝄞   L. David Baron                         http://dbaron.org/   𝄂
𝄢   Mozilla                           http://www.mozilla.org/   𝄂
Index: Fonts.src.html
===================================================================
RCS file: /w3ccvs/WWW/Style/Group/css3-src/css3-fonts/Fonts.src.html,v
retrieving revision 1.167
diff -p -u -1 -2 -r1.167 Fonts.src.html
--- Fonts.src.html	5 Feb 2013 17:44:04 -0000	1.167
+++ Fonts.src.html	5 Feb 2013 20:49:14 -0000
@@ -319,24 +319,28 @@ other.</p>
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>This property specifies a prioritized list of font family names or
 generic family names.  A font family defines a set of faces that vary
 in weight, width or slope.  CSS uses the combination of a family name
 with other style attributes to select an individual face.  Using this
 selection mechanism, rather than selecting a face via the style name
 as is often done in design applications, allows some degree of
 regularity in textual display when fallback occurs.</p>
 
 <p class="note">Designers should note that the CSS definition of font
@@ -546,24 +550,28 @@ to render samples of computer code.</p>
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>see description</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>as <a href="http://dev.w3.org/csswg/css3-transitions/#animtype-font-weight";>font weight</a></td>
+    </tr>
   </tbody>
 </table>
 
 <p>The <a href="#font-weight-prop" class="noxref"><span class="property">'font-weight'</span></a>
 property specifies weight of glyphs in the font, their degree of blackness or stroke thickness.</p>
 
 <p>Values have the following meanings:</p>
 
 <dl>
 <dt>100 to 900</dt>
 <dd>These values form an ordered sequence, where each number indicates a weight that is
 at least as dark as its predecessor.  These roughly correspond to the commonly used weight names below:</dd>
@@ -678,24 +686,28 @@ should use numerical values instead of r
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>as <a href="#font-stretch-animation">font stretch</a></td>
+    </tr>
   </tbody>
 </table>
 
 <p>The <a href="#font-stretch-prop" class="noxref"><span
 class="property">'font-stretch'</span></a> property selects a normal,
 condensed, or expanded face from a font family. Absolute keyword values
 have the following ordering, from narrowest to widest:
 </p>
 
 <ul>
 	<li>Ultra Condensed</li>
 	<li>Extra Condensed</li>
@@ -711,24 +723,30 @@ have the following ordering, from narrow
 <p>The scale is relative, so a face with a font-stretch value higher in
 the list above should never appear wider.  When a face does not exist
 for a given width, normal or condensed values map to a narrower face,
 otherwise a wider face.  Conversely, expanded values map to a wider
 face, otherwise a narrower face.  The figure below shows how the nine
 font-stretch property settings affect font selection for font family
 containing a variety of widths, grey indicates a width for which no 
 face exists and a different width is substituted:
 </p>
 
 <div class="figure"><img alt="width mappings for a family with condensed, normal and expanded faces" src="universwidths.png" /><p class="caption">Width mappings for a font family with condensed, normal and expanded width faces</p></div>
 
+<p id="font-stretch-animation">Animation of font stretch:  Font stretch is
+interpolated in discrete steps.  The interpolation happens as though the
+ordered values are equally spaced real numbers.  The interpolation result
+is rounded to the nearest value, with values exactly halfway between two
+values rounded towards the later value in the list above.</p>
+
 <!-- prop: font-style -->
 
 <h3 id="font-style-prop">Font style: the <a href="#propdef-font-style">font-style</a> property</h3>
 <table class="propdef">
   <tbody>
     <tr>
       <td>Name:</td>
       <td><dfn id="propdef-font-style">font-style</dfn></td>
     </tr>
     <tr>
       <td>Value:</td>
       <td>normal | italic | oblique</td>
@@ -748,24 +766,28 @@ face exists and a different width is sub
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>The <a href="#font-style-prop" class="noxref"><span class="property">'font-style'</span></a> property allows 
 italic or oblique faces to be selected. Italic forms are generally cursive in nature while oblique faces are 
 typically sloped versions of the regular face.  Oblique faces can be simulated by artificially sloping the 
 glyphs of the regular face. Compare the artificially sloped renderings of Palatino 'a' and Baskerville 'N'
 in grey with the actual italic versions:</p>
 
 <div class="figure"><img alt="artificial sloping vs. real italics" src="realvsfakeitalics.png" /><p class="caption">Artificial sloping versus real italics</p></div>
 
 <p>A value of 'normal' selects a face that is classified as 'normal',
@@ -806,24 +828,28 @@ careful about making character map assum
     <tr>
       <td>Percentages:</td>
       <td>refer to parent element's font size</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>absolute length</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>as <a href="http://dev.w3.org/csswg/css3-transitions/#animtype-length";>length</a></td>
+    </tr>
   </tbody>
 </table>
 
 <p>This property indicates the desired height of glyphs from the 
 font. For scalable fonts, the font-size is a scale factor applied to the EM unit 
 of the font. (Note that certain glyphs may bleed outside their EM box.) For 
 non-scalable fonts, the font-size is converted into absolute units and matched 
 against the declared font-size of the font, using the same absolute coordinate 
 space for both of the matched values.
 Values have the following meanings:</p>
 
 <dl>
@@ -978,24 +1004,28 @@ em { font-size: 1.5em }
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>as <a href="http://dev.w3.org/csswg/css3-transitions/#animtype-number";>number</a></td>
+    </tr>
   </tbody>
 </table>
 
 <p>For any given font size, the apparent size and legibility of text
 varies across fonts. For scripts such as Latin or Cyrillic that
 distinguish between upper and lowercase letters, the relative height
 of lowercase letters compared to their uppercase counterparts is a
 determining factor of legibility. This is commonly referred to as the 
 <span class="index-def" title="aspect value"><dfn>aspect value</dfn></span>.  
 Precisely defined, it is equal to the x-height of a font divided by
 the font size.</p>
 
@@ -1134,24 +1164,28 @@ Adjust the value until the boxes align.<
     <tr>
       <td>Percentages:</td>
       <td>see individual properties</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>see individual properties</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>see individual properties</td>
+    </tr>
   </tbody>
 </table>
 
 <p>The <span class="property">'font'</span> property is, except as
 described below, a shorthand property for setting 'font-style', 
 <span class="property">'font-variant'</span>, 
 <span class="property">'font-weight'</span>, 
 <span class="property">'font-stretch'</span>, 
 <span class="property">'font-size'</span>, 'line-height', 
 <span class="property">'font-family'</span> at the same place in the
 stylesheet.  Values for the <span class="property">'font-variant'</span> 
 property may also be included but only those supported in CSS 2.1, none
@@ -1328,24 +1362,28 @@ this declaration:
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>This property controls whether user agents are allowed to synthesize bold or oblique font
 faces when a font family lacks bold or italic faces.  If 'weight' is not specified, user agents
 must not synthesize bold faces and if 'style' is not specified user agents must not synthesize
 italic faces.  A value of 'none' disallows all synthetic faces.</p>
 
 <div class="example">
 <p>The style rule below disables the use of synthetically obliqued Arabic:</p>
 </p>
 
@@ -2607,24 +2645,28 @@ language or simply use only the default 
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>Kerning is the contextual adjustment of inter-glyph spacing. This
 property controls metric kerning, kerning that utilizes adjustment
 data contained in the font.  The value 'normal' implies that kerning
 is applied while the value 'none' implies that kerning is not
 applied when rendering text.  If the value is 'auto', a user agent
 is free to choose whether kerning is enabled or not by default and
 to vary that default based on the underlying text script.</p>
 
 <p>For fonts that do not include kerning data this property will have no
@@ -2668,24 +2710,28 @@ kerning has been applied.</p>
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>Ligatures and contextual forms are ways of combining glyphs to produce more harmonized forms.
 A value of 'normal' implies that common default features are enabled, <a href="#font-feature-resolution">as 
 described in detail in the next section</a>.  For OpenType fonts, common ligatures
 and contextual forms are on by default, discretionary and historical ligatures are not.  A value
 of 'none' implies that all types of ligatures and contextual forms covered by this property are 
 explicitly disabled.  In situations where ligatures are not considered necessary, this may
 improve the speed of text rendering.</p>
 
 <pre class="prod"><dfn><var>&lt;common-lig-values></var></dfn>        = [ common-ligatures | no-common-ligatures ]</pre>
@@ -2770,24 +2816,28 @@ not affected by the settings above, incl
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>This property is used to enable typographic subscript and superscript
 glyphs.  These are alternate glyphs designed within the same em-box as default
 glyphs and are intended to be laid out on the same baseline as the default
 glyphs, with no resizing or repositioning of the baseline.  They are explicitly
 designed to match the surrounding text and to be more readable without affecting
 the line height.</p>
 
 <div class="figure"><img alt="comparison between real subscript glyphs and synthesized ones" src="realsubscripts.png" /><p class="caption">Subscript glyphs (top) vs. typical synthesized subscripts (bottom)</p></div>
 
@@ -2903,24 +2953,28 @@ defaults for subscripts.
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>Specifies control over capitalized forms.</p>
 
 <p>Individual values have the following meanings:</p>
 
 <dl>
   <dt><dfn>normal</dfn>
   <dd>None of the features listed below are enabled.</dd>
 
   <dt><dfn>small-caps</dfn>
@@ -3035,24 +3089,28 @@ blockquote:first-line { font-variant: sm
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>Specifies control over numerical forms.</p>
 
 <pre class="prod"><dfn><var>&lt;numeric-figure-values&gt;</var></dfn>   = [ lining-nums | oldstyle-nums ]</pre>
 
 <pre class="prod"><dfn><var>&lt;numeric-spacing-values&gt;</var></dfn>  = [ proportional-nums | tabular-nums ]</pre>
 
 <pre class="prod"><dfn><var>&lt;numeric-fraction-values&gt;</var></dfn> = [ diagonal-fractions | stacked-fractions ]</pre>
 
 <p>Individual values have the following meanings:</p>
@@ -3155,24 +3213,28 @@ for a few hours or overnight.&lt;/p>
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>For any given character, fonts can provide a variety of alternate
 glyphs in addition to the default glyph for that character.  This
 property provides control over the selection of these alternate
 glyphs.</p>
 
 <p>In cases where multiple alternates are possible, authors define a
 <code>&lt;feature-value-name&gt;</code> using the
 <code>@font-feature-values</code> rule described below to indicate the
 specific alternate to be used. The nature of these alternates is font
@@ -3509,24 +3571,28 @@ span.alt-U {
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>Allows control of glyph substitution and sizing in East Asian text.</p>
 
 
 <pre class="prod"><dfn><var>&lt;east-asian-variant-values&gt;</var></dfn> = [ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]</pre>
 
 <pre class="prod"><dfn><var>&lt;east-asian-width-values&gt;</var></dfn>   = [ full-width | proportional-width ]</pre>
 
 <p>Individual values have the following meanings:</p>
 
@@ -3617,33 +3683,37 @@ span.alt-U {
       <td>normal</td>
     </tr>
     <tr>
       <td>Applies to:</td>
       <td>all elements</td>
     </tr>
     <tr>
       <td>Inherited:</td>
       <td>yes</td>
     </tr>
     <tr>
       <td>Percentages:</td>
-      <td>N/A</td>
+      <td>see individual properties</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
-      <td>as specified</td>
+      <td>see individual properties</td>
+    </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>see individual properties</td>
     </tr>
   </tbody>
 </table>
 
 <p>The value 'normal' resets all other font feature properties to their inital
 value. The 'none' value sets 'font-variant-ligatures' to 'none' and resets all other
 font feature properties to their initial value.  Like other shorthands,
 using 'font-variant' resets unspecified font-variant subproperties to their initial
 values.  It does not reset the values of either 'font-language-override' or
 'font-feature-settings'.</p>
 
 
@@ -3673,24 +3743,28 @@ values.  It does not reset the values of
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>This property provides low-level control over OpenType font features. It
 is intended as a way of providing access to font features that are not
 widely used but are needed for a particular use case.  A value of 'normal'
 means that no change in glyph selection or positioning occurs due to this
 property.
 <p>
 
 <pre>/* enable small caps and use second swash alternate */
 font-feature-settings: "smcp", "swsh" 2;</pre>
@@ -3788,24 +3862,28 @@ body { font-feature-settings: "hwid"; /*
     <tr>
       <td>Percentages:</td>
       <td>N/A</td>
     </tr>
     <tr>
       <td>Media:</td>
       <td>visual</td>
     </tr>
     <tr>
       <td>Computed&nbsp;value:</td>
       <td>as specified</td>
     </tr>
+    <tr>
+      <td>Animatable:</td>
+      <td>no</td>
+    </tr>
   </tbody>
 </table>
 
 <p>The value of 'normal' implies that when rendering with OpenType
 fonts the language of the document is used to infer the OpenType
 language system, used to select language specific features when
 rendering.  The value of the &lt;string&gt; is a single three-letter
 OpenType <a href="http://www.microsoft.com/typography/otspec/languagetags.htm";>language system tag</a>,
 defined in the layout tag registry of the OpenType specification.</p>
 
 <div class="example">
 <p>The <a href="http://www.un.org/en/documents/udhr/index.shtml";>Universal Declaration of Human Rights</a> has

Reply via email to