When multiple styling sources exist for the same property, understanding which value is used is essential. This guide explains how CSS property values are resolved.
The editor resolves which value to apply in this order, from lowest to highest priority:
Fallback styles before the editor applies inline styles.
Style defaults defined in defaultValue override the CSS.
Overrides manifest defaults when a preset is selected. Properties not defined in the preset use manifest defaults.
Any change the Wix user makes in the editor overrides all.
The hierarchy above applies to both cssProperties and cssCustomProperties, but they're applied differently. The editor applies cssProperties as inline styles, which automatically override your CSS file. For cssCustomProperties, the editor sets CSS variables on the element, but your CSS file must reference them with var() for the values to take effect.
User customizations are tied to the active preset. Switching to a different preset resets any customizations the Wix user made. If they switch back, the preset's original defaults are restored, not the Wix user's previous customizations.
States aren't a separate priority level. Both the manifest and presets can define state-specific values using statesDefaultValues. The current state determines which value to read from whichever set of defaults is active.
Display filters control which properties are visible to the user in the editor, not which values take priority. They follow their own narrowing order: Element filters apply first, then preset filters, then state filters. See Display Filters for details.