← back to v156 · optional-descriptors-for-registered-custom-properties
conformance · v156
v156 · optional-descriptors-for-registered-custom-properties — conformance probe
8 assertions drawn from the spec. Each is a single contract the spec text makes. Pass/fail reflects what this browser executed; blocked means the contract was not run because it needs user mediation, hardware, or another unavailable precondition. Open the page in Chrome stable / canary / Firefox / Safari to compare.
0
pass
0
fail
0
blocked
8
total
| id | contract | kind | verdict | detail |
|---|---|---|---|---|
registerproperty-available |
CSS.registerProperty is the CSSOM half of the feature; @property is the stylesheet half. spec ↗ | typeof | … | |
at-property-rule-supported |
The @property rule is parsed by this browser. spec ↗ | script | … | |
inherits-may-be-omitted |
A registration with only a syntax must be accepted: inherits is no longer a required member. Before Chrome 156 this threw a TypeError from WebIDL because inherits was declared required. spec ↗ | script | … | |
initial-value-may-be-omitted-on-typed-syntax |
A typed syntax with no initial-value must be accepted. Before Chrome 156 this threw a SyntaxError: 'An initial value must be provided if the syntax is not *'. This is the omission that makes per-use var() fallbacks possible on a typed property. spec ↗ | script | … | |
omitted-initial-value-leaves-var-fallback-reachable |
With no initial-value the property is guaranteed-invalid until set, so var(--x, fallback) resolves to its fallback. This is the observable consequence authors wanted, not just a looser parse. spec ↗ | script | … | |
syntax-may-be-omitted |
A registration with neither syntax nor any other descriptor must be accepted, defaulting to the universal syntax. spec ↗ | script | … | |
name-is-still-required |
Relaxing the descriptors must not relax the name: a registration with no name is still a TypeError. spec ↗ | throws | … | |
duplicate-registration-still-rejected |
A name can only be registered once per document, whatever descriptors it carries. This anchors the relaxation against a rule that has not changed, and is why every demo here uses a fresh name per attempt. spec ↗ | script | … |