Appearance
Conditional Row Styles
Style rows based on data conditions — like conditional formatting in spreadsheets. Rules apply a background color, a text color, bold, italic, and strikethrough to rows that match filter criteria.
How it works
- Open the Row Styles dialog from the view tab context menu
- Add a rule with one or more conditions (same operators as filters: equals, not equals, greater than, etc.)
- Choose a background color and a text color from the palettes, or toggle text styles (bold, italic, strikethrough)
- Rules are priority-ordered — first matching rule wins
Creating a rule
Each rule has:
- Name — a label for the rule (e.g., "Overdue tasks")
- Conditions — filter criteria using column values and operators
- Condition logic —
AND(all conditions must match) orOR(any condition matches) - Style — background color, text color, bold, italic, strikethrough
- Enabled — toggle rules on/off without deleting them
Priority ordering
Drag rules to reorder them. The first enabled rule whose conditions match a row determines that row's style. Later rules are not evaluated for that row.
Order narrowest to broadest. Because evaluation stops at the first match, a rule whose conditions are a superset of the rule below it makes that rule unreachable. amount > 100 placed above amount > 1000 will colour every row over a thousand with the first rule's style, and the second will never fire — put the more specific threshold first.
A rule with no conditions never matches, so a half-written rule is inert rather than applying to everything. The same is true of a condition whose comparison value is still empty.
Stored on the view
Style rules belong to the view, not to a filter preset and not to an individual user. Everyone with access to the view sees the same styling, and a rule you add or disable changes it for all of them. Switching filter presets does not change the styling.
Color palettes
Eight predefined M3-compatible pastel backgrounds that work in both light and dark mode:
| Color | Hex |
|---|---|
| Red | #FFEBEE |
| Orange | #FFF3E0 |
| Yellow | #FFFDE7 |
| Green | #E8F5E9 |
| Blue | #E3F2FD |
| Purple | #F3E5F5 |
| Teal | #E0F2F1 |
| Grey | #F5F5F5 |
And eight matching text colors. Each one is the dark end of its hue in light mode and the light end in dark mode, so it stays readable on white, on its own pastel background, and on the dark surface — every pair clears WCAG AA contrast.
| Color | Hex |
|---|---|
| Red | #B71C1C |
| Orange | #BF360C |
| Yellow | #6D6213 |
| Green | #1B5E20 |
| Blue | #0D47A1 |
| Purple | #4A148C |
| Teal | #004D40 |
| Grey | #424242 |
Colors outside these two palettes can be set through the API. They are applied as inline styles, which means they cannot switch between light and dark mode — prefer the palettes unless you have a reason not to.
Selection and hover priority
When a styled row is selected or hovered, the selection/hover styling takes precedence over the conditional style. The conditional style reappears when the row is deselected.
Performance
Style rules are evaluated client-side against loaded rows (100 per page). This means:
- No impact on database queries
- SSE-inserted rows pick up styles immediately
- Evaluation is sub-millisecond even with many rules