Skip to content

Commit b07a9f9

Browse files
committed
Rewrite prose for 'text-spacing' to be agnostic wrt adding space or removing space.
1 parent 72fdbf8 commit b07a9f9

2 files changed

Lines changed: 169 additions & 120 deletions

File tree

css3-text/Overview.html

Lines changed: 92 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,14 @@
8383

8484
<h1>CSS Text Level 3</h1>
8585

86-
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 19 April 2011</h2>
86+
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 20 April 2011</h2>
8787

8888
<dl>
8989
<dt>This version:
9090

9191
<dd><a href="http://dev.w3.org/csswg/css3-text/Overview.html">$Date:
92-
2011/04/19 17:16:46 $ (CVS $Revision$)</a> <!--
93-
<dd><a href="http://www.w3.org/TR/2011/WD-css3-text-20110419/">http://www.w3.org/TR/2011/WD-css3-text-20110419/</a></dd>
92+
2011/04/19 18:25:14 $ (CVS $Revision$)</a> <!--
93+
<dd><a href="http://www.w3.org/TR/2011/WD-css3-text-20110420/">http://www.w3.org/TR/2011/WD-css3-text-20110420/</a></dd>
9494
-->
9595

9696

@@ -3573,88 +3573,120 @@ <h3 id=text-spacing-prop><span class=secno>9.3. </span> <a
35733573
<td>specified value
35743574
</table>
35753575

3576-
<p>This property determines spacing between two characters classes. The
3577-
spacing may either be created or trimmed. Values are defined as follows:
3576+
<p>This property controls spacing between adjacent characters within the
3577+
same inline formatting context using a set of character-class-based rules.
3578+
Such spacing can either be created between or trimmed from the affected
3579+
glyphs. Values are defined as follows:
35783580

35793581
<dl>
35803582
<dt><dfn id=normal5 title="text-spacing:normal">normal</dfn>
35813583

3582-
<dd>Trim (kern) the blank half of fullwidth closing punctuation at the end
3583-
of each line if it does not otherwise fit prior to justification.</dd>
3584-
<!--
3585-
<dd>Equivalent to &lsquo;<code class=css>space-start allow-end justify</code>&rsquo;.</dd>
3586-
-->
3584+
<dd>Specifies the baseline behavior (defined below).
3585+
<!-- Equivalent to ''space-start allow-end justify'' -->
35873586

35883587
<dt><dfn id=trim-start title="text-spacing:trim-start">trim-start</dfn>
35893588

3590-
<dd>Trim (kern) the blank half of fullwidth opening punctuation at the
3591-
beginning of each line.</dd>
3592-
<!--
3589+
<dd>Set fullwidth opening punctuation flush at the start of each line. The
3590+
UA must trim the blank half of fullwidth punctuation glyphs if necessary.
3591+
<!--
35933592
<dt><dfn title="text-spacing:space-start">space-start</dfn></dt>
3594-
<dd>Do not trim the blank half of fullwidth opening punctuation at
3595-
the beginning of each line.</dd>
3593+
<dd>Set fullwidth opening punctuation at full width at the start
3594+
of each line. The UA must blank space to fullwidth
3595+
punctuation if they are not already full width.
35963596
-->
3597-
<!--
3597+
<!--
35983598
<dt><dfn title="text-spacing:allow-end">allow-end</dfn></dt>
3599-
<dd>Trim (kern) the blank half of fullwidth closing punctuation at
3600-
the end of each line if it does not otherwise fit prior to
3601-
justification.</dd>
3599+
<dd>Set fullwidth closing punctuation flush at the end of each
3600+
line if it does not otherwise fit prior to justification.
3601+
The UA must trim the blank half of fullwidth punctuation
3602+
glyphs if necessary.
36023603
-->
3604+
36033605

36043606
<dt><dfn id=trim-end title="text-spacing:trim-end">trim-end</dfn>
36053607

3606-
<dd>Trim (kern) the blank half of fullwidth closing punctuation at the end
3607-
of each line.
3608+
<dd>Set fullwidth closing punctuation flush at the end of each line. The
3609+
UA must trim the blank half of fullwidth punctuation glyphs if necessary.
36083610

3609-
<dt><dfn id=space-end title="text-spacing:keep-end">space-end</dfn>
3611+
<dt><dfn id=space-end title="text-spacing:space-end">space-end</dfn>
36103612

3611-
<dd>Do not trim the blank half of fullwidth closing punctuation at the end
3612-
of each line.
3613-
3614-
<dt><dfn id=no-justify title="text-spacing:no-justify">no-justify</dfn>
3615-
3616-
<dd>The blank portions of fullwidth punctuation must not be trimmed during
3617-
the justification process. (If this value is not specified, the
3618-
justification process may trim the blank portions of fullwidth
3619-
punctuation glyphs.) <span class=note> An example of compression rules is
3620-
given for Japanese in 3.8 Line Adjustment in <a href="#JLREQ"
3621-
rel=biblioentry>[JLREQ]<!--{{JLREQ}}--></a>.</span>
3613+
<dd>Set fullwidth opening punctuation at full width at the start of each
3614+
line. The UA must add blank space to fullwidth punctuation if they are
3615+
not already full width.
36223616

