@@ -1402,198 +1402,6 @@ Text Processing</h3>
14021402 white-space-bidirectionality-001.xht
14031403 </wpt>
14041404
1405- <h4 id="line-break-transform">
1406- Segment Break Transformation Rules</h4>
1407-
1408- <p> When 'white-space' is ''pre'' , ''pre-wrap'' , ''break-spaces'' , or ''pre-line'' ,
1409- <a>segment breaks</a> are not <a>collapsible</a>
1410- and are instead transformed into a preserved line feed (U+000A).
1411-
1412- <wpt pathprefix="/css/CSS2/text/">
1413- white-space-008.xht
1414- white-space-processing-016.xht
1415- white-space-processing-017.xht
1416- white-space-processing-018.xht
1417- </wpt>
1418-
1419- <p> For other values of 'white-space' , <a>segment breaks</a> are <a>collapsible</a> .
1420- Any collapsible <a>segment break</a> immediately following another collapsible <a>segment break</a>
1421- is removed.
1422- Then any remaining <a>segment break</a> is
1423- either transformed into a space (U+0020) or removed
1424- depending on the context before and after the break:
1425-
1426- <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1427- segment-break-transformation-removable-2.html
1428- segment-break-transformation-removable-4.html
1429- </wpt>
1430-
1431- <ul>
1432- <li> If the character immediately before or immediately after the [=segment break=]
1433- is the zero-width space character (U+200B), then the break
1434- is removed, leaving behind the zero-width space.
1435-
1436- <wpt>
1437- white-space/seg-break-transformation-016.html
1438- white-space/seg-break-transformation-017.html
1439- white-space/seg-break-transformation-018.html
1440- white-space/seg-break-transformation-019.html
1441- </wpt>
1442- <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1443- segment-break-transformation-removable-1.html
1444- segment-break-transformation-removable-3.html
1445- </wpt>
1446- <li> Otherwise, if the <a>East Asian Width property</a> [[!UAX11]] of both
1447- the character before and after the [=segment break=] is
1448- <code> Fullwidth</code> , <code> Wide</code> , or <code> Halfwidth</code>
1449- (not <code> Ambiguous</code> ),
1450- and neither side is Hangul,
1451- then the [=segment break=] is removed.
1452-
1453- <wpt>
1454- white-space/seg-break-transformation-001.html
1455- white-space/seg-break-transformation-002.html
1456- white-space/seg-break-transformation-003.html
1457- white-space/seg-break-transformation-004.html
1458- white-space/seg-break-transformation-005.html
1459- white-space/seg-break-transformation-006.html
1460- white-space/seg-break-transformation-007.html
1461- white-space/seg-break-transformation-008.html
1462- white-space/seg-break-transformation-009.html
1463- white-space/seg-break-transformation-010.html
1464- white-space/seg-break-transformation-011.html
1465- white-space/seg-break-transformation-012.html
1466- white-space/seg-break-transformation-014.html
1467- white-space/seg-break-transformation-015.html
1468- </wpt>
1469- <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1470- segment-break-transformation-rules-001.html
1471- segment-break-transformation-rules-002.html
1472- segment-break-transformation-rules-003.html
1473- segment-break-transformation-rules-004.html
1474- segment-break-transformation-rules-005.html
1475- segment-break-transformation-rules-006.html
1476- segment-break-transformation-rules-007.html
1477- segment-break-transformation-rules-008.html
1478- segment-break-transformation-rules-009.html
1479- segment-break-transformation-rules-010.html
1480- segment-break-transformation-rules-011.html
1481- segment-break-transformation-rules-012.html
1482- segment-break-transformation-rules-013.html
1483- segment-break-transformation-rules-014.html
1484- segment-break-transformation-rules-015.html
1485- segment-break-transformation-rules-016.html
1486- segment-break-transformation-rules-017.html
1487- segment-break-transformation-rules-018.html
1488- segment-break-transformation-rules-019.html
1489- segment-break-transformation-rules-020.html
1490- segment-break-transformation-rules-021.html
1491- segment-break-transformation-rules-022.html
1492- segment-break-transformation-rules-023.html
1493- segment-break-transformation-rules-024.html
1494- segment-break-transformation-rules-025.html
1495- segment-break-transformation-rules-026.html
1496- segment-break-transformation-rules-027.html
1497- segment-break-transformation-rules-028.html
1498- segment-break-transformation-rules-029.html
1499- segment-break-transformation-rules-030.html
1500- segment-break-transformation-rules-031.html
1501- segment-break-transformation-rules-032.html
1502- segment-break-transformation-rules-033.html
1503- segment-break-transformation-rules-034.html
1504- segment-break-transformation-rules-035.html
1505- segment-break-transformation-rules-036.html
1506- segment-break-transformation-rules-037.html
1507- segment-break-transformation-rules-038.html
1508- segment-break-transformation-rules-039.html
1509- segment-break-transformation-rules-040.html
1510- segment-break-transformation-rules-041.html
1511- segment-break-transformation-rules-042.html
1512- segment-break-transformation-rules-043.html
1513- segment-break-transformation-rules-044.html
1514- segment-break-transformation-rules-045.html
1515- segment-break-transformation-rules-046.html
1516- segment-break-transformation-rules-047.html
1517- segment-break-transformation-rules-048.html
1518- segment-break-transformation-rules-049.html
1519- </wpt>
1520- <li> Otherwise, if the <a>writing system</a> of the <a>segment break</a>
1521- is <a for=writing-system>Chinese</a> , <a for=writing-system>Japanese</a> , or Yi,
1522- and the character before or after the [=segment break=]
1523- is punctuation or a symbol (Unicode <a>general category</a> P* or S*)
1524- and has an <a>East Asian Width property</a> of <code> Ambiguous</code> ,
1525- and the character on the other side of the [=segment break=] is
1526- <code> Fullwidth</code> , <code> Wide</code> , or <code> Halfwidth</code> ,
1527- and not Hangul,
1528- then the [=segment break=] is removed.
1529-
1530- <wpt>
1531- writing-system/writing-system-segment-break-001.html
1532- </wpt>
1533- <li> Otherwise, the [=segment break=] is converted to a space (U+0020).
1534- </ul>
1535-
1536- <p>
1537- For this purpose,
1538- Emoji (Unicode property <code> Emoji</code> )
1539- with an <a>East Asian Width property</a> of
1540- <code> Wide</code> or <code> Neutral</code>
1541- are treated as having an <a>East Asian Width property</a> of
1542- <code> Ambiguous</code> .
1543-
1544- <p class="note"> Note: The white space processing rules have already
1545- removed any [=tabs=] and [=spaces=] after the [=segment break=] before these checks
1546- take place.</p>
1547-
1548- <div class="example">
1549- The purpose of the segment break transformation rules
1550- (and white space collapsing in general)
1551- is to “unbreak” text that has been
1552- <a href="#white-space-processing">broken into segments</a>
1553- to make the document source code easier to work with.
1554- In languages that use word separators, such as English and Korean,
1555- “unbreaking” a line requires joining the two lines with a [=space=] .
1556-
1557- <figure>
1558- <pre>
1559- Here is an English paragraph
1560- that is broken into multiple lines
1561- in the source code so that it can
1562- more easily read in a text editor.
1563- </pre>
1564- <p> Here is an English paragraph that is broken into multiple lines in the source code so that it can be more easily read in a text editor.</p>
1565- <figcaption>
1566- Eliminating a line break in English requires maintaining a [=space=] in its place.
1567- </figcaption>
1568- </figure>
1569-
1570- In languages that have no word separators, such as Chinese,
1571- “unbreaking” a line requires joining the two lines with no intervening space.
1572-
1573- <figure>
1574- <pre>
1575- 这个段落是呢么长,
1576- 在一行写不行。最好
1577- 用三行写。
1578- </pre>
1579- <p> 这个段落是呢么长,在一行不行。最好用三行写。</p>
1580- <figcaption>
1581- Eliminating a line break in Chinese requires eliminating any intervening [=white space=] .
1582- </figcaption>
1583- </figure>
1584-
1585- The segment break transformation rules thus use adjacent context
1586- to either transform the segment break into a space
1587- or eliminate it entirely.
1588- </div>
1589-
1590- <p class="feedback issue"> Comments on how well these rules would work in practice would
1591- be very much appreciated, particularly from people who work with
1592- Thai and similar scripts.
1593- Note that browser implementations do not currently follow these rules consistently
1594- (although IE does in some cases transform the break,
1595- and Firefox follows the first two bullet points).</p>
1596-
15971405 <h4 id="white-space-phase-2">Phase II: Trimming and Positioning</h4>
15981406
15991407 <p> Then, the entire block is rendered.
@@ -1870,6 +1678,199 @@ Text Processing</h3>
18701678 when measuring the line’s contents for fit.
18711679 </div>
18721680
1681+
1682+ <h4 id="line-break-transform">
1683+ Segment Break Transformation Rules</h4>
1684+
1685+ <p> When 'white-space' is ''pre'' , ''pre-wrap'' , ''break-spaces'' , or ''pre-line'' ,
1686+ <a>segment breaks</a> are not <a>collapsible</a>
1687+ and are instead transformed into a preserved line feed (U+000A).
1688+
1689+ <wpt pathprefix="/css/CSS2/text/">
1690+ white-space-008.xht
1691+ white-space-processing-016.xht
1692+ white-space-processing-017.xht
1693+ white-space-processing-018.xht
1694+ </wpt>
1695+
1696+ <p> For other values of 'white-space' , <a>segment breaks</a> are <a>collapsible</a> .
1697+ Any collapsible <a>segment break</a> immediately following another collapsible <a>segment break</a>
1698+ is removed.
1699+ Then any remaining <a>segment break</a> is
1700+ either transformed into a space (U+0020) or removed
1701+ depending on the context before and after the break:
1702+
1703+ <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1704+ segment-break-transformation-removable-2.html
1705+ segment-break-transformation-removable-4.html
1706+ </wpt>
1707+
1708+ <ul>
1709+ <li> If the character immediately before or immediately after the [=segment break=]
1710+ is the zero-width space character (U+200B), then the break
1711+ is removed, leaving behind the zero-width space.
1712+
1713+ <wpt>
1714+ white-space/seg-break-transformation-016.html
1715+ white-space/seg-break-transformation-017.html
1716+ white-space/seg-break-transformation-018.html
1717+ white-space/seg-break-transformation-019.html
1718+ </wpt>
1719+ <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1720+ segment-break-transformation-removable-1.html
1721+ segment-break-transformation-removable-3.html
1722+ </wpt>
1723+ <li> Otherwise, if the <a>East Asian Width property</a> [[!UAX11]] of both
1724+ the character before and after the [=segment break=] is
1725+ <code> Fullwidth</code> , <code> Wide</code> , or <code> Halfwidth</code>
1726+ (not <code> Ambiguous</code> ),
1727+ and neither side is Hangul,
1728+ then the [=segment break=] is removed.
1729+
1730+ <wpt>
1731+ white-space/seg-break-transformation-001.html
1732+ white-space/seg-break-transformation-002.html
1733+ white-space/seg-break-transformation-003.html
1734+ white-space/seg-break-transformation-004.html
1735+ white-space/seg-break-transformation-005.html
1736+ white-space/seg-break-transformation-006.html
1737+ white-space/seg-break-transformation-007.html
1738+ white-space/seg-break-transformation-008.html
1739+ white-space/seg-break-transformation-009.html
1740+ white-space/seg-break-transformation-010.html
1741+ white-space/seg-break-transformation-011.html
1742+ white-space/seg-break-transformation-012.html
1743+ white-space/seg-break-transformation-014.html
1744+ white-space/seg-break-transformation-015.html
1745+ </wpt>
1746+ <wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1747+ segment-break-transformation-rules-001.html
1748+ segment-break-transformation-rules-002.html
1749+ segment-break-transformation-rules-003.html
1750+ segment-break-transformation-rules-004.html
1751+ segment-break-transformation-rules-005.html
1752+ segment-break-transformation-rules-006.html
1753+ segment-break-transformation-rules-007.html
1754+ segment-break-transformation-rules-008.html
1755+ segment-break-transformation-rules-009.html
1756+ segment-break-transformation-rules-010.html
1757+ segment-break-transformation-rules-011.html
1758+ segment-break-transformation-rules-012.html
1759+ segment-break-transformation-rules-013.html
1760+ segment-break-transformation-rules-014.html
1761+ segment-break-transformation-rules-015.html
1762+ segment-break-transformation-rules-016.html
1763+ segment-break-transformation-rules-017.html
1764+ segment-break-transformation-rules-018.html
1765+ segment-break-transformation-rules-019.html
1766+ segment-break-transformation-rules-020.html
1767+ segment-break-transformation-rules-021.html
1768+ segment-break-transformation-rules-022.html
1769+ segment-break-transformation-rules-023.html
1770+ segment-break-transformation-rules-024.html
1771+ segment-break-transformation-rules-025.html
1772+ segment-break-transformation-rules-026.html
1773+ segment-break-transformation-rules-027.html
1774+ segment-break-transformation-rules-028.html
1775+ segment-break-transformation-rules-029.html
1776+ segment-break-transformation-rules-030.html
1777+ segment-break-transformation-rules-031.html
1778+ segment-break-transformation-rules-032.html
1779+ segment-break-transformation-rules-033.html
1780+ segment-break-transformation-rules-034.html
1781+ segment-break-transformation-rules-035.html
1782+ segment-break-transformation-rules-036.html
1783+ segment-break-transformation-rules-037.html
1784+ segment-break-transformation-rules-038.html
1785+ segment-break-transformation-rules-039.html
1786+ segment-break-transformation-rules-040.html
1787+ segment-break-transformation-rules-041.html
1788+ segment-break-transformation-rules-042.html
1789+ segment-break-transformation-rules-043.html
1790+ segment-break-transformation-rules-044.html
1791+ segment-break-transformation-rules-045.html
1792+ segment-break-transformation-rules-046.html
1793+ segment-break-transformation-rules-047.html
1794+ segment-break-transformation-rules-048.html
1795+ segment-break-transformation-rules-049.html
1796+ </wpt>
1797+ <li> Otherwise, if the <a>writing system</a> of the <a>segment break</a>
1798+ is <a for=writing-system>Chinese</a> , <a for=writing-system>Japanese</a> , or Yi,
1799+ and the character before or after the [=segment break=]
1800+ is punctuation or a symbol (Unicode <a>general category</a> P* or S*)
1801+ and has an <a>East Asian Width property</a> of <code> Ambiguous</code> ,
1802+ and the character on the other side of the [=segment break=] is
1803+ <code> Fullwidth</code> , <code> Wide</code> , or <code> Halfwidth</code> ,
1804+ and not Hangul,
1805+ then the [=segment break=] is removed.
1806+
1807+ <wpt>
1808+ writing-system/writing-system-segment-break-001.html
1809+ </wpt>
1810+ <li> Otherwise, the [=segment break=] is converted to a space (U+0020).
1811+ </ul>
1812+
1813+ <p>
1814+ For this purpose,
1815+ Emoji (Unicode property <code> Emoji</code> )
1816+ with an <a>East Asian Width property</a> of
1817+ <code> Wide</code> or <code> Neutral</code>
1818+ are treated as having an <a>East Asian Width property</a> of
1819+ <code> Ambiguous</code> .
1820+
1821+ <p class="note"> Note: The white space processing rules have already
1822+ removed any [=tabs=] and [=spaces=] after the [=segment break=] before these checks
1823+ take place.</p>
1824+
1825+ <div class="example">
1826+ The purpose of the segment break transformation rules
1827+ (and white space collapsing in general)
1828+ is to “unbreak” text that has been
1829+ <a href="#white-space-processing">broken into segments</a>
1830+ to make the document source code easier to work with.
1831+ In languages that use word separators, such as English and Korean,
1832+ “unbreaking” a line requires joining the two lines with a [=space=] .
1833+
1834+ <figure>
1835+ <pre>
1836+ Here is an English paragraph
1837+ that is broken into multiple lines
1838+ in the source code so that it can
1839+ more easily read in a text editor.
1840+ </pre>
1841+ <p> Here is an English paragraph that is broken into multiple lines in the source code so that it can be more easily read in a text editor.</p>
1842+ <figcaption>
1843+ Eliminating a line break in English requires maintaining a [=space=] in its place.
1844+ </figcaption>
1845+ </figure>
1846+
1847+ In languages that have no word separators, such as Chinese,
1848+ “unbreaking” a line requires joining the two lines with no intervening space.
1849+
1850+ <figure>
1851+ <pre>
1852+ 这个段落是呢么长,
1853+ 在一行写不行。最好
1854+ 用三行写。
1855+ </pre>
1856+ <p> 这个段落是呢么长,在一行不行。最好用三行写。</p>
1857+ <figcaption>
1858+ Eliminating a line break in Chinese requires eliminating any intervening [=white space=] .
1859+ </figcaption>
1860+ </figure>
1861+
1862+ The segment break transformation rules thus use adjacent context
1863+ to either transform the segment break into a space
1864+ or eliminate it entirely.
1865+ </div>
1866+
1867+ <p class="feedback issue"> Comments on how well these rules would work in practice would
1868+ be very much appreciated, particularly from people who work with
1869+ Thai and similar scripts.
1870+ Note that browser implementations do not currently follow these rules consistently
1871+ (although IE does in some cases transform the break,
1872+ and Firefox follows the first two bullet points).</p>
1873+
18731874 <h3 id="tab-size-property" caniuse="css3-tabsize" oldids="tab-size">
18741875 Tab Character Size: the 'tab-size' property</h3>
18751876
0 commit comments