Skip to content

Commit d39663e

Browse files
committed
[css-color] Properly define @color-profile and related things, and add priv/sec section.
1 parent 23ec887 commit d39663e

1 file changed

Lines changed: 58 additions & 23 deletions

File tree

css-color/Overview.bs

Lines changed: 58 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1743,7 +1743,7 @@ Profiled, Device-dependent Colors</h2>
17431743
for named color profiles.
17441744

17451745
<h3 id="predefined">
1746-
Predefined colorspaces: dci-p3 and rec2020.</h3>
1746+
Predefined colorspaces: ''dci-p3'' and ''rec2020''.</h3>
17471747

17481748
These two colorspaces are indicated by using the predefined identifiers
17491749
''dci-p3'' or ''rec2020'' in the color function.
@@ -1825,16 +1825,29 @@ Converting Lab to predefined colorspaces</h4>
18251825
<h3 id="at-profile">
18261826
Specifying a color profile: the ''color-profile'' at-rule</h3>
18271827

1828-
The <dfn at-rule id="at-ruledef-profile">@color-profile</dfn> rule is a group rule.
1829-
It consists of the at-keyword ''@color-profile'' followed by a name,
1830-
followed by a group rule body.
1828+
The <dfn at-rule id="at-ruledef-profile">@color-profile</dfn> rule
1829+
defines and names a <dfn lt="CSS color profile" local-lt="color profile">color profile</dfn>
1830+
which can later be used in the ''color()'' function to specify a color.
1831+
It's defined as:
18311832

1832-
In a very similar way to the ''@font-face'' at-rule,
1833-
the ''@color-profile'' at-rule has a name
1834-
(which will be used inside the stylesheet),
1835-
and a descriptor to point to the actual data
1836-
(<dfn descriptor for="@color-profile">src</dfn>, just like ''src'' in font-face.)
1837-
The ''src''descriptor takes a ''url()'' as it's value.
1833+
<pre class='prod'>
1834+
@color-profile = @color-profile <<custom-ident>> { <<declaration-list>> }
1835+
</pre>
1836+
1837+
The <<custom-ident>> gives the <a>color profile's</a> name.
1838+
The keywords ''dci-p3'' and ''rec2020'' are excluded from this <<custom-ident>>,
1839+
as they're predefined by this specification and always available.
1840+
1841+
The ''@color-profile'' rules accepts the descriptors defined in this specification.
1842+
1843+
<pre class=descdef>
1844+
Name: src
1845+
Value: <<url>>
1846+
For: @color-profile
1847+
Initial: n/a
1848+
</pre>
1849+
1850+
The ''src'' descriptor specifies the URL to retrieve the color-profile information from.
18381851

18391852
Issue: Same-origin and CORS for src.
18401853

@@ -1849,14 +1862,23 @@ Specifying a color profile: the ''color-profile'' at-rule</h3>
18491862
<!-- we decided in San Francisco to not allow rendering intent to be specified in the CSS;
18501863
just use the rendering intent provided by the profile. However, leave in for FPWD. -->
18511864

1852-
A third, optional descriptor defines the <dfn descriptor for="@color-profile">rendering-intent</dfn> to use when mapping colors
1853-
from a larger to a smaller gamut.
1865+
<pre class=descdef>
1866+
Name: rendering-intent
1867+
Value: relative-colorimetric | absolute-colorimetric | perceptual | saturation
1868+
Initial: relative-colorimetric
1869+
For: @color-profile
1870+
</pre>
18541871

1855-
This descriptor is only needed if the profile linked to has data for multiple rendering intents.
1856-
There are four values for rendering intent [[!ICC]]:
1872+
<a>Color profiles</a> contain “rendering intents”,
1873+
which define how to map their color to smaller gamuts than they're defined over.
1874+
Often a profile will contain only a single intent,
1875+
but when there are multiple,
1876+
the 'rendering-intent' descriptor chooses one of them to use.
18571877

1858-
<dl>
1859-
<dt id="intent-relative">relative-colorimetric
1878+
The four possible rendering intents are [[!ICC]]:
1879+
1880+
<dl dfn-type=value dfn-for="@color-profile/rendering-intent">
1881+
<dt><dfn>relative-colorimetric</dfn>
18601882
<dd>
18611883
Media-relative colorimetric is required to leave source colors that fall
18621884
inside the destination medium gamut unchanged relative to the respective
@@ -1874,7 +1896,7 @@ Specifying a color profile: the ''color-profile'' at-rule</h3>
18741896
inside both source and destination gamuts should be preserved. Relative
18751897
relationships of colors outside the destination gamut may be changed.
18761898

1877-
<dt id="intent-absolute">absolute-colorimetric
1899+
<dt><dfn>absolute-colorimetric</dfn>
18781900
<dd>
18791901
ICC-absolute colorimetric is required to leave source colors that fall
18801902
inside the destination medium gamut unchanged relative to the adopted
@@ -1890,7 +1912,7 @@ Specifying a color profile: the ''color-profile'' at-rule</h3>
18901912
converting colors. In general, this option is not recommended except
18911913
for testing purposes.
18921914

1893-
<dt id="intent-perceptual">perceptual
1915+
<dt><dfn>perceptual</dfn>
18941916
<dd>
18951917
This method is often the preferred choice for images, especially when there are
18961918
substantial differences between the source and destination (such as a screen display
@@ -1913,7 +1935,7 @@ Specifying a color profile: the ''color-profile'' at-rule</h3>
19131935
that were originally within the target device gamut, in order to avoid
19141936
hue shifts and discontinuities and to preserve as much as possible the
19151937
overall appearance of the scene.
1916-
<dt id="intent-saturation">saturation
1938+
<dt><dfn>saturation</dfn>
19171939
<dd>
19181940
This option was created to preserve the relative saturation (chroma) of the original,
19191941
and to keep solid colors pure. However, it experienced interoperability problems like
@@ -1931,10 +1953,6 @@ Specifying a color profile: the ''color-profile'' at-rule</h3>
19311953
is mentioned there already. Does that suffice? What about black
19321954
point compensation for the flare correction built into sRGB?
19331955

1934-
<pre class="prod">
1935-
<dfn at-rule >FIX ME: MISSING</dfn>
1936-
</pre>
1937-
19381956
<h2 id="working-color-space">
19391957
Working Color Space</h2>
19401958

@@ -3139,3 +3157,20 @@ Changes from Colors 3</h3>
31393157

31403158
<li>Addition of named color ''rebeccapurple''.
31413159
</ol>
3160+
3161+
Security and Privacy Considerations {#priv-sec}
3162+
===============================================
3163+
3164+
This specification defines "system" colors,
3165+
which theoretically can expose details of the user's OS settings,
3166+
which is a fingerprinting risk.
3167+
However, these values are now defined to be settings-neutral,
3168+
and should be implemented in a generic way that does not actually expose system colors.
3169+
3170+
The system colors,
3171+
if they actually correspond to the user's system colors,
3172+
also pose a security risk,
3173+
as they make it easier for a malware site
3174+
to create a dialog that appears to be a system dialog.
3175+
However, as they are now defined to be "generic",
3176+
this risk should be eliminated.

0 commit comments

Comments
 (0)