Aug 21 2023 05:02 PM
I'm afraid I'm too bad at coding. I've tried to go through all the materials but seem to not be able to land on a solution. Basically just need to assign custom hex colors to each of the choice options (Ex. If Sales, then #ff0000, If Marketing then #006aff)
Also how can I add border color to the choice pill and different colored fonts? As you will see, I have tried to change the json but it gives me an error
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"style": {
"flex-wrap": "wrap",
"display": "flex"
},
"children": [
{
"elmType": "div",
"style": {
"box-sizing": "border-box",
"padding": "4px 8px 5px 8px",
"overflow": "hidden",
"text-overflow": "ellipsis",
"display": "flex",
"border-radius": "16px",
"height": "24px",
"align-items": "center",
"white-space": "nowrap",
"margin": "4px 4px 4px 4px"
},
"attributes": {
"class": {
"operator": ":",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Sales"
]
},
"SalesClass",
"style":
{"background-color":"#ff0000"}
{
"operator": ":",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Retention"
]
},
"#ff0000",
{
"operator": ":",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Marketing"
]
},
"#ff0000",
{
"operator": ":",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
""
]
},
"",
"sp-field-borderAllRegular sp-field-borderAllSolid sp-css-borderColor-neutralSecondary"
]
}
]
}
]
}
]
}
},
"txtContent": "@currentField"
}
]
}
Aug 22 2023 02:12 AM
Hi @JohnBloggs950,
JSON formatting allows you to control how data is displayed in SharePoint lists. In your case, you want to change the appearance of choice field values, including adding custom colors, borders, and font colors. The key here is to use conditional logic to apply different styles based on the choice field value.
You can try to use this JSON code snippet for achieving this:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"style": {
"display": "flex",
"flex-direction": "row",
"flex-wrap": "wrap"
},
"children": [
{
"elmType": "div",
"style": {
"padding": "4px 8px",
"border-radius": "16px",
"margin": "4px",
"font-weight": "bold",
"color": {
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Sales"
]
},
"#ff0000",
{
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Marketing"
]
},
"#006aff",
"#000000" // Default font color
]
}
]
},
"background-color": {
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Sales"
]
},
"#ff0000",
{
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Marketing"
]
},
"#006aff",
"#ffffff" // Default background color
]
}
]
},
"border": {
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Sales"
]
},
"1px solid #ff0000",
{
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Marketing"
]
},
"1px solid #006aff",
"1px solid #000000" // Default border color
]
}
]
}
},
"txtContent": "@currentField"
}
]
}
You need to adjust the color codes, font styles, and other CSS properties as needed to match your design preferences.
Please click Mark as Best Response & Like if my post helped you to solve your issue.
This will help others to find the correct solution easily. It also closes the item.
If the post was useful in other ways, please consider giving it Like.
Kindest regards,
Leon Pavesic
Aug 22 2023 03:23 AM - edited Aug 22 2023 03:52 AM
Solution@JohnBloggs950 you can simplify the JSON consderably by using the following instead, adjusting it as necessary. It's also easier to read & debug.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"txtContent": "@currentField",
"style": {
"color": "=if(@currentField == 'Sales', '#ff0000', if(@currentField == 'Marketing', '#006aff', if(@currentField == 'Warehouse', '#b882d7','green')))",
"background-color": "#f8f8f8",
"border": "1px solid",
"box-sizing": "border-box",
"padding": "4px 8px 5px",
"border-radius": "16px",
"margin": "4px"
}
}
The result is:
Rob
Los Gallardos
Microsoft Power Automate Community Super User.
Intranet, SharePoint and Power Platform Manager (and classic 1967 Morris Traveller driver)
Aug 22 2023 10:41 AM
Aug 22 2023 10:46 AM - edited Aug 22 2023 10:48 AM
@JohnBloggs950 when you say it is not working, what is not working? What is the JSON code you are using?
Aug 22 2023 11:00 AM
@Rob_Elliott I just copy pasted the one you shared into my SharePoint format column JSON editor and the Preview button remained disabled.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"style": {
"display": "flex",
"flex-direction": "row",
"flex-wrap": "wrap"
},
"children": [
{
"elmType": "div",
"style": {
"padding": "4px 8px",
"border-radius": "16px",
"margin": "4px",
"font-weight": "bold",
"color": {
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Sales"
]
},
"#ff0000",
{
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Marketing"
]
},
"#006aff",
"#000000" // Default font color
]
}
]
},
"background-color": {
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Sales"
]
},
"#ff0000",
{
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Marketing"
]
},
"#006aff",
"#ffffff" // Default background color
]
}
]
},
"border": {
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Sales"
]
},
"1px solid #ff0000",
{
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@currentField",
"Marketing"
]
},
"1px solid #006aff",
"1px solid #000000" // Default border color
]
}
]
}
},
"txtContent": "@currentField"
}
]
}
Aug 22 2023 12:03 PM
Aug 22 2023 01:30 PM - edited Aug 22 2023 01:40 PM
I realized that you are not the person I responded to. I was responding to LeonPavesic's answer (which wasn't working). Yours is actually, I marked it best response :)
In fact, yours worked beautifully, one line and easy to read and debug. Really appreciate it. Worked like a charm