SharePoint status column color formatting
Turn a plain status column into green, yellow, and red pills so people can scan your list in a second — without writing JSON by hand.
By default, a SharePoint (or Microsoft Lists) Status column shows plain grey text: "Completed", "In Progress", "Blocked". With a small piece of column formatting JSON, you can render each value as a colored pill instead. This page shows what that looks like, the JSON behind it, and how to apply it in a couple of minutes.
Before and after
What the SharePoint choice pill JSON looks like
The generator produces clean JSON like the example below. Each if() matches a choice value and sets the pill's background color. You don't have to write this — it's shown so you know what you're pasting:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"txtContent": "[$Status]",
"style": {
"padding": "4px 10px",
"border-radius": "12px",
"color": "white",
"background-color": "=if([$Status] == 'Completed', '#107c10', if([$Status] == 'In Progress', '#d29200', if([$Status] == 'Blocked', '#d13438', '#605e5c')))"
}
}
This is standard SharePoint choice pill JSON: a single div with the field value as text and a conditional background color. The generator builds the nested if() for you from whatever choices you enter.
How to apply it
- Open the generator and pick the Click-to-Edit Pill template (or use the button above).
- Enter your column's internal field name — see the note below.
- Adjust the choice values and colors to match your list.
- Click Copy.
- In SharePoint: Column settings → Format this column → Advanced mode.
- Delete what's in the box, paste, click Preview, then Save.
ProjectStatus or Project_x0020_Status internally). See the internal field name guide to find yours.