The BNF Syntax Of CNS

T. Berk, L. Brownston, and A. Kaufman,
A New Color-Naming System for Graphics Languages
IEEE Computer Graphics and Applications, Vol. 2, No. 3 (May, 1982), pages 37-44.

<color name> ::= <achromatic name> | <chromatic name>
<achromatic name> ::= [<lightness>] gray | black | white
<chromatic name> ::= <lightness> <saturation> <hue> | [<saturation>] [<lightness>] <hue>
<lightness> ::= very dark | dark | medium | light | very light
<saturation> ::= grayish | moderate | strong | vivid
<hue> ::= <generic hue> | <halfway hue> | <quarterway hue>
<generic hue> ::= red | orange | brown | yellow | green | blue | purple
<halfway hue> ::= <generic hue> - <generic hue>
<quarterway hue> ::= <ish form> <generic hue>
<ish form> ::= reddish | orangish | brownish | yellowish | greenish | bluish | purplish


  1. If <lightness> is omitted, medium is assumed.

  2. If <saturation> is omitted, vivid is assumed.

  3. <halfway hue> and <quarterway hue> define intermediate hues between two adjacent generic hues around the hue cicrcle shown in Figure 3 of the article. The complete list of hue names is:

The syntax of CNS is orthogonal with respect to the three terms of a color specification. All possible combinations are syntactically correct, although some syntactically correct combinations may not be realizable. For example, if a color is very light or very dark, it cannot be fully saturated. Only colors of intermediate lightness can be vivid. The maximum possible saturation of a color decreases as it becomes light or dark.

Color Dictionaries Go Figure!