RE: svg2: merge in content from SVG Color

>
> You mean n-channels in an ICC profile or actual NChannel colors, as an
> extension to DeviceN color?  There is a big difference...

I don't know. Chris' spec doesn't specify.
He probably isn't thinking of introducing concepts like hexachrome, so it probably DeviceN.

>
> First, do you handle Spots as PDF does or as XPS does (or something
> completely different)?   Second, what do you do about "alternate colors" (for
> which SVG doesn't currently have a concept of)?  Third, there is the tint
> transfer function to handle spot tints, which are quite common - how is that
> going to work in SVG?

Yes, that all needs to be added.
A simplistic model that just interpolates is likely good enough for now.

>
> As you point out, if you are going to actually introduce CMYK and Spot into
> (any) rendering model, then you also need to introduce Overprinting -
> because it's part of the physical graphics model of an ink-based device.  And,
> as you note, that means introducing OP preview.
>
> "Simply converting to RGB" for transparency isn't going to provide the
> correct results in most cases - especially if you want to have something that
> even vaguely represents the printed output.

This is what most PDF viewers do today. I don't think the use case to have the display match the print is that strong.
Most clients just want to be able to use CMYK when printing.

>
> -----Original Message-----
> From: Rik Cabanier
> Sent: Monday, August 20, 2012 4:30 PM
> To: Leonard Rosenthol; public-svg-wg@w3.org
> Subject: RE: svg2: merge in content from SVG Color
>
> > Please don't... Trying to introduce Spot and/or DeviceN colourants into
> SVG
> > (or the web in general) is just going to cause a nightmare of specification
> and
> > implementation details - especially in transparency handling.
>
> Why would that be?
> We have done this before and we know how to handle this. For screen
> display, everything will simply map to RGB before compositing.
> The CMYK + spot data will only be used when printing (or if someone is
> ambitious enough to implement overprint preview)
>
> Chris' spec has support for NChannel which is much harder than a simple spot
> color.
>
> >
> > I also think that there are various things in this SVG Color work that should
> > also be "subset" to keep things simple and focused for screen-based
> viewing.
> >
> > Leonard
> >
> > -----Original Message-----
> > From: Rik Cabanier
> > Sent: Monday, August 20, 2012 3:51 PM
> > To: Leonard Rosenthol; public-svg-wg@w3.org
> > Subject: RE: svg2: merge in content from SVG Color
> >
> > I agree, this is great.
> > Any chance that you can squeeze in spot colors?
> >
> > > -----Original Message-----
> > > From: Leonard Rosenthol [mailto:lrosenth@adobe.com]
> > > Sent: Monday, August 20, 2012 12:08 PM
> > > To: public-svg-wg@w3.org
> > > Subject: RE: svg2: merge in content from SVG Color
> > >
> > > This is all great stuff - but it's pretty useless unless you can get the rest of
> > the
> > > "HTML family of standards" to also adopt it.
> > >
> > > For example, if I have an image with an embedded ICC profile, it should
> > > render exactly the same regardless of whether it is specified in HTML,
> CSS,
> > > SVG, Canvas, etc...Right now, it's completely inconsistent.
> > >
> > > Any chance we could get the rest of the world to align with some/all of
> > these
> > > various color aspects.
> > >
> > > Leonard
> > >
> > > -----Original Message-----
> > > From: SVG Working Group repository [mailto:cam@mcc.id.au]
> > > Sent: Monday, August 20, 2012 2:44 PM
> > > To: public-svg-wg@w3.org
> > > Subject: svg2: merge in content from SVG Color
> > >
> > > details:   https://svgwg.org/hg/svg2/rev/2d7ac3e5d383
> > > branches:
> > > changeset: 323:2d7ac3e5d383
> > > user:      Chris Lilley <chris@w3.org>
> > > date:      Mon Aug 20 20:44:03 2012 +0200
> > > description:
> > > merge in content from SVG Color
> > >
> > > diffstat:
> > >
> > >  master/color.html        |  754
> ++++++++++++++++++++++++++++++++++++-
> > --
> > > -------
> > >  master/refs.html         |    5 +
> > >  master/style/default.css |   13 +-
> > >  3 files changed, 603 insertions(+), 169 deletions(-)
> > >
> > > diffs (969 lines):
> > >
> > > diff --git a/master/color.html b/master/color.html
> > > --- a/master/color.html
> > > +++ b/master/color.html
> > > @@ -59,36 +59,318 @@
> > >        <th>Owner:</th>
> > >        <td>Chris (no action)</td>
> > >      </tr>
> > >    </table>
> > >  </div>
> > >
> > >
> > >  <h2 id="ColorIntroduction">Introduction</h2>
> > > +
> > > +  <p>This introduction is non-normative</p>
> > > +
> > > +  <p>Several properties used in SVG take a color specification. Also,
> > > + external media such as images or video  contain colors.</p>
> > >
> > > -<p class="issue">
> > > -  This section should include an overall discussion of color in SVG as well
> as
> > > links to all the places color
> > > -  is discussed in the specification: currentColor, SVG colors, etc.
> > > -</p>
> > > -
> > > -<p>All SVG colors are specified in the sRGB color space -[<a
> > > href="refs.html#ref-SRGB">SRGB</a>]. At a minimum, SVG user -agents
> > shall
> > > conform to the color behavior requirements specified in the -<a
> > > href="http://www.w3.org/TR/2011/REC-CSS2-
> > > 20110607/syndata.html#color-units">color units section</a> -defined in
> > the
> > > CSS 2.1 specification.</p>
> > > +<p>All SVG colors used as property values include a fallback specified
> > > +in the sRGB color space [<a href="refs.html#ref-SRGB">SRGB</a>]. </p>
> > >
> > >  <p>Additionally, SVG content can specify an alternate color specification
> > > using an ICC profile [<a href="refs.html#ref-ICC42">ICC42</a>]
> > > -as described in <a href="painting.html#SpecifyingPaint">Specifying
> > > paint</a>.
> > > -If ICC-based colors are provided and the SVG user agent supports ICC
> > color,
> > > +<!-- check paint chapter for content that should be here, and move it --
> >.
> > > +If ICC-based colors are provided,
> > >  then the ICC-based color takes precedence over the sRGB color
> > > specification; -otherwise, the RGB fallback colors must be used.
> > > -Note that, in this specification, color interpolation occurs in an RGB
> color
> > > space even if an -ICC-based color specification is provided (see <a>'color-
> > > interpolation'</a>).</p>
> > > +otherwise, the sRGB fallback colors will be used.
> > > +Note that, in this specification, by default color interpolation occurs
> > > +in sRGB color space even if an ICC-based color specification is
> > > +provided, but this can be changed (see
> > > +<a>'color-interpolation'</a>).</p>
> > > +
> > > +  <div class="ready-for-wider-review">
> > > +    <h2 id="color-managed-images">Color-managed Images</h2>
> > > +
> > > +    <p class="note">
> > > +      New in SVG2.</p>
> > > +
> > > +    <p>Implementations of SVG2 are required to color-manage all
> images.
> > > + The embedded profile is used. If there is no embedded profile, sRGB is
> > > + assumed, for RGB images.</p>
> > > +
> > > +    <p class="issue">Define processing for untagged greyscale and CMYK
> > > + images. Could be a default profile, or an 'explicitly undefined' with
> > > + a warning to avoid untagged non-RGB images when authoring.</p>
> > > +
> > > +
> > > +    <div class="requirement" id="assert_taggedImages">
> > > +      <p>
> > > +        If a referenced image contains color profile information, a
> > > +        Color-managed User Agent MUST use that profile to render the
> > image
> > > +      </p>
> > > +    </div>
> > > +
> > > +    <div class="requirement" id="assert_untaggedImages">
> > > +      <p>
> > > +        If a referenced image contains no color profile information, a
> > > +        Color-managed User Agent MUST use the sRGB profile to render
> the
> > > image
> > > +      </p>
> > > +    </div>
> > > +
> > > +
> > > +    <h2 id="Color_syntax">Color syntax</h2>
> > > +
> > > +
> > > +    <h3 id="sRGBcolor">
> > > +      sRGB colors</h3>
> > > +
> > > +    <p  class="prop-value"><a href="#color">&lt;color&gt;</a></p>
> > > +
> > > +    <p>Example (these all represent the same color):</p>
> > > +    <div class="example">
> > > +      <pre>
> > > +    &lt;circle fill="rgb(205,133,63)"/>
> > > +    &lt;circle fill="peru"/>
> > > +    &lt;circle fill="rgb(80.392%, 52.157%, 24.706%)"/>
> > > +    &lt;circle fill="#CD853F"/>
> > > +    &lt;circle fill="hsl(30, 59%, 53%)"/></pre>
> > > +      </div>
> > > +
> > > +    <p class="note">
> > > +       Includes all syntactic forms supported by  SVG 1.1, adds hsl() from
> [<a
> > > href="refs.html#ref-CSS3COLOR">CSS3COLOR</a>].</p>
> > > +    <p class="note">See the CSS Color Module Level 3 specification for
> the
> > > +      definition of the color type.
> > > +      [<a href="refs.html#ref-CSS3COLOR">CSS3COLOR</a>]</p>
> > > +
> > > +    <div class="requirement" id="assert_base_syntax">
> > > +      <p>All the syntactic forms for an sRGB color, including the full set of
> > > color keywords, shall be supported by an SVG2 User Agent.</p>
> > > +    </div>
> > > +
> > > +    <p>The rendering requirements for sRGB colors are more strict than
> for
> > > SVG 1.1  User Agents,
> > > +      where color management is optional.</p>
> > > +    <div class="requirement" id="assert_render_sRGB">
> > > +      <p>
> > > +        When an sRGB color is used - because it is the sole color
> > specification,
> > > or in a
> > > +        permitted fallback situation - a conformant SVG2 User Agent
> > > +        shall render it in conformance with the ICC profile for sRGB, to
> obtain
> > > the
> > > +        desired color appearance.
> > > +      </p>
> > > +    </div>
> > > +
> > > +    <p class="issue">
> > > +      Define 'permitted fallback situation' and link to it.
> > > +    </p>
> > > +
> > > +    <h3 id="sRGBcoloralpha">
> > > +      sRGB colors with alpha</h3>
> > > +
> > > +    <p  class="prop-value"><a href="#color">rgba(r, g, b, a)</a></p>
> > > +
> > > +    <p>Example </p>
> > > +    <div class="example">
> > > +      <pre>
> > > +      &lt;circle fill="rgba(205,133,63, 0.5)"/></pre>
> > > +      </div>
> > > +
> > > +
> > > +    <p class="note">
> > > +      New in SVG2, added from  [<a
> > > + href="refs.html#ref-CSS3COLOR">CSS3COLOR</a>].</p>
> > > +
> > > +    <div class="requirement" id="assert_combine-alpha">
> > > +      <p>When an sRGB color with alpha is used in a property value,  an
> > SVG2
> > > User Agent shall combine the alpha value with any separately specified
> > alpha
> > > value that applies to that property, by multiplying the alpha values
> > > together.</p>
> > > +    </div>
> > > +
> > > +    <p>Example (these render as the same color)</p>
> > > +    <div class="example">
> > > +      <pre>
> > > +    &lt;circle fill="rgba(205,133,63, 0.25)"/>
> > > +    &lt;circle fill="rgba(205,133,63, 1.0)" fill-opacity="0.25"/>
> > > +    &lt;circle fill="rgba(205,133,63, 0.5)" fill-opacity="0.5"/></pre>
> > > +</div>
> > > +
> > > +
> > > +    <div class="requirement" id="assert_render_sRGB">
> > > +      <p>
> > > +        When an sRGB color with alpha is used - because it is the sole color
> > > specification, or in a
> > > +        permitted fallback situation - a conformant SVG2 User Agent
> > > +        shall render it in conformance with the ICC profile for sRGB, to
> obtain
> > > the
> > > +        desired color appearance.
> > > +      </p>
> > > +    </div>
> > > +
> > > +    <h3 id="icc-colors">
> > > +      ICC colors</h3>
> > > +
> > > +    <p  class="prop-value"><a href="#fallback">&lt;fallback&gt;</a>
> > > +      <a href="#icccolor"> icc-color(&lt;name&gt;
> > > + [,&lt;icccolorvalue&gt;]*) </a></p>
> > > +
> > > +    <p>Example:</p>
> > > +    <div class="example">
> > > +      <pre>
> > > +    &lt;style>@color-profile {
> > > +      name="acmecmyk"
> > > +      src="http://printers.example.com/acmecorp/model1234"}
> > > +     &lt;/style>
> > > +     &lt;circle fill="#CD853F icc-color(acmecmyk, 0.11, 0.48, 0.83,
> > > 0.00)"/></pre>
> > > +    </div>
> > > +
> > > +    <p>Example:</p>
> > > +    <div class="example">
> > > +      <pre>
> > > +    &lt;color-profile name="acmecmyk"
> > > href="http://printers.example.com/acmecorp/model1234"/>
> > > +    &lt;circle fill="#CD853F icc-color(acmecmyk, 0.11, 0.48, 0.83,
> > > 0.00)"/></pre>
> > > +      </div>
> > > +
> > > +    <p class="note">Same syntax as SVG 1.1, increased conformance
> > > + requirement.</p>
> > > +
> > > +    <p>SVG2  uses the extended ICC color specification from SVG 1.1.
> > > + In SVG 1.1,  parsing the syntax was required but implementing the ICC
> > > + colour itself  was optional,  as indicated by  phrases such as "If
> > > + ICC-based colors are provided and the SVG user agent supports ICC
> > > + color, then...". An SVG 1.1 user agent which also conforms to this
> > > + specification "supports ICC color" for the purposes of conforming to
> > > + SVG 1.1.</p>
> > > +
> > > +    <p>
> > > +      As with SVG Full 1.1, SVG Color content may specify color using an
> ICC
> > > profile (see
> > > +      [<a href="#ref-ICC42">ICC42</a>]); an sRGB fallback must still be
> > > provided.
> > > +    </p>
> > > +
> > > +    <p>An SVG2 User Agent searches the color profile description
> database
> > > for
> > > +      a <a href="#ColorProfileDescriptions">color profile description</a>
> > > entry whose
> > > +      name descriptor matches &lt;name&gt; and uses the last matching
> > entry
> > > that is found;
> > > +      painting shall be done using the given ICC color, where the comma-
> > > separated list
> > > +      (with optional white space) of
> > <strong>&lt;icccolorvalue&gt;</strong>'s
> > > is a set
> > > +      of ICC-profile-specific color values, expressed as <a
> > >
> >
> href="http://www.w3.org/TR/SVGMobile12/types.html#DataTypeNumber">
> > > +        &lt;number&gt;</a>s (see <a href="#icc-colors">ICC colors</a>). If
> > no
> > > match is
> > > +      found, then the fallback sRGB color is used.
> > > +    </p>
> > > +
> > > +    <div class="requirement" id="assert_ICCColorPrecedence">
> > > +      <p>
> > > +        If ICC-based colors are provided, an SVG2 User Agent
> > > +        MUST use the the ICC-based color in preference to the sRGB
> fallback
> > > color,
> > > +        unless the ICC color profile cannot be used (is unavailable,
> > malformed,
> > > or uses an unsupported profile connection
> > > +        space).</p>
> > > +    </div>
> > > +    <div class="requirement" id="assert_useICC">
> > > +      <p>When rendering, if both ICC and sRGB fallback colors are
> provided
> > > and the referenced ICC profile can be used, a Color-managed User Agent
> > > MUST render using the ICC color values, using the specified ICC profile as
> > the
> > > input profile.</p>
> > > +    </div>
> > > +
> > > +    <h3 id="LAB">LAB color</h3>
> > > +
> > > +    <p class="note">
> > > +      New in SVG2.</p>
> > > +
> > > +    <p   class="prop-value"><a href="#fallback">&lt;fallback&gt;</a>
> > > +      <a href="#cielabcolor">cielab(&lt;Lightness&gt;, &lt;a&gt;
> > > &lt;b&gt;)</a> | <br />
> > > +      <a href="#fallback">&lt;fallback&gt;</a>
> > > +      <a href="#cielchabcolor">cielchab(&lt;Lightness&gt;
> &lt;Chroma&gt;,
> > > &lt;Hue&gt; )</a>
> > > +    </p>
> > > +
> > > +<div class="example">
> > > +    <pre>
> > > +    &lt;circle fill="#CD853F cielab(62.253188, 23.950124, 48.410653)"/>
> > > +    &lt;circle fill="#CD853F cielch(62.253188, 54.011108, 63.677091)"/>
> > > +</pre>
> > > +    </div>
> > > +
> > > +
> > > +    <p>An SVG2User Agent directly uses the CIE LAB or CIE LCHab values,
> > > where the comma-separated list
> > > +      (with optional white space) of
> > <strong>&lt;icccolorvalue&gt;</strong>'s
> > > is a set
> > > +      of Lightness, a and b or Lightness, Hue and Chroma values,
> expressed
> > as
> > > <a
> > >
> >
> href="http://www.w3.org/TR/SVGMobile12/types.html#DataTypeNumber">
> > > +      &lt;number&gt;</a>s. A color profile is not referenced in the SVG,
> > > although profile-based implementations may
> > > +    choose to implement this by providing and using an LAB profile.</p>
> > > +
> > > +          <p>The white point  is D50, which is the whitepoint defined by the
> > CIE
> > > for CIELab profile connection space and the
> > > +            whitepoint used for image editors that provide LAB functionality.
> > > +          LAB measurements relative to a different whitepoint should be
> > > + adapted to D50 to be used in SVG2; the linear Bradford chromatic
> > > + adaptation transform [<a href="refs.html#ref-
> > Bradford">BRADFORD</a>]
> > > + is suggested for this.</p>
> > > +
> > > +    <div class="requirement" id="assert_LABColorPrecedence">
> > > +      <p>
> > > +        If LAB-based colors are provided, an SVG2 User Agent
> > > +        MUST use the the LAB-based color in preference to the sRGB
> fallback
> > > color.</p>
> > > +    </div>
> > > +    <div class="requirement" id="assert_useLAB">
> > > +      <p>When rendering, if both LAB and sRGB fallback colors are
> provided,
> > a
> > > Color-managed User Agent MUST render using the ICC color values, using
> > > the specified ICC profile as the input profile.</p>
> > > +    </div>
> > > +
> > > +          <p>A fallback sRGB color must still be provided, for
> > > + non-colormanaged user agents.</p>
> > > +
> > > +    <h3 id="named">
> > > +    ICC named color</h3>
> > > +
> > > +    <p class="note">
> > > +      New in SVG2.</p>
> > > +
> > > +
> > > +    <p   class="prop-value"><a href="#fallback">&lt;fallback&gt;</a>
> > > +      <a href="#iccnamedcolor">icc-named-color(&lt;name&gt;,
> > > + &lt;namedColor&gt;)</a></p>
> > > +
> > > +    <p>Example:</p>
> > > +    <div class="example">
> > > +    <pre >
> > > +      &lt;color-profile name="FooColors"
> > > href="http://swatches.example.com/Foo"/>
> > > +      &lt;circle fill="#CD853F icc-color(FooColors, Sandy23C"/></pre>
> > > +      </div>
> > > +
> > > +    <p>
> > > +      SVG Color introduces the ability to specify a color using a 'Named
> > Color
> > > Profile'.
> > > +    </p>
> > > +    <p>An SVG2 User Agent searches the color profile description
> database
> > > for
> > > +      a <a href="#ColorProfileDescriptions">color profile description</a>
> > > entry whose
> > > +      name descriptor matches &lt;name&gt; and uses the last matching
> > entry
> > > that is found;
> > > +      painting shall be done using the given ICC color, where namedColor
> is
> > a
> > > <a
> > >
> href="http://www.w3.org/TR/SVGMobile12/types.html#DataTypeString">
> > > +      &lt;string&gt;</a> indicating the named color to use.</p>
> > > +
> > > +    <p>ICC named color profiles provide a platform- and implementation-
> > > neutral way
> > > +    to share a swatch of colors, or to use user-created names for
> > > + colors.</p>
> > > +
> > > +    <div class="requirement" id="assert_ICCNamedColorPrecedence">
> > > +      <p>
> > > +        If ICC-based named colors are provided, a conformant SVG2 User
> > > Agent
> > > +        MUST use the the ICC-based named color in preference to the sRGB
> > > fallback
> > > +        color, unless the ICC named color profile is unavailable, malformed,
> > or
> > > uses a profile
> > > +        connection space other than CIE XYZ or CIE LAB.</p>
> > > +    </div>
> > > +    <div class="requirement" id="assert_useICCNamed">
> > > +      <p>
> > > +        When an ICC named color is used, a conformant Color-managed
> User
> > > Agent
> > > +        shall render it in conformance with the specified ICC profile to
> obtain
> > > the
> > > +        desired color appearance.</p>
> > > +    </div>
> > > +
> > > +  </div>
> > > +
> > > +<div class="ready-for-wider-review">
> > > +  <h2 id="Unmanaged">Unmanaged colors</h2>
> > > +  <h3 id="#device">
> > > +  Uncalibrated device color</h3>
> > > +
> > > +  <p class="note">
> > > +    New in SVG2.</p>
> > > +
> > > +  <p  class="prop-value"><a href="#fallback">&lt;fallback&gt;</a>
> > > +    <a href="#devicegray">device-gray(&lt;gray&gt;) </a> |  <br />
> > > +    <a href="#fallback">&lt;fallback&gt;</a>
> > > +    <a href="#devicergb">device-rgb(&lt;red&gt; &lt;green&gt;
> > &lt;blue&gt;)
> > > </a> |  <br />
> > > +    <a href="#fallback">&lt;fallback&gt;</a>
> > > +    <a href="#devicecmyk">device-cmyk(&lt;cyan&gt; &lt;magenta&gt;
> > > &lt;yellow&gt;
> > > +      &lt;black&gt;) </a> |  <br />
> > > +    <a href="#fallback">&lt;fallback&gt;</a>
> > > +    <a href="#devicegray">device-nchannel(&lt;number&gt;+) </a> |
> </p>
> > > +
> > > +
> > > +  <div class="example">
> > > +  <pre>
> > > +      &lt;circle fill="#CD853F device-cmyk(0.11, 0.48, 0.83,
> > > + 0.00)"/></pre>  </div>
> > > +
> > > +  <p>
> > > +    SVG2  introduces a method of specifying uncalibrated device colors.
> > This
> > > +    is sometimes useful in print workflows, for example to produce
> patches
> > > of known
> > > +    ink density used for quality control purposes. </p>
> > > +
> > > +  <p>An SVG2 User Agent which supports the indicated class of output
> > > device
> > > +    will pass the values through without color management. If the class of
> > > output device
> > > +    (for example, cmyk) is not supported, then the fallback
> > > +    sRGB color is used.
> > > +  </p>
> > > +  <p>
> > > +    As these are uncalibrated, any interpolation or compositing occurs
> > using
> > > the fallback
> > > +    sRGB color value.</p>
> > > +
> > > +</div>
> > >
> > >  <div class="ready-for-wider-review">
> > >  <h2 id="ColorProperty">The effect of the <span
> > > class="property">'color'</span> property</h2>
> > >
> > >  <p class="note">See the CSS Color Module Level 3 specification for the
> > > definition of <a>'color'</a>.
> > >  [<a href="refs.html#ref-CSS3COLOR">CSS3COLOR</a>]</p>
> > >
> > > @@ -133,49 +415,42 @@ svg { border: 1px solid #888; background
> > >      <p class="caption">The text and arrow in the SVG fragment are filled
> > >      with the same color as the inherited <a>'color'</a> property.</p>
> > >    </div>
> > >  </div>
> > >  </div>
> > >
> > >  <h2 id="ColorProfileDescriptions">Color profile descriptions</h2>
> > >
> > > -<h3 id="ColorProfileDescriptionsOverview">Overview of color profile
> > > descriptions</h3>
> > > -
> > > -<p>The <a href="http://www.color.org/">International Color -
> > > Consortium</a> has established a standard, the ICC Profile -[<a
> > > href="refs.html#ref-ICC42">ICC42</a>], for -documenting the color
> > > characteristics of input and output -devices. Using these profiles, it is
> > > possible to build a -transform and correct visual data for viewing on
> > different
> > > -devices.</p>
> > > -
> > > -<p>A <dfn id='color-profile-description'>color profile description</dfn> -
> > > provides the bridge between an ICC profile and references to -that ICC
> > > profile within SVG content. The color profile -description is added to the
> > user
> > > agent's list of known color -profiles and then used to select the relevant
> > > profile. The -color profile description contains descriptors for the
> location -
> > > of the color profile on the Web, a name to reference the -profile and
> > > information about rendering intent.</p>
> > > +  <h3 id="ColorProfileDescriptionsOverview">
> > > +    Overview of color profile descriptions</h3>  <p>
> > > +    The <a href="http://www.color.org/">International Color
> > > Consortium</a> has established
> > > +    a standard, the ICC Profile [<a href="http://www.color.org/ICC-
> > 1A_1999-
> > > 04.PDF">ICC32</a>],
> > > +    for documenting the color characteristics of input and output devices.
> > > Using these
> > > +    profiles, it is possible to build a transform and correct visual data for
> > > viewing
> > > +    on different devices.</p>
> > > +  <p>
> > > +    A <span class="SVG-Term">color profile description</span> provides
> > the
> > > bridge between
> > > +    an ICC profile and references to that ICC profile within SVG content.
> > The
> > > color
> > > +    profile description is added to the user agent's list of known color
> > profiles
> > > and
> > > +    then used to select the relevant profile. The color profile description
> > > contains
> > > +    descriptors for the location of the color profile on the Web, a name
> to
> > > reference
> > > +    the profile and information about rendering intent.</p>
> > >
> > >  <h3 id="ColorProfileAlternatives">Alternative ways of defining a color
> > > profile description</h3>
> > >
> > >  <p>Color profile descriptions can be specified in either of the following
> > > ways:</p>
> > >
> > >  <ul>
> > >    <li>a <a>'color-profile element'</a> element</li>
> > >
> > > -  <li>an <em>@color-profile</em> rule within a CSS style sheet (only
> > > -  applicable for user agents which support using CSS to style the SVG
> > > -  content</li>
> > > +  <li>an <em>@color-profile</em> rule within a CSS style sheet </li>
> > >  </ul>
> > >
> > > -<p class="issue">The above used to reference CSS2.  @color-profile was
> -
> > > removed from the latest draft of css3-color, too.</p>
> > >
> > >  <p>If a color profile with the same <em>name</em> value has  been
> > > identified by both a <a>'color-profile element'</a> element and
> > > <em>@color-profile</em> rules within a CSS style sheet, then  the user
> > > agent shall first attempt to locate the profile by  using the specifications
> in
> > > the <em>@color-profile</em> rules  first.</p>
> > >
> > > @@ -183,61 +458,61 @@ first.</p>
> > >
> > >  <edit:with element='color-profile'>
> > >
> > >  <edit:elementsummary name='color-profile'/>
> > >
> > >      <div class="adef-list">
> > >        <p><em>Attribute definitions:</em></p>
> > >        <dl>
> > > -        <dt id="ColorProfileElementHrefAttribute"><span
> > > class="adef">xlink:href</span> = "<span
> > > +        <dt id="ColorProfileElementHrefAttribute"><span
> > > + class="adef">href</span> = "<span
> > >          class="attr-value"><a
> > >          href="types.html#DataTypeIRI">&lt;iri&gt;</a></span>"</dt>
> > >          <dd>The location of an ICC profile resource.<br />
> > >           <span class="anim-target"><a
> > >          href="animate.html#Animatable">Animatable</a>:
> > > -        no.</span></dd>
> > > -        <dt id="ColorProfileElementLocalAttribute"><span
> > > class="adef">local</span> = "<span
> > > +        no.</span>
> > > +
> > > +        <dt id="ColorProfileElementLocalAttribute"><span
> > > + class="adef">local</span> =  sRGB | "<span
> > >          class="attr-value">&lt;string&gt;</span>"</dt>
> > >          <dd>The unique ID for a locally stored color profile.
> > >          &lt;string&gt; is the profile's unique ID as specified by
> > >          <a href="http://www.color.org/">International Color
> > > -        Consortium</a>. If both the <a>'xlink:href'</a> and the
> > <a>'local'</a>
> > > -        attributes are specified,
> > > -        then the user agent shall search the local system for the
> > > -        locally stored color profile first, and, if not available
> > > -        locally, then attempt to use the resource identified by the
> > > -        <a>'xlink:href'</a> attribute. (Note:
> > > -        Profile description fields do <em>not</em> represent a
> > > -        profile's unique ID. With current ICC proposals, the
> > > -        profile's unique ID is an MD5-encoded value within the
> > > -        profile header.)<br />
> > > +        Consortium</a>.
> > > +          <div class="requirement" id="assert_sRGBCaseInsensitive">
> > > +            When used in a style sheet,
> > > +            for consistency with <a
> > > href="http://www.w3.org/TR/CSS2/grammar.html">CSS lexical
> > > +              scanning and parsing rules</a>, the keyword "sRGB" MUST be
> > case-
> > > insensitive. However,
> > > +            it is recommended that the mixed capitalization "sRGB" SHOULD
> be
> > > used for consistency
> > > +            with common industry practice.</div>
> > > +        </dd>
> > > +          <div class="requirement" id="assert_localColorProfilesFirst">
> > > +            If both the <a href="#ColorProfileElementHrefAttribute"><span
> > > class="attr-name">href</span></a>
> > > +            and the <span class="attr-name">local</span> attributes are
> > > specified, then the
> > > +            user agent MUST search the local system for the locally stored
> > color
> > > profile first,
> > > +            and, if not available locally, then attempt to use the resource
> > > identified by the
> > > +            <a href="#ColorProfileElementHrefAttribute"><span class="attr-
> > > name">href</span></a>
> > > +            attribute.</div>
> > > +          (Note: Profile description fields do <em>not</em> represent a
> > > profile's unique ID.
> > > +          With current ICC proposals, the profile's unique ID is an MD5-
> > encoded
> > > value within
> > > +          the profile header.).<br />
> > >           <span class="anim-target"><a
> > >          href="animate.html#Animatable">Animatable</a>:
> > >          no.</span></dd>
> > >          <dt id="ColorProfileElementNameAttribute"><span
> > > class="adef">name</span> = "<span
> > >          class="attr-value">&lt;identifier&gt;</span>"</dt>
> > >          <dd>The name which is used as the first parameter for <span
> > >          class="prop-value">icc-color</span> specifications within
> > >          <a>'fill'</a>, <a>'stroke'</a>, <a>'stop-color'</a>,
> > >          <a>'flood-color'</a> and <a>'lighting-color'</a> property
> > >          values to identify the color profile to use for the ICC
> > >          color specification and the name which can be the value of
> > >          the <a>'color-profile element'</a> property. Note
> > >          that if 'name' is not provided, it will be impossible
> > > -        to reference the given color profile description. The name
> > > -        "sRGB" is predefined; any color profile descriptions with
> > > -        <span class="attr-value">&lt;identifier&gt;</span> set to "sRGB"
> > > -        will be ignored. For consistency with <a
> > > -        href="http://www.w3.org/TR/2011/REC-CSS2-
> > > 20110607/grammar.html#scanner">CSS
> > > -        lexical scanning and parsing rules</a>
> > > -        ([<a href="refs.html#ref-CSS21">CSS21</a>], section G.2), the
> > keyword
> > > "sRGB"
> > > -        is case-insensitive; however, it is recommended that the
> > > -        mixed capitalization "sRGB" be used for consistency with
> > > -        common industry practice.<br />
> > > +        to reference the given color profile description.
> > >           <span class="anim-target"><a
> > >          href="animate.html#Animatable">Animatable</a>:
> > >          no.</span></dd>
> > >          <dt id="ColorProfileElementRenderingIntentAttribute"><span
> > > class="adef">rendering-intent</span> = "<span
> > >          class="attr-value">auto | perceptual |
> > >          relative-colorimetric | saturation |
> > >          absolute-colorimetric</span>"</dt>
> > >          <dd>
> > > @@ -247,57 +522,111 @@ first.</p>
> > >            primarily to color profiles corresponding to CMYK color
> > >            spaces. The different options cause different methods to
> > >            be used for translating colors to the color gamut of the
> > >            target rendering device:</p>
> > >            <dl>
> > >              <dt><span class='prop-value'>auto</span></dt>
> > >              <dd>This is the default behavior. The user agent
> > >              determines the best intent based on the content type.
> > > -            For image content containing an embedded profile, it
> > > -            shall be assumed that the intent specified within the
> > > -            profile is the desired intent. Otherwise, the user
> > > -            agent shall use the current profile and force the
> > > -            intent, overriding any intent that might be stored in
> > > -            the profile itself.</dd>
> > > +              <div class="requirement" id="assert_renderingIntentAuto">
> > > +                For image content containing an embedded profile, the User
> > Agent
> > > MUST use the intent
> > > +                specified within the profile. Otherwise, the user agent MUST
> use
> > > the current profile
> > > +                and force the intent, overriding any intent that might be stored
> in
> > > the profile
> > > +                itself.
> > > +              </div></dd>
> > >              <dt><span class='prop-value'>perceptual</span></dt>
> > > -            <dd>This method, often the preferred choice for images,
> > > -            preserves the relationship between colors. It attempts
> > > -            to maintain relative color values among the pixels as
> > > -            they are mapped to the target device gamut. Sometimes
> > > -            pixel values that were originally within the target
> > > -            device gamut are changed in order to avoid hue shifts
> > > -            and discontinuities and to preserve as much as possible
> > > -            the overall appearance of the scene.</dd>
> > > +            <dd>            <p>This method is often the preferred choice for
> > images,
> > > especially when
> > > +              there are substantial differences between the source and
> > > destination
> > > +              (such as a CRT display image reproduced on a reflection print). It
> > > takes
> > > +              the colors of the source image and re-optimizes the appearance
> > for
> > > the
> > > +              destination medium using proprietary methods. This re-
> > optimization
> > > may
> > > +              result in colors within both the source and destination gamuts
> > being
> > > +              changed, although perceptual transforms are supposed to
> > maintain
> > > the
> > > +              basic artistic intent of the original in the reproduction. They will
> > not
> > > +              attempt to correct errors in the source image.
> > > +            </p>
> > > +              <p class="note">With v2 ICC profiles there is no specified
> > > perceptual reference
> > > +                medium, which can cause interoperability problems. When v2
> ICC
> > > profiles
> > > +                are used it may be safer to use the media-relative colorimetric
> > > +                rendering intent with black point compensation, instead of the
> > > perceptual
> > > +                rendering intent, unless the specific source and destination
> > profiles
> > > to
> > > +                be used have been checked to ensure the combination
> produces
> > > the desired
> > > +                result.
> > > +              </p>
> > > +              <div class="requirement"
> id="assert_renderingIntentPerceptual">
> > > +                This method SHOULD maintain relative color values among the
> > > pixels as they are mapped
> > > +                to the target device gamut. This method MAY change pixel
> values
> > > that were originally
> > > +                within the target device gamut, in order to avoid hue shifts and
> > > discontinuities
> > > +                and to preserve as much as possible the overall appearance of
> > the
> > > scene.
> > > +              </div>
> > > +            </dd>
> > >              <dt><span class='prop-value'>saturation</span></dt>
> > > -            <dd>Preserves the relative saturation (chroma) values
> > > -            of the original pixels. Out of gamut colors are
> > > -            converted to colors that have the same saturation but
> > > -            fall just inside the gamut.</dd>
> > > +            <dd>            <p>This option was created to preserve the relative
> > > saturation (chroma) of
> > > +              the original, and to keep solid colors pure. However, it
> > experienced
> > > +              interoperability problems like the perceptual intent, and as solid
> > > color
> > > +              preservation is not amenable to a reference medium solution
> > using
> > > v4
> > > +              profiles does not solve the problem. Use of this rendering intent
> is
> > > <em>not
> > > +                recommended</em> unless the specific source and destination
> > > profiles to be
> > > +              used have been checked to ensure the combination produces
> the
> > > desired
> > > +              result.
> > > +            </p>
> > > +              <div class="requirement"
> id="assert_renderingIntentSaturation">
> > > +                This option SHOULD preserve the relative saturation (chroma)
> > > values of the original
> > > +                pixels. Out of gamut colors SHOULD be converted to colors
> that
> > > have the same saturation
> > > +                but fall just inside the gamut.
> > > +              </div></dd>
> > >              <dt><span class='prop-value'>relative-colorimetric</span></dt>
> > > -            <dd>Leaves colors that fall inside the gamut unchanged.
> > > -            This method usually converts out of gamut colors to
> > > -            colors that have the same lightness but fall just
> > > -            inside the gamut.</dd>
> > > +            <dd>            <p>Media-relative colorimetric
> > > +              is required to leave source colors that fall inside the destination
> > > +              medium gamut unchanged relative to the respective media
> white
> > > points.
> > > +              Source colors that are out of the destination medium gamut are
> > > mapped to
> > > +              colors on the gamut boundary using a variety of different
> > > + methods.</p>
> > > +
> > > +              <p>NOTE The media-relative colorimetric rendering intent is
> often
> > > used with
> > > +                black point compensation, where the source medium black
> point
> > is
> > > mapped
> > > +                to the destination medium black point as well.</p>
> > > +
> > > +              <div class="requirement"
> > > id="assert_renderingIntentRelativeColorimetric">
> > > +                This method MUST map the source white point to the
> desination
> > > white point.
> > > +                If black point compensation is in use, the source black point
> > MUST
> > > also be mapped to the destination black point.
> > > +                Adaptation algorithms SHOULD be used to adjust for the
> change
> > in
> > > white point. Relative relationships of colors inside
> > > +                both source and destination gamuts SHOULD be preserved.
> > > +                Relative relationships of colors outside the destination gamut
> > MAY
> > > be changed.
> > > +              </div></dd>
> > >              <dt><span class='prop-value'>absolute-colorimetric</span></dt>
> > > -            <dd>Disables white point matching when converting
> > > -            colors. This option is generally not recommended.</dd>
> > > +            <dd><p>ICC-absolute colorimetric  is
> > > +              required to leave source colors that fall inside the destination
> > > medium
> > > +              gamut unchanged relative to the adopted white (a perfect
> > reflecting
> > > +              diffuser). Source colors that are out of the destination medium
> > > gamut
> > > +              are mapped to colors on the gamut boundary using a variety of
> > > different
> > > +              methods. This method produces the most accurate color
> matching
> > > of
> > > +              in-gamut colors, but will result in highlight clipping if the
> > > +              destination medium white point is lower than the source
> medium
> > > white
> > > +              point. For this reason it is recommended for use
> <em>only</em>
> > in
> > > applications
> > > +              that need exact color matching and where highlight clipping is
> not
> > a
> > > +              concern.
> > > +            </p>
> > > +              <div class="requirement"
> > > id="assert_renderingIntentAbsoluteColorimetric">
> > > +                This method MUST disable white point matching and black
> point
> > > matching when converting colors.
> > > +              </div>
> > > +              In general, this option is not recommended.</dd>
> > >            </dl>
> > >            <br />
> > >             <span class="anim-target"><a
> > >            href="animate.html#Animatable">Animatable</a>: no.</span>
> > >          </dd>
> > >        </dl>
> > >      </div>
> > > -
> > > +  <p class="issue">Fallback behaviour needs to be specified, for when
> > > + the requested rendering intent does not have a corresponding table in
> > > + the profile; or when all rendering-intents are provided using the same
> > > + table.</p>
> > >  </edit:with>
> > >
> > >  <h3 id="ColorProfileAtRule">The CSS <strong>@color-profile</strong>
> > > rule</h3>
> > >
> > > -<p>When the document is styled using CSS, the
> > > +<p>When the document is styled using CSS, the CSS
> > >  <strong>@color-profile</strong> rule can be used to specify a color
> > profile
> > > description. The general form is:</p>
> > >
> > >  <pre>
> > >  @color-profile { &lt;color-profile-description&gt; }  </pre>
> > >
> > >  <p>where the &lt;color-profile-description&gt; has the form:</p> @@ -
> > > 449,97 +778,186 @@ child elements.</p>
> > >              </tr>
> > >            </table>
> > >          </dd>
> > >        </dl>
> > >      </div>
> > >
> > >  <p>See the description for the <a>'color-profile/rendering-intent'</a>
> > > attribute on the  <a>'color-profile element'</a> element.</p>
> > > -
> > > -<h3 id="ColorProfile">The <span class="property">'color-profile'</span>
> > > property</h3>
> > > -
> > > -<table class="propdef">
> > > -  <tr>
> > > -    <th>Name:</th>
> > > -    <td><dfn id="ColorProfileProperty">color-profile</dfn></td>
> > > -  </tr>
> > > -  <tr>
> > > -    <th>Value:</th>
> > > -    <td>auto | sRGB | <a>&lt;identifier&gt;</a> |
> > > <a>&lt;funciri&gt;</a></td>
> > > -  </tr>
> > > -  <tr>
> > > -    <th>Initial:</th>
> > > -    <td>none</td>
> > > -  </tr>
> > > -  <tr>
> > > -    <th>Applies to:</th>
> > > -    <td><a>'image'</a> elements that refer to raster images</td>
> > > -  </tr>
> > > -  <tr>
> > > -    <th>Inherited:</th>
> > > -    <td>yes</td>
> > > -  </tr>
> > > -  <tr>
> > > -    <th>Percentages:</th>
> > > -    <td>N/A</td>
> > > -  </tr>
> > > -  <tr>
> > > -    <th>Media:</th>
> > > -    <td>visual</td>
> > > -  </tr>
> > > -  <tr>
> > > -    <th>Computed&#160;value:</th>
> > > -    <td>as specified, but with <a>&lt;funciri&gt;</a> values made
> > > absolute</td>
> > > -  </tr>
> > > -  <tr>
> > > -    <th><a>Animatable</a>:</th>
> > > -    <td>yes</td>
> > > -  </tr>
> > > -</table>
> > > -
> > > -<dl>
> > > -  <dt><span class='prop-value'>auto</span></dt>
> > > -  <dd>This is the default behavior. All colors are presumed to
> > > -  be defined in the sRGB color space unless a more precise
> > > -  embedded profile is specified within content data. For images
> > > -  that do have a profile built into their data, that profile is
> > > -  used. For images that do not have a profile, the sRGB profile
> > > -  is used.</dd>
> > > -
> > > -  <dt><span class='prop-value'>sRGB</span></dt>
> > > -  <dd>
> > > -    <p>The source profile is assumed to be sRGB. This differs
> > > -    from auto in that it overrides an embedded profile inside an
> > > -    image.</p>
> > > -
> > > -    <p>For consistency with <a href="http://www.w3.org/TR/2011/REC-
> > > CSS2-20110607/grammar.html#scanner">CSS lexical scanning and
> parsing
> > > rules</a>
> > > -    ([<a href="refs.html#ref-CSS21">CSS21</a>], section G.2), the
> keyword
> > > "sRGB" is
> > > -    case-insensitive; however, it is recommended that the mixed
> > > -    capitalization "sRGB" be used for consistency with common
> > > -    industry practice.</p>
> > > -  </dd>
> > > -
> > > -  <dt><span class='prop-value'><a>&lt;identifier&gt;</a></span></dt>
> > > -  <dd>A name corresponding to a defined color profile that is
> > > -  in the user agent's color profile description database. The
> > > -  user agent searches the color profile description database
> > > -  for a <a href="color.html#ColorProfileDescriptions">color
> > > -  profile description</a> entry whose name descriptor matches
> > > -  &lt;identifier&gt; and uses the last matching entry that is found.
> > > -  If a match is found, the corresponding profile overrides an
> > > -  embedded profile inside an image. If no match is found, then
> > > -  the embedded profile inside the image is used.</dd>
> > > -
> > > -  <dt><span class='prop-value'><a
> > > -  href="types.html#DataTypeIRI">&lt;iri&gt;</a></span></dt>
> > > -  <dd>An <a>IRI reference</a> to the source color profile. The
> referenced
> > > -  color profile overrides an embedded profile inside the
> > > -  image.</dd>
> > > -</dl>
> > > +
> > > +
> > > +  <div class="ready-for-wider-review">
> > > +  <h2 id="syntax">Color syntax</h2>
> > > +  <p>The EBNF grammar is as used in the <a
> > > href="http://www.w3.org/TR/REC-xml/#sec-notation">XML
> > > specification</a>,
> > > +    with the addition of a <em>case-insensitive literal</em>:
> > > + characters in the ASCII range (only) are case-insensitive. ~"Hello" will
> > > match (H|h)(e|e)(l|L)(l|L)(o|O). This makes the productions much easier
> to
> > > read.</p>  <table>
> > > +    <tr><td>?</td><td>optional, zero or one</td></tr>
> > > +    <tr><td>+</td><td>one or more</td></tr>
> > > +    <tr><td>*</td><td>zero or more</td></tr>
> > > +    <tr><td>|</td><td>alternation</td></tr>
> > > +    <tr><td>"string"</td><td>literal</td></tr>
> > > +    <tr><td>~"string"</td><td>case-insensitive literal</td></tr>
> > > +    <tr><td>[]</td><td>a character range</td></tr>
> > > +    <tr><td>[^]</td><td>excluded character range</td></tr>
> > > +    <tr><td>()</td><td>grouping</td></tr>
> > > +  </table>
> > > +
> > > +
> > > +  <pre>
> > > +    <span id="icccolor">icccolor</span> ::=
> > > +    ~"icc-color(" <a href="#name">name</a> (<a href="#comma-
> > > wsp">comma-wsp</a> <a href="#number">number</a>)+ ")"
> > > +
> > > +    <span id="iccnamedcolor">iccnamedcolor</span> ::=
> > > +    ~"icc-named-color(" <a href="#name">name</a> <a href="#comma-
> > > wsp">comma-wsp</a> <a href="#namedColor">namedColor</a> ")"
> > > +
> > > +    <span id="cielabcolor">cielabcolor</span> ::=
> > > +    ~"cielab(" <a href="#lightness">lightness</a> <a href="#comma-
> > > wsp">comma-wsp</a> <a href="#a-value">a-value</a> <a
> href="#comma-
> > > wsp">comma-wsp</a> <a href="#b-value">b-value</a>  ")"
> > > +
> > > +    <span id="cielchabcolor">cielchabcolor</span> ::=
> > > +    ~"cielchab(" <a href="#lightness">lightness</a> <a href="#comma-
> > > wsp">comma-wsp</a> <a href="#chroma">chroma</a> <a
> > href="#comma-
> > > wsp">comma-wsp</a> <a href="#hue">hue</a>  ")"
> > > +
> > > +    <span id="devicecolor">devicecolor</span> ::=
> > > +    <a href="#devicegray">device-gray</a> | <a
> > > + href="#devicergb">devicergb</a> | <a
> > > href="#devicecmyk">devicecmyk</a>
> > > + | <a href="#devicenchannel">devicenchannel</a>
> > > +
> > > +    <span id="devicegray">devicegray</span> ::=
> > > +    ~"device-gray(" <a href="#gray">gray</a> ")"
> > > +
> > > +    <span id="devicergb">devicergb</span> ::=
> > > +    ~"device-rgb(" <a href="#red">red</a> <a href="#green">green</a>
> <a
> > > href="#blue">blue</a> ")"
> > > +
> > > +    <span id="devicecmyk">devicecmyk</span> ::=
> > > +    ~"device-cmyk(" <a href="#cyan">cyan</a> <a
> > > href="#magenta">magenta</a> <a href="#yellow">yellow</a> ><a
> > > href="#black">black</a> ")"
> > > +
> > > +    <span id="devicenchannel">devicenchannel</span> ::=
> > > +    ~"device-nchannel(" <a href="#number">number</a>+ ")"
> > > +
> > > +    <span id="name">name</span> ::=
> > > +    <a href="#namestartchar">namestartchar</a> (<a
> > > + href="#namechar">namechar</a>)*
> > > +
> > > +    <span id="lightness">lightness</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="a-value">a-value</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="b-value">b-value</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="chroma">chroma</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="hue">hue</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +
> > > +    <span id="gray">gray</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="red">red</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="green">green</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="blue">blue</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="cyan">cyan</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="magenta">magenta</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="yellow">yellow</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="black">black</span> ::=
> > > +    <a href="#number">number</a>
> > > +
> > > +    <span id="namedColor">namedColor</span> ::=
> > > +    <a href="#name">name</a>
> > > +
> > > +    <span id="fallback">fallback</span> ::=
> > > +    <a href="#color">color</a>
> > > +
> > > +    <span id="color">color</span>  ::=
> > > +    "#" <a href="#hexdigit">hexdigit</a> <a
> href="#hexdigit">hexdigit</a>
> > > <a href="#hexdigit">hexdigit</a> (<a href="#hexdigit">hexdigit</a> <a
> > > href="#hexdigit">hexdigit</a> <a href="#hexdigit">hexdigit</a>)?
> > > +    | ~"rgb(" <a href="#wsp">wsp</a>* <a href="#integer">integer</a>
> <a
> > > href="#comma">comma</a> <a href="#integer">integer</a> <a
> > > href="#comma">comma</a> <a href="#integer">integer</a> <a
> > > href="#wsp">wsp</a>* ")"
> > > +    | ~"rgb(" <a href="#wsp">wsp</a>* <a href="#integer">integer</a>
> > "%"
> > > <a href="#comma">comma</a> <a href="#integer">integer</a> "%" <a
> > > href="#comma">comma</a> <a href="#integer">integer</a> "%" <a
> > > href="#wsp">wsp</a>* ")"
> > > +    | ~"hsl(" <a href="#wsp">wsp</a>* <a href="#integer">integer</a>
> <a
> > > href="#comma">comma</a> <a href="#integer">integer</a> <a
> > > href="#comma">comma</a> <a href="#integer">integer</a> <a
> > > href="#wsp">wsp</a>* ")"
> > > +        | ~"hsla(" <a href="#wsp">wsp</a>* <a
> href="#integer">integer</a>
> > > <a href="#comma">comma</a> <a href="#integer">integer</a> <a
> > > href="#comma">comma</a> <a href="#integer">integer</a> <a
> > > href="#comma">comma</a> <a href="#integer">integer</a> <a
> > > href="#wsp">wsp</a>* ")"
> > > +    | <a href="#color-keyword">color-keyword</a>
> > > +
> > > +    <span id="hexdigit">hexdigit</span> ::=
> > > +    [0-9A-Fa-f]
> > > +
> > > +    <span id="number">number</span> ::=
> > > +    <a href="#sign">sign</a>? <a
> > > + href="#digit-sequence">digit-sequence</a>? "." <a
> > > + href="#digit-sequence">digit-sequence</a>
> > > +
> > > +    <span id="sign">sign</span>::=
> > > +    "+" | "-"
> > > +
> > > +    <span id="integer">integer</span> ::=
> > > +    <a href="#digit-sequence">digit-sequence</a>
> > > +
> > > +    <span id="digit-sequence">digit-sequence</span> ::=
> > > +    [0-9]+
> > > +
> > > +    <span id="namestartchar">namestartchar</span> ::=
> > > +    ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [
> > > +    #xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] |
> > > +    [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] |
> > > +    [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
> > > +
> > > +    <span id="namechar">namechar</span> ::=
> > > +    <a href="#namestartchar">namestartchar</a> | "-" | "." | [0-9] |
> #xB7
> > |
> > > [#x0300-#x036F] |
> > > +    [#x203F-#x2040]
> > > +
> > > +
> > > +    <span id="comma-wsp">comma-wsp</span> ::=
> > > +    (<a href="#wsp">wsp</a>+ <a href="#comma">comma</a>? <a
> > > + href="#wsp">wsp</a>*) | (<a href="#comma">comma</a> <a
> > > + href="#wsp">wsp</a>*)
> > > +
> > > +    <span id="comma">comma</span> ::=
> > > +    ","
> > > +
> > > +    <span id="wsp">wsp</span> ::=
> > > +    (#x20 | #x9 | #xD | #xA)
> > > +
> > > +    <span id="color-keyword">color-keyword</span> ::=
> > > +    ~"aliceblue" | ~"antiquewhite" | ~"aqua" | ~"aquamarine" | ~"azure"
> |
> > > ~"beige" |
> > > +    ~"bisque" | ~"black" | ~"blanchedalmond" | ~"blue" | ~"blueviolet" |
> > > ~"brown" |
> > > +    ~"burlywood" |~"cadetblue" | ~"chartreuse" | ~"chocolate" |
> ~"coral" |
> > > ~"cornflowerblue" |
> > > +    ~"cornsilk" | ~"crimson" | ~"cyan" | ~"darkblue" | ~"darkcyan" |
> > > ~"darkgoldenrod" |
> > > +    ~"darkgray" | ~"darkgreen" | ~"darkgrey" | ~"darkkhaki" |
> > > ~"darkmagenta" | ~"darkolivegreen" |
> > > +    ~"darkorange" | ~"darkorchid" | ~"darkred" | ~"darksalmon" |
> > > ~"darkseagreen" | ~"darkslateblue" |
> > > +    ~"darkslategray" | ~"darkslategrey" | ~"darkturquoise" | ~"darkviolet"
> |
> > > ~"deeppink" | ~"deepskyblue" |
> > > +    ~"dimgray" | ~"dimgrey" | ~"dodgerblue" | ~"firebrick" |
> ~"floralwhite"
> > |
> > > ~"forestgreen" |
> > > +    ~"fuchsia" | ~"gainsboro" | ~"ghostwhite" | ~"gold" | ~"goldenrod" |
> > > ~"gray" |
> > > +    ~"grey" | ~"green" | ~"greenyellow" | ~"honeydew" | ~"hotpink" |
> > > ~"indianred" |
> > > +    ~"indigo" | ~"ivory" | ~"khaki" | ~"lavender" | ~"lavenderblush" |
> > > ~"lawngreen" |
> > > +    ~"lemonchiffon" | ~"lightblue" | ~"lightcoral" | ~"lightcyan" |
> > > ~"lightgoldenrodyellow" | ~"lightgray" |
> > > +    ~"lightgreen" | ~"lightgrey" | ~"lightpink" | ~"lightsalmon" |
> > > ~"lightseagreen" | ~"lightskyblue" |
> > > +    ~"lightslategray" | ~"lightslategrey" | ~"lightsteelblue" |
> ~"lightyellow"
> > |
> > > ~"lime" |
> > > +    ~"limegreen" | ~"linen" | ~"magenta" | ~"maroon" |
> > > ~"mediumaquamarine" | ~"mediumblue" |
> > > +    ~"mediumorchid" | ~"mediumpurple" | ~"mediumseagreen" |
> > > ~"mediumslateblue" | ~"mediumspringgreen" | ~"mediumturquoise" |
> > > +    ~"mediumvioletred" | ~"midnightblue" | ~"mintcream" | ~"mistyrose"
> |
> > > ~"moccasin" | ~"navajowhite" |
> > > +    ~"navy" | ~"oldlace" | ~"olive" | ~"olivedrab" | ~"orange" |
> > ~"orangered"
> > > |
> > > +    ~"orchid" | ~"palegoldenrod" | ~"palegreen" | ~"paleturquoise" |
> > > ~"palevioletred" | ~"papayawhip" |
> > > +    ~"peachpuff" | ~"peru" | ~"pink" | ~"plum" | ~"powderblue" |
> ~"purple"
> > |
> > > +    ~"red" | ~"rosybrown" | ~"royalblue" | ~"saddlebrown" | ~"salmon" |
> > > ~"sandybrown" |
> > > +    ~"seagreen" | ~"seashell" | ~"sienna" | ~"silver" | ~"skyblue" |
> > > ~"slateblue" |
> > > +    ~"slategray" | ~"slategrey" | ~"snow" | ~"springgreen" | ~"steelblue"
> |
> > > ~"tan" |
> > > +    ~"teal" | ~"thistle" | ~"tomato" | ~"turquoise" | ~"violet" | ~"wheat"
> |
> > > +    ~"white" | ~"whitesmoke" | ~"yellow" | ~"yellowgreen"
> > > +  </pre>
> > > +
> > > +
> > > + </div>
> > > +
> > >
> > >  <h2 id="DOMInterfaces">DOM interfaces</h2>
> > >
> > >  <h3 id="InterfaceSVGColorProfileElement">Interface
> > > SVGColorProfileElement</h3>
> > >
> > >
> > >  <edit:with element='color-profile'>
> > >
> > > diff --git a/master/refs.html b/master/refs.html
> > > --- a/master/refs.html
> > > +++ b/master/refs.html
> > > @@ -475,16 +475,21 @@
> > >      <br/>The <a href="http://www.w3.org/TR/xsl/">latest edition of
> > XSL</a>
> > > is available at
> > >      http://www.w3.org/TR/xsl/.
> > >    </dd>
> > >  </dl>
> > >
> > >  <h2 id="InformativeReferences">Informative references</h2>
> > >
> > >  <dl class="references">
> > > +  <dt id="ref-BRADFORD" class="informref">[BRADFORD]</dt>
> > > + <dd>Originally described in <cite>K.M. Lam, <i>Metamerism and Colour
> > > Constancy</i>,
> > > +    Ph.D. Thesis, University of
> > > +    Bradford, 1985.</cite>. The linearised Bradford is a simplificaton,
> > > + widely used in practice, and expressible as a 3x3 matrix. See for
> > > + example Lindbloom, <a
> > > +
> > >
> >
> href="http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html"
> > > >Ch
> > > + romatic Adaptation</a>.</dd>
> > > +
> > >    <dt id="ref-CHARMOD" class="informref">[CHARMOD]</dt>
> > >    <dd>
> > >      <cite class="w3crec"><a href="http://www.w3.org/TR/2005/REC-
> > > charmod-20050215/">Character Model for the World Wide Web 1.0:
> > > Fundametnals</a></cite>,
> > >      M. Dürst, F. Yergeau, R. Ishida, M. Wolf, T.  Texin, eds.
> > >      World Wide Web Consortium, 15 February 2005.
> > >      <br/>This edition of Charmod Fundamentals is
> > > http://www.w3.org/TR/2005/REC-charmod-20050215/.
> > >      <br/>The <a href="http://www.w3.org/TR/charmod/">latest edition
> of
> > > Charmod Fundamentals</a> is available at
> > >      http://www.w3.org/TR/charmod/.
> > > diff --git a/master/style/default.css b/master/style/default.css
> > > --- a/master/style/default.css
> > > +++ b/master/style/default.css
> > > @@ -156,17 +156,17 @@ code.css { font-family: inherit; font-si
> > >  code.html { color: #600 }      /* inline HTML */
> > >  code.xml { color: #600 }       /* inline XML */
> > >  .property { font: inherit; white-space: nowrap; }      /* name of a CSS
> > > property (SPAN) */
> > >  .descriptor { }                        /* name of a CSS descriptor (SPAN) */
> > >  .type { font-style: italic }   /* A <type> value for a property */
> > >
> > >  dfn { font-weight: bolder; /*font-size: 1em*/ }
> > >
> > > -p.issue, div.issue, p.note, div.note, div.example {
> > > +p.issue, div.issue, p.note, div.note, div.example, div.requirement {
> > >         padding: .5em;
> > >         border-left-width: .5em;
> > >         border-left-style: solid;
> > >  }
> > >
> > >  /* Open issue / editorial remark; not intended for a final publication */
> > > p.issue, div.issue {
> > >         border-color: #E05252;
> > > @@ -178,16 +178,27 @@ p.issue:before, div.issue:before {
> > >         content: "Issue " counter(issue);
> > >         padding-right: 1em;
> > >         text-transform: uppercase;
> > >         color: #E05252;
> > >  }
> > >
> > >  span.issue { color: red; }
> > >
> > > +/* Conformance requirement */
> > > +
> > > +div.requirement {
> > > +       border-color: #007070;
> > > +       background: #A0E0E0;
> > > +       }
> > > +
> > > +div.requirement > p {
> > > +       margin-top: 0
> > > +       }
> > > +
> > >  /* Class note is a non-normative note. May be inline or a P or DIV */
> > p.note,
> > > div.note {
> > >         border-color: #52E052;
> > >         background: #E9FBE9;
> > >  }
> > >
> > >  span.note { color: green; }
> > >
> > >

Received on Monday, 20 August 2012 20:47:31 UTC