Wix Style Parameters
You can store certain customizations that a user changed – like your app’s color – inside the Wix site (instead of saving it on your database).
The wix-param
key works with color/font parameters, numbers, and booleans.
How it works
Use our custom style parameter key, wix-param. Here’s the basic flow:
- Set a key name to identify this data: For example, the key name for your app’s background color can be:
backgroundColor
. - Set the starting values in the UI control and in the extension itself: For example, for the app’s color, you’ll save these values in the color picker and in the app’s CSS – see our example below for more guidance.
- For fonts and colors – we’ll reflect the user’s changes in the app: When the user changes the value, we’ll automatically change the value in the Wix site, so there’s no need for you to listen for an
onChange
event. - For booleans and numbers, listen for the STYLE_PARAMS_CHANGE event: When the user changes the value, we’ll automatically change the value in the Wix site. You should reflect these changes in your app. Use the
addEventListener method
.
Note:
You can only use wix-param in UI controls that support it.
Supported UI controls
Color and Font Parameters
- ColorPicker
- ColorPickerWithOpacity
- FontPicker
- Font and color picker
Number Parameters
- ToggleButton
- RadioButton
- Dropdown
- Slider
Boolean Parameters
- Checkbox
- ToggleSwitch
Color Values
When setting colors in your app, you can use any value between color-1 to color-25 (color-1, color-2, color-3, etc). To decide the color value, use our color reference guide.
Font Values
When setting fonts in your app, you can use the values listed in the table below. To decide the font value, use our font reference guide.
|Font theme you chose for your starting scheme |Font Reference Number
(use in the UI control) |Font theme (use in the website extension) |
|---|---|---|
|Heading 1|font_0|Title
|Heading 2|font_2|Page-title
|Heading 3|font_3|Heading-XL
|Heading 4|font_4|Heading-L
|Heading 5|font_5|Heading-M
|Heading 6|font_6|Heading-S
|Paragraph 1|font_7|Body-L
|Paragraph 2|font_8|Body-M
|Paragraph 3|font_9|Body-S
Example
Here's how to implement wix-param
. The examples below use AngularJS, but the concepts apply to React templates/JSX and jQuery too.
We'll use the Font & Color Picker as an example.
- Set up the font and color picker: In your app settings panel, add the font and color picker UI control.
1<wix-control name="UI.fontAndColorPicker" props="{2 title: 'Description',3 //set up the starting color and font in your app4 startWithTheme: 'font_8',5 startWithColor: 'color-2',6 //We save these values inside the Wix site7 wix-param-font: 'myBodyFont',8 wix-param-color: 'myBodyColor',9 }"></wix-control>
- Set the same starting values in the extension itself: You can use the color and font style parameters inside an internal CSS within your website extension. It’s a simple template engine that uses {{value}} to interpolate the style parameters.
- Add the wix-style attribute in the
- Separate the style key name and the fallback (default) value with a space, for example: {{style.wix-param-key fallback_value}}.
Note:
Using AngularJS? Since AngularJS reads {{ }} as an expression, add the ng-non-bindable directive to the
1<style wix-style>2 h1 {3//Font theme is paragraph 24 font:{{style.myBodyFont Body-M}} 5 color:{{style.myBodyColor color-2}} 6 }7 footer {8 //Background color9 background-color: {{color-1}}; 10 }11</style>12<body>13 <h1>Wix Title</h1>14 <footer>15 <h2>Footer</h2>16 </footer>17</body>
Note:
You can get all the style parameters that were set in the app’s settings – use Wix.Styles.getStyleParams
1//get the style parameters2 3 Wix.addEventListener(Wix.Events.STYLE_PARAMS_CHANGE, function(data) {4 console.log(data);5 });6 7//returns an object with all of the style parameters8 9{10booleans: {11 showDescription: true12 showTitle: true13}14Colors:{15 titleColor:{16 themeName:"color-5"17 value:"#302D2D"18 }19}20fonts: {21 btnFont:{22 displayName:"Paragraph 2"23 editorKey:"font_8"24 family:"din-next-w01-light"25 fontStyleParam:true26 preset:"Custom"27 Size:1528 Style:{29 bold:false30 italic:false31 underline:false32 }33 value:"font:normal normal normal 15px/18px din-next-w01-light,34 din-next-w02-light,din-next-w10-light,sans-serif;"35 36}37}38Numbers:{39 Animation: 240}