If you have a SharePoint List that stores some kind of reviews, usually those are from 1 to 5.
Let’s add some emojis that match the scores:
- sad face for 1 and 2 (usually 1 and 2 are equally bad);
- neutral face for 3;
- happy face for 4;
- overly happy face for 5.
The icons are from https://developer.microsoft.com/en-us/fabric#/styles/icons
It doesn’t really add any practicality to the list but makes it look nicer.
To see how it works we will create a SharePoint list, then add a “Review” column (Number type). Five different reviews are added with scores from 1 to 5.
To add emojis to the “Review” column, click on its header – Column settings – Format this column. Once selected, there will be a Format column window on the right side. Paste the code from down below into that windows and save to get the result.
{ "$schema": "http://columnformatting.sharepointpnp.com/columnFormattingSchema.json", "elmType": "div", "children": [ { "elmType": "span", "style": { "display": "inline-block", "padding": "0 2px" }, "attributes": { "iconName": { "operator": "?", "operands": [ { "operator": ">=", "operands": [ "@currentField", "5" ] }, "Emoji", { "operator": "?", "operands": [ { "operator": ">=", "operands": [ "@currentField", "4" ] }, "Emoji2", { "operator": "?", "operands": [ { "operator": ">=", "operands": [ "@currentField", "3" ] }, "EmojiNeutral", { "operator": "?", "operands": [ { "operator": ">=", "operands": [ "@currentField", "1" ] }, "EmojiDisappointed", "Unknown" ] } ] } ] } ] } } }, { "elmType": "span", "style": { "padding-left": "8px" }, "txtContent": "@currentField" } ] }
Or the code can be simplified by using =if function:
{ "$schema": "http://columnformatting.sharepointpnp.com/columnFormattingSchema.json", "elmType": "div", "children": [ { "elmType": "span", "style": { "display": "inline-block", "padding": "0 2px" }, "attributes": { "iconName": "=if(@currentField >= 5, 'Emoji', if(@currentField >= 4, 'Emoji2', if(@currentField >= 3, 'EmojiNeutral', if(@currentField >= 1, 'EmojiDisappointed', 'Unknown'))))" } }, { "elmType": "span", "style": { "padding-left": "8px" }, "txtContent": "@currentField" } ] }