If I am not mistaken, mix() is valid for custom properties, whose initial value is the guaranteed-invalid value, ie. an omitted value.
A mix() notation is invalid if either of its <declaration-value>s are invalid when interpreted as a whole value for the property the function is used in, or if the property using it is not animatable.
Should mix() syntax allow omitting <declaration-value> ...
- <mix()> = mix( <percentage> ';' <declaration-value> ';' <declaration-value> )
+ <mix()> = mix( <percentage> ';' <declaration-value>? ';' <declaration-value>? )
... to accept inputs like --custom: mix(50%; ; on)?