← 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.

browser: spec: https://drafts.css-houdini.org/css-properties-values-api-1/#at-property-rule chromestatus: #5168674259468288 generated 2026-08-27T23:10:00Z by claude-opus-5-v156-build
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