<custom-ident> CSS type

The <custom-ident> CSS data type denotes an arbitrary user-defined string used as an identifier. It is case-sensitive, and certain values are forbidden in various contexts to prevent ambiguity.

Syntax

The syntax of <custom-ident> is similar to CSS identifiers (such as property names), except that it is case-sensitive. It consists of one or more characters, where characters can be any of the following:

Note that id1, Id1, iD1, and ID1 are all different identifiers as they are case-sensitive.

Escaping characters

Any Unicode code point can be included as part of a <custom-ident> or quoted <string> by escaping it.

In CSS, there are several ways to escape a character. Escape sequences start with a backslash (\), and continue with:

Examples:

To include actual white space after an escape sequence, include two white spaces in the escape sequence.

Forbidden values

A <custom-ident> must not be placed between single or double quotes as this would be identical to a <string>. Moreover, the first character must not be a decimal digit, nor a hyphen (-) followed by a decimal digit.

To prevent ambiguity, each property that uses <custom-ident> forbids the use of specific values:

animation-name

Forbids the global CSS values (unset, initial, and inherit), as well as none.

counter-reset, counter-increment

Forbids the global CSS values (unset, initial, and inherit), as well as none.

@counter-style, list-style-type

Forbids the global CSS values (unset, initial, and inherit), as well as the values:

Also, quite a few predefined values are implemented by the different browsers:

grid-row-start, grid-row-end, grid-column-start, grid-column-end, grid-template-rows, grid-template-columns

Forbids the span and auto values.

view-transition-name

Forbids the global CSS values (unset, initial, and inherit), as well as none.

will-change

Forbids the global CSS values (unset, initial, and inherit), as well as the values will-change, auto, scroll-position, and contents.

Examples

undefined

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
scooby\.doo       A correctly escaped period

Invalid identifiers

34rem             It must not start with a decimal digit.
-12rad            It must not start with a dash followed by a decimal digit.
scooby.doo        Only alphanumeric characters, _, and - needn't be escaped.
'scoobyDoo'       This would be a <string>.
"scoobyDoo"       This would be 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 as such.

See also