1.1 --- a/css-fonts/Fonts.html Thu May 30 16:25:34 2013 +0900 1.2 +++ b/css-fonts/Fonts.html Thu May 30 16:51:03 2013 +0900 1.3 @@ -1906,18 +1906,19 @@ 1.4 class=property>font-variant</code>’</a> and <a 1.5 href="#propdef-font-weight" title="font-weight!!property">‘<code 1.6 class=property>font-weight</code>’</a> explicitly, so these properties 1.7 - receive their initial values (‘<code class=property>normal</code>’). 1.8 - Notice that the font family name "new century schoolbook", which contains 1.9 - spaces, is enclosed in quotes. The fourth rule sets the <a 1.10 - href="#propdef-font-weight" title="font-weight!!property">‘<code 1.11 + receive their initial values (‘<a href="#normal"><code 1.12 + class=property>normal</code></a>’). Notice that the font family name 1.13 + "new century schoolbook", which contains spaces, is enclosed in quotes. 1.14 + The fourth rule sets the <a href="#propdef-font-weight" 1.15 + title="font-weight!!property">‘<code 1.16 class=property>font-weight</code>’</a> to ‘<a href="#bold"><code 1.17 class=property>bold</code></a>’, the <a href="#propdef-font-style" 1.18 title="font-style!!property">‘<code 1.19 class=property>font-style</code>’</a> to ‘<a href="#italic"><code 1.20 class=property>italic</code></a>’, and implicitly sets <a 1.21 href="#propdef-font-variant" title="font-variant!!property">‘<code 1.22 - class=property>font-variant</code>’</a> to ‘<code 1.23 - class=property>normal</code>’. 1.24 + class=property>font-variant</code>’</a> to ‘<a href="#normal"><code 1.25 + class=property>normal</code></a>’. 1.26 1.27 <p> The fifth rule sets the <a href="#propdef-font-variant" 1.28 title="font-variant!!property">‘<code 1.29 @@ -1930,9 +1931,9 @@ 1.30 class=property>line-height</code>’</a> (120% of the font size) and the 1.31 <a href="#propdef-font-family" title="font-family!!property">‘<code 1.32 class=property>font-family</code>’</a> (‘<a href="#fantasy"><code 1.33 - class=property>fantasy</code></a>’). It follows that the keyword 1.34 - ‘<code class=property>normal</code>’ applies to the two remaining 1.35 - properties: <a href="#propdef-font-style" 1.36 + class=property>fantasy</code></a>’). It follows that the keyword ‘<a 1.37 + href="#normal"><code class=property>normal</code></a>’ applies to the 1.38 + two remaining properties: <a href="#propdef-font-style" 1.39 title="font-style!!property">‘<code 1.40 class=property>font-style</code>’</a> and <a 1.41 href="#propdef-font-weight" title="font-weight!!property">‘<code 1.42 @@ -2923,14 +2924,13 @@ 1.43 font selection. Values are identical to those defined for the 1.44 corresponding <a href="#propdef-font-variant" 1.45 title="font-variant!!property">‘<code 1.46 - class=property>font-variant</code>’</a> and <span 1.47 - title="font-feature-settings!!property">‘<a 1.48 - href="#propdef-font-feature-settings"><code 1.49 - class=property>font-feature-settings</code></a>’</span> properties 1.50 - defined below except that the value ‘<code 1.51 - class=property>inherit</code>’ is omitted. When multiple font feature 1.52 - descriptors or properties are used, the cumulative effect on text 1.53 - rendering is detailed in the section <a 1.54 + class=property>font-variant</code>’</a> and <a 1.55 + href="#propdef-font-feature-settings" 1.56 + title="font-feature-settings!!property">‘<code 1.57 + class=property>font-feature-settings</code>’</a> properties defined 1.58 + below except that the value ‘<code class=property>inherit</code>’ is 1.59 + omitted. When multiple font feature descriptors or properties are used, 1.60 + the cumulative effect on text rendering is detailed in the section <a 1.61 href="#font-feature-resolution">Font Feature Resolution</a> below. In 1.62 cases where specific values define synthesized fallback for certain <a 1.63 href="#propdef-font-variant" title="font-variant!!property">‘<code 1.64 @@ -3151,8 +3151,8 @@ 1.65 exactly matches the width value the nearest width is used instead. If 1.66 the value of <a href="#propdef-font-stretch" 1.67 title="font-stretch!!property">‘<code 1.68 - class=property>font-stretch</code>’</a> is ‘<code 1.69 - class=property>normal</code>’ or one of the condensed values, 1.70 + class=property>font-stretch</code>’</a> is ‘<a href="#normal"><code 1.71 + class=property>normal</code></a>’ or one of the condensed values, 1.72 narrower width values are checked first, then wider values. If the 1.73 value of <a href="#propdef-font-stretch" 1.74 title="font-stretch!!property">‘<code 1.75 @@ -3169,15 +3169,16 @@ 1.76 then oblique, then normal faces. If the value is ‘<a 1.77 href="#oblique"><code class=property>oblique</code></a>’, oblique 1.78 faces are checked first, then italic faces and then normal faces. If 1.79 - the value is ‘<code class=property>normal</code>’, normal faces are 1.80 - checked first, then oblique faces, then italic faces. Faces with other 1.81 - style values are excluded from the matching set. User agents are 1.82 - permitted to distinguish between italic and oblique faces within 1.83 - platform font families but this is not required, they may treat all 1.84 - italic or oblique faces as italic faces. However, within font families 1.85 - defined via <code>@font-face</code> rules, italic and oblique faces 1.86 - must be distinguished using the value of the <a 1.87 - href="#descdef-font-style" title="font-style!!descriptor">‘<code 1.88 + the value is ‘<a href="#normal"><code 1.89 + class=property>normal</code></a>’, normal faces are checked first, 1.90 + then oblique faces, then italic faces. Faces with other style values 1.91 + are excluded from the matching set. User agents are permitted to 1.92 + distinguish between italic and oblique faces within platform font 1.93 + families but this is not required, they may treat all italic or oblique 1.94 + faces as italic faces. However, within font families defined via 1.95 + <code>@font-face</code> rules, italic and oblique faces must be 1.96 + distinguished using the value of the <a href="#descdef-font-style" 1.97 + title="font-style!!descriptor">‘<code 1.98 class=property>font-style</code>’</a> descriptor. 1.99 1.100 <li><a href="#propdef-font-weight" 1.101 @@ -3578,12 +3579,12 @@ 1.102 <p>When set to ‘<code class=property>auto</code>’, user agents can 1.103 determine whether to apply kerning or not based on a number of factors: 1.104 text size, script, or other factors that influence text processing speed. 1.105 - Authors who want proper kerning should use ‘<code 1.106 - class=property>normal</code>’ to explicitly enable kerning. Likewise, 1.107 - some authors may prefer to disable kerning in situations where performance 1.108 - is more important than precise appearance. However, in well-designed 1.109 - modern implementations the use of kerning generally does not have a large 1.110 - impact on text rendering speed.</p> 1.111 + Authors who want proper kerning should use ‘<a href="#normal"><code 1.112 + class=property>normal</code></a>’ to explicitly enable kerning. 1.113 + Likewise, some authors may prefer to disable kerning in situations where 1.114 + performance is more important than precise appearance. However, in 1.115 + well-designed modern implementations the use of kerning generally does not 1.116 + have a large impact on text rendering speed.</p> 1.117 <!-- prop: font-variant-ligatures --> 1.118 1.119 <h3 id=font-variant-ligatures-prop><span class=secno>6.4 </span>Ligatures: 1.120 @@ -3670,11 +3671,12 @@ 1.121 <dt><dfn id=font-variant-ligatures-normal-value 1.122 title="normal!!font-variant-ligatures">normal</dfn> 1.123 1.124 - <dd>A value of ‘<code class=property>normal</code>’ specifies that 1.125 - common default features are enabled, <a 1.126 - href="#font-feature-resolution">as described in detail in the next 1.127 - section</a>. For OpenType fonts, common ligatures and contextual forms 1.128 - are on by default, discretionary and historical ligatures are not. 1.129 + <dd>A value of ‘<a href="#normal"><code 1.130 + class=property>normal</code></a>’ specifies that common default 1.131 + features are enabled, <a href="#font-feature-resolution">as described in 1.132 + detail in the next section</a>. For OpenType fonts, common ligatures and 1.133 + contextual forms are on by default, discretionary and historical 1.134 + ligatures are not. 1.135 1.136 <dt><dfn id=font-variant-ligatures-none-value 1.137 title="none!!font-variant-ligatures">none</dfn> 1.138 @@ -3767,8 +3769,8 @@ 1.139 <tr> 1.140 <td>Value: 1.141 1.142 - <td><span title="normal!!font-variant-position">normal</span> | 1.143 - <span>sub</span> | <span>super</span> 1.144 + <td><span title="normal!!font-variant-position">normal</span> | <a 1.145 + href="#sub">sub</a> | <a href="#super">super</a> 1.146 1.147 <tr> 1.148 <td>Initial: 1.149 @@ -3819,21 +3821,32 @@ 1.150 (bottom) 1.151 </div> 1.152 1.153 - <p>The values ‘<code class=property>sub</code>’ and ‘<code 1.154 - class=property>super</code>’ imply the appropriate variant glyph is 1.155 - displayed when available in the font (OpenType features: <span 1.156 - class=tag>subs, sups</span>). A value of ‘<code 1.157 - class=property>normal</code>’ specifies neither of these alternate 1.158 - glyphs are substituted. 1.159 + <p>Individual values have the following meanings: 1.160 + 1.161 + <dl> 1.162 + <dt><dfn id=normal>normal</dfn> 1.163 + 1.164 + <dd>None of the features listed below are enabled. 1.165 + 1.166 + <dt><dfn id=sub>sub</dfn> 1.167 + 1.168 + <dd>Enables display of subscript variants (OpenType feature: <span 1.169 + class=tag>subs</span>). 1.170 + 1.171 + <dt><dfn id=super>super</dfn> 1.172 + 1.173 + <dd>Enables display of superscript variants (OpenType feature: <span 1.174 + class=tag>sups</span>). 1.175 + </dl> 1.176 1.177 <p>Because of the semantic nature of subscripts and superscripts, when the 1.178 - value is either ‘<code class=property>sub</code>’ or ‘<code 1.179 - class=property>super</code>’ for a given contiguous run of text, if a 1.180 - variant glyph is not available for all the characters in the run, 1.181 - simulated glyphs must be synthesized for all characters using reduced 1.182 - forms of the glyphs that would be used without this feature applied. This 1.183 - is done to avoid a mixture of variant glyphs and synthesized ones that 1.184 - would not align correctly. 1.185 + value is either ‘<a href="#sub"><code class=property>sub</code></a>’ 1.186 + or ‘<a href="#super"><code class=property>super</code></a>’ for a 1.187 + given contiguous run of text, if a variant glyph is not available for all 1.188 + the characters in the run, simulated glyphs must be synthesized for all 1.189 + characters using reduced forms of the glyphs that would be used without 1.190 + this feature applied. This is done to avoid a mixture of variant glyphs 1.191 + and synthesized ones that would not align correctly. 1.192 1.193 <p>In the case of OpenType fonts that lack subscript or superscript glyphs 1.194 for a given character, user agents must use the appropriate subscript and 1.195 @@ -3844,10 +3857,10 @@ 1.196 and offset of the synthesized substitutes. 1.197 1.198 <p>In the past, user agents have used font-size and vertical-align to 1.199 - simulate subscripts and superscripts for the <span class=tag>sub</span> 1.200 - and <span class=tag>sup</span> elements. To allow a backwards compatible 1.201 - way of defining subscripts and superscripts, it is recommended that 1.202 - authors use conditional rules <a href="#CSS3-CONDITIONAL" 1.203 + simulate subscripts and superscripts for the <a class=tag 1.204 + href="#sub">sub</a> and <span class=tag>sup</span> elements. To allow a 1.205 + backwards compatible way of defining subscripts and superscripts, it is 1.206 + recommended that authors use conditional rules <a href="#CSS3-CONDITIONAL" 1.207 rel=biblioentry>[CSS3-CONDITIONAL]<!--{{CSS3-CONDITIONAL}}--></a> so that 1.208 older user agents will still render subscripts and superscripts via the 1.209 older mechanism. 1.210 @@ -3871,12 +3884,13 @@ 1.211 <p>This property is not cumulative, applying it to subelements within a 1.212 subscript or superscript won't nest the placement of a subscript or 1.213 superscript glyph. Images contained within text runs where the value of 1.214 - this property is ‘<code class=property>sub</code>’ or ‘<code 1.215 - class=property>super</code>’ will be drawn just as they would if the 1.216 - value was ‘<code class=property>normal</code>’. Likewise, text 1.217 - decorations such as underlines or emphasis marks will render in the same 1.218 - position as they would for the default glyphs, since this property does 1.219 - not affect the baseline position. 1.220 + this property is ‘<a href="#sub"><code class=property>sub</code></a>’ 1.221 + or ‘<a href="#super"><code class=property>super</code></a>’ will be 1.222 + drawn just as they would if the value was ‘<a href="#normal"><code 1.223 + class=property>normal</code></a>’. Likewise, text decorations such as 1.224 + underlines or emphasis marks will render in the same position as they 1.225 + would for the default glyphs, since this property does not affect the 1.226 + baseline position. 1.227 1.228 <p>Because of these limitations, font-variant-position is not recommended 1.229 for use in user agent stylesheets. Authors should use it in cases where 1.230 @@ -3884,8 +3898,8 @@ 1.231 characters supported by the fonts specified. 1.232 1.233 <div class=example> 1.234 - <p>A typical user agent default style for the <span class=tag>sub</span> 1.235 - element:</p> 1.236 + <p>A typical user agent default style for the <a class=tag 1.237 + href="#sub">sub</a> element:</p> 1.238 1.239 <pre>sub { 1.240 vertical-align: sub; 1.241 @@ -5050,10 +5064,10 @@ 1.242 class=property>font-variant</code>’</a> resets unspecified font-variant 1.243 subproperties to their initial values. It does not reset the values of 1.244 either ‘<a href="#propdef-font-language-override"><code 1.245 - class=property>font-language-override</code></a>’ or <span 1.246 - title="font-feature-settings!!property">‘<a 1.247 - href="#propdef-font-feature-settings"><code 1.248 - class=property>font-feature-settings</code></a>’</span>. 1.249 + class=property>font-language-override</code></a>’ or <a 1.250 + href="#propdef-font-feature-settings" 1.251 + title="font-feature-settings!!property">‘<code 1.252 + class=property>font-feature-settings</code>’</a>. 1.253 1.254 <h3 id=font-feature-settings-prop><span class=secno>6.12 </span>Low-level 1.255 font feature settings control: the <a 1.256 @@ -5064,7 +5078,8 @@ 1.257 <tr> 1.258 <td>Name: 1.259 1.260 - <td><dfn id=propdef-font-feature-settings>font-feature-settings</dfn> 1.261 + <td><dfn id=propdef-font-feature-settings 1.262 + title="font-feature-settings!!property">font-feature-settings</dfn> 1.263 1.264 <tr> 1.265 <td>Value: 1.266 @@ -5335,13 +5350,13 @@ 1.267 <p>As described in the previous section, font features can be enabled in a 1.268 variety of ways, either via the use of <a href="#propdef-font-variant" 1.269 title="font-variant!!property">‘<code 1.270 - class=property>font-variant</code>’</a> or <span 1.271 - title="font-feature-settings!!property">‘<a 1.272 - href="#propdef-font-feature-settings"><code 1.273 - class=property>font-feature-settings</code></a>’</span> in a style rule 1.274 - or within an <code>@font-face</code> rule. The resolution order for the 1.275 - union of these settings is defined below. Features defined via CSS 1.276 - properties are applied on top of layout engine default features. 1.277 + class=property>font-variant</code>’</a> or <a 1.278 + href="#propdef-font-feature-settings" 1.279 + title="font-feature-settings!!property">‘<code 1.280 + class=property>font-feature-settings</code>’</a> in a style rule or 1.281 + within an <code>@font-face</code> rule. The resolution order for the union 1.282 + of these settings is defined below. Features defined via CSS properties 1.283 + are applied on top of layout engine default features. 1.284 1.285 <h3 id=default-features><span class=secno>7.1 </span>Default features</h3> 1.286 1.287 @@ -5355,13 +5370,13 @@ 1.288 mark, mkmk</span>). These features must always be enabled, even when the 1.289 value of the <a href="#propdef-font-variant" 1.290 title="font-variant!!property">‘<code 1.291 - class=property>font-variant</code>’</a> and <span 1.292 - title="font-feature-settings!!property">‘<a 1.293 - href="#propdef-font-feature-settings"><code 1.294 - class=property>font-feature-settings</code></a>’</span> properties is 1.295 - ‘<code class=property>normal</code>’. Individual features are only 1.296 - disabled when explicitly overridden by the author, as when ‘<a 1.297 - href="#propdef-font-variant-ligatures"><code 1.298 + class=property>font-variant</code>’</a> and <a 1.299 + href="#propdef-font-feature-settings" 1.300 + title="font-feature-settings!!property">‘<code 1.301 + class=property>font-feature-settings</code>’</a> properties is ‘<a 1.302 + href="#normal"><code class=property>normal</code></a>’. Individual 1.303 + features are only disabled when explicitly overridden by the author, as 1.304 + when ‘<a href="#propdef-font-variant-ligatures"><code 1.305 class=property>font-variant-ligatures</code></a>’ is set to ‘<a 1.306 href="#no-common-ligatures"><code 1.307 class=property>no-common-ligatures</code></a>’. For handling complex 1.308 @@ -5395,11 +5410,11 @@ 1.309 1.310 <li>Feature settings determined by properties other than <a 1.311 href="#propdef-font-variant" title="font-variant!!property">‘<code 1.312 - class=property>font-variant</code>’</a> or <span 1.313 - title="font-feature-settings!!property">‘<a 1.314 - href="#propdef-font-feature-settings"><code 1.315 - class=property>font-feature-settings</code></a>’</span>. For example, 1.316 - setting a non-default value for the ‘<code 1.317 + class=property>font-variant</code>’</a> or <a 1.318 + href="#propdef-font-feature-settings" 1.319 + title="font-feature-settings!!property">‘<code 1.320 + class=property>font-feature-settings</code>’</a>. For example, setting 1.321 + a non-default value for the ‘<code 1.322 class=property>letter-spacing</code>’ property disables ligatures. 1.323 1.324 <li>Font features implied by the value of the <a 1.325 @@ -5409,10 +5424,10 @@ 1.326 OpenType features (e.g. the ‘<a href="#propdef-font-kerning"><code 1.327 class=property>font-kerning</code></a>’ property). 1.328 1.329 - <li>Font features implied by the value of <span 1.330 - title="font-feature-settings!!property">‘<a 1.331 - href="#propdef-font-feature-settings"><code 1.332 - class=property>font-feature-settings</code></a>’</span> property. 1.333 + <li>Font features implied by the value of <a 1.334 + href="#propdef-font-feature-settings" 1.335 + title="font-feature-settings!!property">‘<code 1.336 + class=property>font-feature-settings</code>’</a> property. 1.337 </ol> 1.338 1.339 <p>This ordering allows authors to set up a general set of defaults for 1.340 @@ -5522,21 +5537,21 @@ 1.341 </pre> 1.342 1.343 <p>Within spans of class "special", discretionary ligatures <em>will</em> 1.344 - be rendered. This is because both the <span 1.345 - title="font-feature-settings!!property">‘<a 1.346 - href="#propdef-font-feature-settings"><code 1.347 - class=property>font-feature-settings</code></a>’</span> and ‘<a 1.348 + be rendered. This is because both the <a 1.349 + href="#propdef-font-feature-settings" 1.350 + title="font-feature-settings!!property">‘<code 1.351 + class=property>font-feature-settings</code>’</a> and ‘<a 1.352 href="#propdef-font-variant-ligatures"><code 1.353 class=property>font-variant-ligatures</code></a>’ properties apply to 1.354 these spans. Although the ‘<code class=css>no-discretionary 1.355 ligatures</code>’ setting of ‘<a 1.356 href="#propdef-font-variant-ligatures"><code 1.357 class=property>font-variant-ligatures</code></a>’ effectively disables 1.358 - the OpenType <span class=tag>dlig</span> feature, because the <span 1.359 - title="font-feature-settings!!property">‘<a 1.360 - href="#propdef-font-feature-settings"><code 1.361 - class=property>font-feature-settings</code></a>’</span> is resolved 1.362 - after that, the ‘<code class=property>dlig</code>’ value reenables 1.363 + the OpenType <span class=tag>dlig</span> feature, because the <a 1.364 + href="#propdef-font-feature-settings" 1.365 + title="font-feature-settings!!property">‘<code 1.366 + class=property>font-feature-settings</code>’</a> is resolved after 1.367 + that, the ‘<code class=property>dlig</code>’ value reenables 1.368 discretionary ligatures.</p> 1.369 </div> 1.370 1.371 @@ -5598,6 +5613,11 @@ 1.372 <dd>Serialized set of feature values. 1.373 </dl> 1.374 1.375 + <p class=issue>Should this be extended to make <a 1.376 + href="#cssfontfeaturevaluesrule"><code>CSSFontFeatureValuesRule</code></a> 1.377 + be a subclass of <code>CSSGroupingRule</code> with other CSSRule 1.378 + subclasses for each value definition block? 1.379 + 1.380 <h2 class=no-num id=platform-props-to-css>Appendix A: Mapping platform font 1.381 properties to CSS properties</h2> 1.382 1.383 @@ -6280,11 +6300,13 @@ 1.384 property"><strong>3.1</strong></a> 1.385 </ul> 1.386 1.387 - <li>font-feature-settings, <a href="#propdef-font-feature-settings" 1.388 - title=font-feature-settings><strong>6.12</strong></a> 1.389 + <li>font-feature-settings 1.390 <ul> 1.391 <li>descriptor, <a href="#descdef-font-feature-settings" 1.392 title="font-feature-settings, descriptor"><strong>4.7</strong></a> 1.393 + 1.394 + <li>property, <a href="#propdef-font-feature-settings" 1.395 + title="font-feature-settings, property"><strong>6.12</strong></a> 1.396 </ul> 1.397 1.398 <li>font-kerning, <a href="#propdef-font-kerning" 1.399 @@ -6428,7 +6450,7 @@ 1.400 title="none, font-variant-ligatures"><strong>6.4</strong></a> 1.401 </ul> 1.402 1.403 - <li>normal 1.404 + <li>normal, <a href="#normal" title=normal><strong>6.5</strong></a> 1.405 <ul> 1.406 <li>font-feature-settings, <a href="#font-feature-settings-normal-value" 1.407 title="normal, font-feature-settings"><strong>6.12</strong></a> 1.408 @@ -6531,6 +6553,10 @@ 1.409 <li>stylistic, <a href="#stylistic" 1.410 title=stylistic><strong>6.8</strong></a> 1.411 1.412 + <li>sub, <a href="#sub" title=sub><strong>6.5</strong></a> 1.413 + 1.414 + <li>super, <a href="#super" title=super><strong>6.5</strong></a> 1.415 + 1.416 <li>swash, <a href="#swash" title=swash><strong>6.8</strong></a> 1.417 1.418 <li>tabular-nums, <a href="#tabular-nums" 1.419 @@ -6615,8 +6641,7 @@ 1.420 <td>visual 1.421 1.422 <tr> 1.423 - <th><a class=property 1.424 - href="#propdef-font-feature-settings">font-feature-settings</a> 1.425 + <th><span class=property>font-feature-settings</span> 1.426 1.427 <td>normal | <feature-tag-value> # 1.428 1.429 @@ -6915,8 +6940,7 @@ 1.430 <td>N/A 1.431 1.432 <tr> 1.433 - <th><a class=property 1.434 - href="#propdef-font-feature-settings">font-feature-settings</a> 1.435 + <th><span class=property>font-feature-settings</span> 1.436 1.437 <td>normal | <feature-tag-value> # 1.438