Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE html>
<title>CSS Values: The ident() Function (parsing)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<script>
// Any property that accepts <custom-ident> will do.
let prop = 'view-transition-name';
// ident() is an arbitrary substitution function, so only its argument grammar is validated at parse
// time: ident( <declaration-value> ). The argument is parsed as <ident-arg>+ at computed-value time.
test_invalid_value(prop, 'ident()');
test_invalid_value(prop, 'ident( )');
test_invalid_value(prop, 'ident({})');
test_invalid_value(prop, 'ident(a, b)');
// Not an <ident-arg>+, so these are valid here and invalid at computed-value time.
test_valid_value(prop, 'ident(rgb(1, 2, 3))');
test_valid_value(prop, 'ident(5px)');
// The argument round-trips as specified, with no whitespace normalization.
test_valid_value(prop, 'ident(myident)');
test_valid_value(prop, 'ident( myident)');
test_valid_value(prop, 'ident(myident )');
test_valid_value(prop, 'ident("myident")');
test_valid_value(prop, 'ident("myident" 3)');
test_valid_value(prop, 'ident(3 "myident")');
test_valid_value(prop, 'ident("my" "ident")');
test_valid_value(prop, 'ident(my "ident")');
test_valid_value(prop, 'ident("my" ident)');
test_valid_value(prop, 'ident(my ident)');
test_valid_value(prop, 'ident(-- myident)');
test_valid_value(prop, 'ident(my 3 3 3 3 ident)')
// Check for support in specific properties (WIP):
let ident = 'ident("myident" 42)';
test_valid_value('view-transition-name', ident);
</script>