@@ -27,6 +27,7 @@ Ignored Terms: outline-top
2727Ignored Terms : outline-left
2828At Risk : ::value ::choices pseudo-elements
2929At Risk : 'box-sizing' property value: padding-box
30+ At Risk : 'caret-color' property
3031At Risk : 'ime-mode' property
3132At Risk : 'text-overflow' property value: <string>
3233At Risk : 'text-overflow' property 2-value syntax and definition
@@ -88,15 +89,15 @@ introduced several user interface related pseudo-classes, properties and values.
8889This Working Draft incorporates and extends them to provide the ability, through CSS,
8990to style elements based upon additional user interface states,
9091to style fragments of user interface elements, and to alter the
91- dynamic presentation of elements in ways previously only available through specific HTML4/XHTML1 elements and attributes.
92+ dynamic presentation of elements in ways previously only available through specific HTML elements and attributes.
9293
9394<h3 id="purpose">Purpose</h3>
9495
9596The purpose of this specification is to achieve the following objectives:
9697<ul>
9798<li> Extend the user interface features in CSS2.1.
9899<li> Provide additional CSS mechanisms to augment or replace other
99- dynamic presentation related features in HTML4/XHTML1 .
100+ dynamic presentation related features in HTML .
100101<li> Introduce directional navigation properties to assist in the construction of
101102user interfaces which make use of a directional navigation model.
102103</ul>
@@ -182,8 +183,8 @@ and the currently chosen radio button can be selected with the ''::value'' pseud
182183<tr><th> Value:</th><td>
183184content-box |
184185padding-box |
185- border-box |
186- inherit </td></tr>
186+ border-box
187+ </td></tr>
187188<tr><th> Initial:</th><td> content-box</td></tr>
188189<tr><th> Applies to:</th><td> all elements that accept width or height</td></tr>
189190<tr><th> Inherited:</th><td> no</td></tr>
@@ -280,19 +281,21 @@ ways:
280281
281282<ol>
282283<li> Outlines do not take up space.
283- <li> Outlines may be non-rectangular.
284+ <li> Outlines may be non-rectangular.
285+ <li> UAs often render outlines on elements in the :focus state.
284286</ol>
285287
286288The outline properties control the style of these dynamic outlines.
287289
290+ Keyboard users depend on outline on elements in the :focus state for interaction with the page, thus authors must not make the outline invisible on such elements without making sure an alternative highlighting mechanism is provided.
291+
288292<h3 id="outline">'outline' property</h3>
289293
290294<table class="propdef"><tbody>
291295<tr><th> Name:</th><td> <dfn>outline</dfn> </td></tr>
292296<tr><th> Value:</th><td>
293297[ <'outline-color' > || <'outline-style' > ||
294- <'outline-width' > ] |
295- inherit
1F0E
298+ <'outline-width' > ]
296299</td></tr>
297300<tr><th> Initial:</th><td> see individual properties</td></tr>
298301<tr><th> Applies to:</th><td> all elements</td></tr>
@@ -307,7 +310,7 @@ inherit
307310
308311<table class="propdef"><tbody>
309312<tr><th> Name:</th><td> <dfn>outline-width</dfn> </td></tr>
310- <tr><th> Value:</th><td> <<'border-width'>> | inherit </td></tr>
313+ <tr><th> Value:</th><td> <<'border-width'>> </td></tr>
311314<tr><th> Initial:</th><td> medium</td></tr>
312315<tr><th> Applies to:</th><td> all elements</td></tr>
313316<tr><th> Inherited:</th><td> no</td></tr>
@@ -321,7 +324,7 @@ inherit
321324
322325<table class="propdef"><tbody>
323326<tr><th> Name:</th><td> <dfn>outline-style</dfn> </td></tr>
324- <tr><th> Value:</th><td> auto | <<'border-style'>> | inherit </td></tr>
327+ <tr><th> Value:</th><td> auto | <<'border-style'>> </td></tr>
325328<tr><th> Initial:</th><td> none</td></tr>
326329<tr><th> Applies to:</th><td> all elements</td></tr>
327330<tr><th> Inherited:</th><td> no</td></tr>
@@ -335,7 +338,7 @@ inherit
335338
336339<table class="propdef"><tbody>
337340<tr><th> Name:</th><td> <dfn>outline-color</dfn> </td></tr>
338- <tr><th> Value:</th><td> <<color>> | invert | inherit </td></tr>
341+ <tr><th> Value:</th><td> <<color>> | invert</td></tr>
339342<tr><th> Initial:</th><td> invert</td></tr>
340343<tr><th> Applies to:</th><td> all elements</td></tr>
341344<tr><th> Inherited:</th><td> no</td></tr>
@@ -399,8 +402,10 @@ regardless of color background.
399402
400403Conformant UAs may ignore the ''invert'' value
401404on platforms that do not support color inversion of the pixels on the screen.
405+
402406If the UA does not support the ''invert'' value
403- then the initial value of the 'outline-color' property
407+ then it must reject that value at parse-time, and
408+ the initial value of the 'outline-color' property
404409is the ''currentColor'' [[!CSS3COLOR]] keyword.
405410
406411The 'outline' property is a shorthand property,
@@ -452,7 +457,7 @@ However, it is possible to offset the outline and draw it beyond the border edge
452457
453458<table class="propdef"><tbody>
454459<tr><th> Name:</th><td> <dfn>outline-offset</dfn> </td></tr>
455- <tr><th> Value:</th><td> <length> | inherit </td></tr>
460+ <tr><th> Value:</th><td> <length></td></tr>
456461<tr><th> Initial:</th><td> 0</td></tr>
457462<tr><th> Applies to:</th><td> all elements</td></tr>
458463<tr><th> Inherited:</th><td> no</td></tr>
@@ -494,7 +499,7 @@ and if so, along which axis/axes.
494499
495500<table class="propdef"><tbody>
496501<tr><th> Name:</th><td> <dfn>resize</dfn> </td></tr>
497- <tr><th> Value: </th><td> none | both | horizontal | vertical | inherit </td></tr>
502+ <tr><th> Value: </th><td> none | both | horizontal | vertical</td></tr>
498503<tr><th> Initial:</th><td> none</td></tr>
499504<tr><th> Applies to:</th><td> elements with 'overflow' other than visible</td></tr>
500505<tr><th> Inherited:</th><td> no</td></tr>
@@ -610,12 +615,11 @@ too bad we don't have @viewport yet. otherwise this would be cool:
610615<tr><th> Name:</th>
611616 <td> <dfn>text-overflow</dfn> </td></tr>
612617<tr><th> Value:</th>
613- <td> (
618+ <td> [
614619clip |
615620ellipsis |
616621<<string>>
617- ){1,2} |
618- inherit
622+ ]{1,2}
619623</td></tr>
620624<tr><th> Initial:</th>
621625 <td> clip</td></tr>
@@ -854,11 +858,47 @@ to display the edge of the content
854858at which point that content should be displayed
855859rather than an ellipsis/string.
856860
861+ <div class="example"><p style="display:none"> Example(s):
862+
863+ This example uses text-overflow on an element with overflow scroll
864+ to demonstrate the above described behavior.
865+
866+ sample CSS:
867+ <pre><code class="lang-css">
868+ div.crawlbar {
869+ text-overflow: ellipsis;
870+ height: 2em;
871+ overflow: scroll;
872+ white-space: nowrap;
873+ width: 15em;
874+ border:1em solid black;
875+ }
876+ </code></pre>
877+
878+ sample HTML fragment:
879+ <pre><code class="lang-markup">
880+ <div class="crawlbar">
881+ CSS is awesome, especially when you can scroll
882+ to see extra text instead of just
883+ having it overlap other text by default.
884+ </div>
885+ </code></pre>
886+
887+ demonstration of sample CSS and HTML:
888+ <div style="text-overflow: ellipsis; height: 2em; overflow: scroll; white-space: nowrap; width: 15em; border:1em solid black;">
889+ CSS is awesome, especially when you can scroll
890+ to see extra text instead of just
891+ having it overlap other text by default.
892+ </div>
893+ </div> <!-- example -->
894+
857895As some content is scrolled into view,
858896it is likely that other content may scroll out of view on the other side.
859897If that content's block container element is the same
860898that's doing the scrolling,
861- then implementations should render an ellipsis/string in place of
899+ and the computed value of 'text-overflow' has two values, with
900+ the first a non-clip value,
901+ then implementations must render an ellipsis/string in place of
862902the clipped content,
863903with the same details as described in the value definition above,
864904except that the ellipsis/string is drawn in the <a>start</a>
@@ -869,6 +909,17 @@ While the content is being scrolled,
869909implementations may adjust their rendering of ellipses/strings
870910(e.g. align to the box edges rather than line edges).
871911
912+ <div class="example"><p style="display:none"> Example(s):
913+
914+ Same as previous example except with <code> text-overflow: ellipsis ellipsis</code> , demonstrated:
915+
916+ <div style="text-overflow: ellipsis ellipsis; height: 2em; overflow: scroll; white-space: nowrap; width: 15em; border:1em solid black;">
917+ CSS is awesome, especially when you can scroll
918+ to see extra text instead of just
919+ having it overlap other text by default.
920+ </div>
921+ </div> <!-- example -->
2A8A
td>922+
872923If there is insufficient space for both start
873924and end ellipses/strings,
874925then only the end ellipsis/string should be rendered.
@@ -892,7 +943,7 @@ then only the end ellipsis/string should be rendered.
892943 all-scroll
893944| zoom-in | zoom-out
894945<br>
895- ] ] | inherit </td></tr>
946+ ] ] </td></tr>
896947<tr><th> Initial:</th><td> auto</td></tr>
897948<tr><th> Applies to:</th><td> all elements</td></tr>
898949<tr><th> Inherited:</th><td> yes</td></tr>
@@ -915,6 +966,7 @@ If the user agent cannot handle the first cursor of a list of cursors,
915966it must attempt to handle the second, etc.
916967If the user agent cannot handle any user-defined cursor,
917968it must use the cursor keyword at the end of the list.
969+ Conforming User Agents may, instead of <uri>, support <image> which is a superset.
918970The optional <x> and <y> coordinates
919971identify the exact position within the image which is the pointer position (i.e., the hotspot).
920972</dd>
@@ -1087,16 +1139,71 @@ to the next value and attempt to use the "hyper.cur" cursor.
10871139If that cursor format was also not supported,
10881140the UA could attempt to use the "hyper.png" cursor with the explicit hot spot.
10891141Finally if the UA does not support any of those image cursor formats, the UA would skip to the last value
1090- and simply render the ''pointer'' cursor.
1142+ and render the ''pointer'' cursor.
10911143</div>
10921144
1145+ <h5 id="canvas_cursor">Cursor of the canvas</h5>
1146+
1147+ The document <a href="http://www.w3.org/TR/CSS21/intro.html#the-canvas">canvas</a>
1148+ is the infinite surface over which the document is rendered [[!CSS21]] .
1149+ Since no element corresponds to the canvas,
1150+ in order to allow styling of the cursor when not over any element,
1151+ the canvas cursor re-uses the root element's cursor.
1152+ However, if no boxes are generated for the root element
1153+ (for example, if the root element has ''display: none'' ),
1154+ then the canvas cursor is the platform-dependent default cursor.
1155+
1156+ Note: An element might be invisible,
1157+ but still generate boxes. For example,
1158+ if the element has ''visibility: hidden'' but not ''display: none'' ,
1159+ boxes are generated for it and its cursor is used for the canvas.
1160+
1161+
1162+ <h3 id="insertion-caret">Insertion caret</h3>
1163+
1164+ <h4 id="caret-color">Coloring the insertion caret: caret-color</h4>
1165+ <table class="propdef"><tbody>
1166+ <tr><th> Name: </th><td> <dfn>caret-color</dfn> </td></tr>
1167+ <tr><th> Value: </th><td> auto | <color></td></tr>
1168+ <tr><th> Initial:</th><td> auto</td></tr>
1169+ <tr><th> Applies to:</th><td> elements that accept input</td></tr>
1170+ <tr><th> Inherited:</th><td> no</td></tr>
1171+ <tr><th> Percentages:</th><td> N/A</td></tr>
1172+ <tr><th> Media:</th><td> interactive</td></tr>
1173+ <tr><th> Computed value:</th><td> The computed value for ''auto'' is ''currentColor'' . For <color> values, the computed value is as defined for the [[!CSS3COLOR]] 'color' property.</td></tr>
1174+ <tr><th> Animatable:</th><td> no</td></tr>
1175+ </tbody></table>
1176+
1177+ <dl>
1178+ <dt> auto</dt>
1179+ <dd> the color of the element.</dd>
1180+ <dt> <color></dt>
1181+ <dd> the insertion caret is colored with the specified color.</dd>
1182+ </dl>
1183+
1184+ The caret is a visible indicator of the insertion point in an element where text (and potentially other content) is inserted by the user. This property controls the color of that visible indicator.
1185+
1186+ Note: caret shape and blinking is outside the scope of this feature and thus unspecified.
1187+
1188+ <div class="example">
1189+ Example: a textarea with
1190+ <code class="lang-css"> caret-color:#00aacc;</code>
1191+
1192+ <textarea style="caret-color:#00aacc;">
1193+ caret-color:#00aacc
1194+ </textarea>
1195+
1196+ </div> <!-- example -->
1197+
1198+ Note: The caret-color property is at risk.
1199+
10931200
10941201<h3 id="keyboard">Keyboard control</h3>
10951202
10961203<h4 id="nav-dir">Directional focus navigation: the 'nav-up', 'nav-right', 'nav-down', 'nav-left' properties</h4>
10971204<table class="propdef"><tbody>
10981205<tr><th> Name: </th><td> <dfn>nav-up</dfn> , <dfn>nav-right</dfn> , <dfn>nav-down</dfn> , <dfn>nav-left</dfn> </td></tr>
1099- <tr><th> Value: </th><td> auto | <id> [ current | root | <target-name> ] ? | inherit </td></tr>
1206+ <tr><th> Value: </th><td> auto | <id> [ current | root | <target-name> ] ? </td></tr>
11001207<tr><th> Initial:</th><td> auto</td></tr>
11011208<tr><th> Applies to:</th><td> all enabled elements</td></tr>
11021209<tr><th> Inherited:</th><td> no</td></tr>
@@ -1124,7 +1231,7 @@ the user agent automatically determines which element to navigate the focus to.
11241231<dt> <target-name></dt>
11251232<dd>
11261233The <target-name> parameter indicates the target frame for the focus navigation.
1127- It is a string and it cannot start with the underscore "_" character.
1234+ It is a < string> and it cannot start with the underscore "_" character.
11281235If the specified target frame does not exist,
11291236the parameter will be treated as the keyword ''current'' ,
11301237which means to simply use the frame that the element is in.
@@ -1188,7 +1295,8 @@ it is still important to ensure focus navigation behaviors which relate reasonab
11881295
11891296<table class="propdef"><tbody>
11901297<tr><th> Name: </th><td> <dfn>ime-mode</dfn> </td></tr>
1191- <tr><th> Value: </th><td> auto | normal | active | inactive | disabled | inherit</td></tr>
1298+ <tr><th> Value: </th><td> auto | normal | active | inactive | disabled
1299+ </td></tr>
11921300<tr><th> Initial:</th><td> auto</td></tr>
11931301<tr><th> Applies to:</th><td> text fields</td></tr>
11941302<tr><th> Inherited:</th><td> no</td></tr>
@@ -1378,23 +1486,25 @@ button
13781486 white-space:normal;
13791487}
13801488
1381- input[type=reset]
1489+ input[type=reset] :lang(en)
13821490{
1383- /* default content of HTML4/XHTML1 input type=reset button */
1491+ /* default content of HTML input type=reset button, per language */
13841492 content: "Reset";
13851493}
13861494
1387- input[type=submit]
1495+ input[type=submit] :lang(en)
13881496{
1389- /* default content of HTML4/XHTML1 input type=submit button */
1497+ /* default content of HTML input type=submit button, per language */
13901498 content: "Submit";
13911499}
13921500
1501+ /* UAs should use language-specific Reset/Submit rules for others. */
1502+
13931503input[type=button] ,
13941504input[type=reset][value] ,
13951505input[type=submit][value]
13961506{
1397- /* text content/labels of HTML4/XHTML1 "input" buttons */
1507+ /* text content/labels of HTML "input" buttons */
13981508 content: attr(value);
13991509}
14001510
@@ -1406,7 +1516,7 @@ textarea
14061516
14071517input[type=hidden]
14081518{
1409- /* appearance of the HTML4/XHTML1 hidden text field in particular */
1519+ /* appearance of the HTML hidden text field in particular */
14101520 display: none;
14111521}
14121522
@@ -1434,7 +1544,7 @@ select,select[size=1]
14341544
14351545select[size] :active
14361546{
1437- /* active HTML4/XHTML <select> w/ size more than 1 - appearance of active list */
1547+ /* active HTML <select> w/ size more than 1 - appearance of active list */
14381548 display: inline-block;
14391549}
14401550
0 commit comments