36233617
<dt><dfn id=ideograph-alpha
36243618
title="text-spacing:ideograph-alpha">ideograph-alpha</dfn>
36253619

36263620
<dd>Creates 1/4em extra spacing between runs of ideographic letters and
36273621
non-ideographic letters, such as Latin-based, Cyrillic, Greek, Arabic or
3628-
Hebrew. <span class=note>A commonly used algorithm for determining this
3629-
behavior is specified in <a href="#JLREQ"
3622+
Hebrew. Unless &lsquo;<code class=css>no-justify</code>&rsquo; is also
3623+
specified, this autospacing may be altered by the justification process.
3624+
<span class=note>A commonly used algorithm for determining this behavior
3625+
is specified in <a href="#JLREQ"
36303626
rel=biblioentry>[JLREQ]<!--{{JLREQ}}--></a></span>
36313627

36323628
<dt><dfn id=ideograph-numeric
36333629
title="text-spacing:ideograph-numeric">ideograph-numeric</dfn>
36343630

36353631
<dd>Creates 1/4em extra spacing between runs of ideographic letters and
3636-
non-ideographic numeric glyphs. <span class=note>A commonly used
3637-
algorithm for determining this behavior is specified in <a href="#JLREQ"
3638-
rel=biblioentry>[JLREQ]<!--{{JLREQ}}--></a></span>
3632+
non-ideographic numeric glyphs. Unless &lsquo;<code
3633+
class=css>no-justify</code>&rsquo; is also specified, this autospacing
3634+
may be altered by the justification process. <span class=note>A commonly
3635+
used algorithm for determining this behavior is specified in <a
3636+
href="#JLREQ" rel=biblioentry>[JLREQ]<!--{{JLREQ}}--></a></span>
36393637

36403638
<dt><dfn id=punctuation title="text-spacing:punctuation">punctuation</dfn>
36413639

36423640

36433641
<dd>Creates extra non-breaking spacing around punctuation as required by
3644-
language-specific typographic conventions. For example, if the element's
3642+
language-specific typographic conventions. In CSS3, if the element's
36453643
content language is French, narrow no-break space (U+202F) and no-break
3646-
space (U+00A0) should be inserted where required by <a
3644+
space (U+00A0) is be inserted where required by <a
36473645
href="http://unicode.org/udhr/n/notes_fra.html">French typographic
3648-
guidelines</a>.
3646+
guidelines</a>. Otherwise this value has no effect. However future
3647+
specifications may add automatic spacing behavior for other languages.
3648+
3649+
<dt><dfn id=no-justify title="text-spacing:no-justify">no-justify</dfn>
3650+
3651+
<dd>Justification may not alter text-spacing. (If this value is not
3652+
specified, the justification process may alter autospacing.) <span
3653+
class=note> An example of compression rules is given for Japanese in 3.8
3654+
Line Adjustment in <a href="#JLREQ"
3655+
rel=biblioentry>[JLREQ]<!--{{JLREQ}}--></a>.</span>
36493656
</dl>
36503657

3651-
<p>In all cases, the UA must trim (kern) the blank half of fullwidth
3652-
opening punctuation if its previous adjacent character is a fullwidth
3653-
opening punctuation, fullwidth middle dot punctuation, fullwidth closing
3654-
punctuation, or ideographic space (U+3000). It must also trim (kern) the
3655-
blank half of fullwidth closing punctuation if its next adjacent character
3656-
is a fullwidth closing punctuation, fullwidth middle dot punctuation, or
3657-
ideographic space (U+3000).
3658+
<p>In the baseline behavior the UA must:
3659+
3660+
<ul>
3661+
<li>Set fullwidth opening punctuation at full width at the start of each
3662+
line. (This can require adding space to punctuation glyphs.) This
3663+
behavior can be overridden by specifying &lsquo;<code
3664+
class=css>trim-start</code>&rsquo;.
3665+
3666+
<li>Set fullwidth closing punctuation flush at the end of each line if it
3667+
does not otherwise fit prior to justification. (This can require trimming
3668+
the blank half of fullwidth punctuation glyphs.) This behavior can be
3669+
overridden by specifying &lsquo;<code class=css>space-end</code>&rsquo;
3670+
or &lsquo;<code class=css>trim-end</code>&rsquo;.
3671+
3672+
<li>Set fullwidth opening punctuation at half width if the previous
3673+
character is a fullwidth opening punctuation, fullwidth middle dot
3674+
punctuation, fullwidth closing punctuation, or ideographic space
3675+
(U+3000). Else set it at full width and, unless &lsquo;<code
3676+
class=css>no-justify</code>&rsquo; is specified, allow justification to
3677+
alter this spacing.
3678+
3679+
<li>Set fullwidth closing punctuation at half width if the previous
3680+
character is a fullwidth closing punctuation, fullwidth middle dot
3681+
punctuation, or ideographic space (U+3000). Else set it at full width
3682+
and, unless &lsquo;<code class=css>no-justify</code>&rsquo; is specified,
3683+
allow justification to alter this spacing.
3684+
</ul>
3685+
3686+
<p>Depending on the font system, text-spacing may require either trimming
3687+
(kerning) the blank half of fullwidth punctuation glyphs (if they must be
3688+
set flush / at half width), or adding 1/2em of space to the glyphs (if
3689+
they must be set at full width). When set at full width
36583690

