Summary
The <custom-ident> CSS data value denotes an arbitrary user-defined string used as an identifier. It is case-sensitive and in each context, several values are excluded to prevent misinterpretations.
Syntax
Its syntax is similar to the CSS identifier one, except that it is case-sensitive: a <custom-ident> is a sequence of characters where characters can be:
- any alphanumeric character (
'A'to'Z', or'a'to'z'), - any decimal digit (
'0'to'9'), - a dash (
'-') - an underscore (
'_'), - a escaped character (with a backslash,
'\'), - or a Unicode character (in the format of a backslash followed by one to six hexadecimal digits, its Unicode code point).
The first character must not be a decimal digit nor a dash ('-') followed by a decimal digit or another dash. A <custom-ident> must not be placed between single or double quotes as it would be identical to a <string>.
Note that id1, Id1, iD1 and ID1 are all different identifiers as they are case-sensitive. In the opposite, as there are several ways to escape a character, toto\? and toto\3F are the same identifiers.
Lists of excluded values
In order to prevent ambiguity, each property using <custom-ident> also defined a specific list of forbidden values:
animation-name- Forbids the global CSS values,
unset,initial, andinherit, and the valuenone. counter-resetcounter-increment- Forbids the global CSS values,
unset,initial, andinherit, and the valuenone. @counter-stylelist-style-type- Forbids the global CSS values,
unset,initial, andinherit, as well as the valuesnone,inline, andoutside. Also quite a few predefined values are implemented by the different browsers:disc,circle,square,decimal,cjk-decimal,decimal-leading-zero,lower-roman,upper-roman,lower-greek,lower-alpha,lower-latin,upper-alpha,upper-latin,arabic-indic,armenian,bengali,cambodian,cjk-earthly-branch,cjk-heavenly-stem,cjk-ideographic,devanagari,ethiopic-numeric,georgian,gujarati,gurmukhi,hebrew,hiragana,hiragana-iroha,japanese-formal,japanese-informal,kannada,katakana,katakana-iroha,khmer,korean-hangul-formal,korean-hanja-formal,korean-hanja-informal,lao,lower-armenian,malayalam,mongolian,myanmar,oriya,persian,simp-chinese-formal,simp-chinese-informal,tamil,telugu,thai,tibetan,trad-chinese-formal,trad-chinese-informal,upper-armenian,disclosure-open, anddisclosure-close. will-change- Forbids the global CSS values,
unset,initial,inherit, as well as the valueswill-change,auto,scroll-position, andcontents.
Examples
These are valid identifiers:
nono79 A mix of alphanumeric characters and numbers ground-level A mix of alphanumeric characters and a dash -test A dash followed by alphanumeric characters _internal An underscore followed by alphanumeric characters \22 toto A Unicode character followed by a sequence of alphanumeric characters bili\.bob The period is correctly escaped
These are invalid identifiers:
34rem It must not start with a decimal digit. -12rad It must not start with a dash followed by a decimal digit. bili.bob Only alphanumeric characters, _ and - need not to be escaped. --toto It must not start with two dashes. 'bilibob' It isn't a <user-ident> but a<string>. "bilibob" It isn't a <user-ident> but a<string>.
Specifications
Browser compatibility
As this type is not a real type but a convenience type used to simplify the description of allowed values, there is no browser compatibility information stricto sensu.
See also
- CSS Data Types:
<angle>,<blend-mode>,<color>,<custom-ident>,<frequency>,<gradient>,<image>,<length>,<number>,<percentage>,<position>,<ratio>,<resolution>,<shape>,<string>,<time>,<timing-function>,<uri>