36593691
<div class=example>
36603692
<p>The following example table lists the punctuation pairs affected by
@@ -3815,11 +3847,10 @@ <h3 id=text-spacing-prop><span class=secno>9.3. </span> <a
38153847
</ul>
38163848
</dl>
38173849

3818-
<p>Fullwidth opening and closing punctuation must not be trimmed if the
3819-
glyph is not actually fullwidth. This includes the case where the glyph is
3820-
not fullwidth as a result of the kerning in the font. A fullwidth glyph is
3821-
one that has the same advance width as a typical Han character in the same
3822-
font.
3850+
<p>Fullwidth punctuation must not be trimmed if the glyph is not actually
3851+
fullwidth. This includes the case where the glyph is not fullwidth as a
3852+
result of the kerning in the font. A fullwidth glyph is one that has the
3853+
same advance width as a typical Han character in the same font.
38233854

38243855
<p>Whether fullwidth colon punctuation and fullwidth dot punctuation should
38253856
be considered fullwidth closing punctuation or fullwidth middle dot
@@ -3891,10 +3922,6 @@ <h3 id=text-spacing-prop><span class=secno>9.3. </span> <a
38913922
standard convention is often not followed.</p>
38923923
</div>
38933924

3894-
<p>When creating extra spacing, the added width does not correspond to the
3895-
insertion of additional space characters, but instead to the width
3896-
increment of existing glyphs.
3897-
38983925
<p>This property is additive with the &lsquo;<a href="#word-spacing0"><code
38993926
class=property>word-spacing</code></a>&rsquo; and &lsquo;<a
39003927
href="#letter-spacing0"><code
@@ -3907,11 +3934,11 @@ <h3 id=text-spacing-prop><span class=secno>9.3. </span> <a
39073934
&lsquo;<a href="#word-spacing0"><code
39083935
class=property>word-spacing</code></a>&rsquo;.
39093936

3910-
<p>This property applies only to the same inline element context, and can
3911-
apply across elements if in the same inline element context.
3912-
3913-
<p>At element boundaries, the font size of the extra spacing is given by
3914-
and rendered within the innermost element that contains the boundary.
3937+
<p>At element boundaries, the amount of extra spacing introduced between
3938+
characters is determined by and rendered within the innermost element that
3939+
contains the boundary. If the extra spacing is applied to a particular
3940+
glyph, then the spacing is determined by the innermost element containing
3941+
that glyph.
39153942

39163943
<p>Support for this property is <em>optional</em>. It is strongly
39173944
recommended for UAs that wish to support CJK typography.
@@ -6915,9 +6942,6 @@ <h2 class=no-num id=index>Appendix I: Index</h2>
69156942
<li>text-spacing:ideograph-numeric, <a href="#ideograph-numeric"
69166943
title="text-spacing:ideograph-numeric"><strong>9.3.</strong></a>
69176944

6918-
<li>text-spacing:keep-end, <a href="#space-end"
6919-
title="text-spacing:keep-end"><strong>9.3.</strong></a>
6920-
69216945
<li>text-spacing:no-justify, <a href="#no-justify"
69226946
title="text-spacing:no-justify"><strong>9.3.</strong></a>
69236947

@@ -6927,6 +6951,9 @@ <h2 class=no-num id=index>Appendix I: Index</h2>
69276951
<li>text-spacing:punctuation, <a href="#punctuation"
69286952
title="text-spacing:punctuation"><strong>9.3.</strong></a>
69296953

6954+
<li>text-spacing:space-end, <a href="#space-end"
6955+
title="text-spacing:space-end"><strong>9.3.</strong></a>
6956+
69306957
<li>text-spacing:trim-end, <a href="#trim-end"
69316958
title="text-spacing:trim-end"><strong>9.3.</strong></a>
69326959

0 commit comments

Comments
 (0)