list-formatting
Create beautiful, functional SharePoint list and library formatters using JSON.
Skill by zrosenfield
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/zrosenfield-list-formatting
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, data, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/list-formatting
What's inside
- Skill name
list-formatting- Description
- Create beautiful, functional SharePoint list and library formatters using JSON. Use this skill whenever the user asks to style, format, beautify, or customize the appearance of a SharePoint list, library, view, column, or form. Trigger phrases include "style my list", "format my list", "make my list pretty", "make my library beautiful", "style my library", "customize my view", "format my columns", "card layout", "tile view", "add icons to my list", "color code my list", "conditional formatting", "progress bars", or any mention of SharePoint JSON formatting. Also trigger when the user references specific formatting patterns like status indicators, data bars, people cards, Gantt charts, KPI dashboards, or hover cards in a SharePoint context. This skill produces English-language instructions only — no code generation. It teaches the agent what is possible and how to describe formatters so a downstream tool can apply them.
- License
- MIT
- Instructions
- 189 lines in SKILL.md · view on GitHub
Files (4)
- SKILL.md
- advanced.md · references/
- patterns.md · references/
- visual.md · references/
SKILL.md (first lines)
<!--
SharePoint List Formatting Skill
Created by Zach Rosenfield (github.com/zrosenfield)
Built with knowledge from:
- Microsoft Learn: SharePoint declarative customization docs
https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/column-formatting
https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/view-list-formatting
https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/formatting-syntax-reference
- PnP List Formatting Samples (MIT License)
https://pnp.github.io/List-Formatting/
https://github.com/pnp/List-Formatting
Sharing is Caring!
-->
# SharePoint List Formatting Skill
## Step 1: Load Additional References (if needed)
Scan the user's request and read any reference files that apply before responding:
| If the request involves… | Read… |
|---|---|
| Colors, icons, status indicators, severity styling, theme classes, font styling, background colors, any visual decoration | `references/visual.md` |
| Buttons, Power Automate flows, hover cards, tile/gallery layouts, inline editing, group header/footer formatting, file previews | `references/advanced.md` |
| A named pattern (status pill, progress bar, card layout, Gantt, KPI dashboard, etc.), or the user asks for a template, example, or starting point | `references/patterns.md` |
For open-ended "make it pretty" requests, read all three. When in doubt, read the file.
---
## Step 2: Think Big Before You Build
When the user asks to "make it pretty", "style my view", or gives any open-ended visual request — **do not default to incremental tweaks**. Treat it as an invitation to fundamentally reimagine the experience.
Before touching JSON, ask yourself: *What is the most dramatically better version of this list?*
**Default to transformation, not decoration:**
- Prefer a `rowFormatter` card layout over adding row highlight colors
- Prefer a tile/gallery view over a plain list with styled columns
- Prefer rich column formatters (status pills, avatar+name, progress bars, due date urgency) over plain text with background colors
- Propose a **complete visual system** — not isolated column tweaks
**Name your vision first.** Before producing JSON, describe what you're building in one sentence. This lets the user redirect before you build the wrong thing.
**Propose the boldest option, then offer alternatives.** Lead with the most dramatic transformation. Mention a simpler fallback if they want something lighter.
---
## Formatting Scopes
Four distinct scopes — pick the right one, or combine them:
- **Column formatting** — Styles a single column's cells. Applied via: Column Settings > Format this column > Advanced mode. `@currentField` is the column's value.
- **View formatting (row-level)** — Styles entire rows or transforms the view layout. Applied via: View dropdown > Format current view > Advanced mode. Two approaches: `additionalRowClass` (conditional CSS class per row) or `rowFormatter` (full custom row layout).
- **Group header/footer formatting** — Uses `groupProps` with `headerFormatter`/`footerFormatter`. Access group data with `@group` token.
- **Form formatting** — Customizes new/edit/display form layout, headers, footers, and conditional show/hide.
## JSON Schemas
Always include the correct `$schema`:
| Formatter type | Schema |
|---|---|
| Column formatting | `https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json` |
| View with `rowFormatter` | `https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json` |
| View with `additionalRowClass` only | `https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json` |
| Tile/gallery view | `https://developer.microsoft.com/json-schemas/sp/v2/tile-formatting.schema.json` |
## Element Types (elmType)
| elmType | Description |
|---------|-------------|
| `div` | Block container. Most common wrapper. |
| `span` | Inline container. Good for text alongside other elements. |
| `a` | Hyperlink. Requires `href` attribute. |
| `img` | Image. Requires `src`. Subject to domain restrictions. |
| `svg` / `path` | Vector graphics. `path` requires `d` attribute. |
| `button` | Clickable button. Requires `customRowAction`. |
| `filepreview` | Document library thumbnail. Set `src` to `@thumbnail.medium`. |
## Key Properties
- **`txtContent`** — Text content of the element (string or expression). If set, `children` are ignored.
- **`style`** — CSS property/value pairs. Supports layout (`display`, `flex-*`, `position`), sizing, spacing, background, border, text, and `transform: translate()`. Use flexbox; `float` is deprecated.
- **`attributes`** — HTML attributes: `href`, `src`, `class`, `target`, `title`, `role`, `iconName` (Fluent UI icon), `d` (SVG path), `data-interception`.
- **`children`** — Array of child element objects. Ignored if `txtContent` is set.
- **`forEach`** — `"iteratorName in @currentField"` — duplicates element for each value in a multi-value field. Cannot be on the root element.
- **`debugMode`** — Set `true` to log errors to browser console.
## Expressions
Prefer Excel-style (`=` prefix). Examples:
```
=if(@currentField == 'Done', 'sp-field-severity--good', '')
=if([$DueDate] <= @now, '#a4262c', 'inherit')
='mailto:' + @currentField.email
=toString(floor(@currentField * 100)) + '%'
```
**Operators**: `+`, `-`, `*`, `/`, `%`, `==`, `!=`, `<`, `>`, `<=`, `>=`, `&&`, `||`, ternary `?`
**String**: `toString()`, `toLowerCase`, `toUpperCase`, `indexOf`, `startsWith`, `endsWith`, `substring`, `replace`, `replaceAll`, `padStart`, `padEnd`, `split`, `join`, `length` (array count only — not string length)
**Number**: `Number()`, `abs`, `floor`, `ceiling`, `pow`, `cos`, `sin`, `toLocaleString()`
**Date**: `Date()`, `getDate`, `getMonth` (0-based), `getYear`, `addDays`, `addMinutes`, `toLocaleDateString()`, `toLocaleString()`
**Array**: `appendTo`, `removeFrom`, `indexOf`, `join`, `length`
**Images**: `getUserImage(email, size)` — sizes: `'small'`/`'s'`, `'medium'`/`'m'`, `'large'`/`'l'`
## Special Tokens
| Token | Description |
|-------|-------------|
| `@currentField` | Column value. In `rowFormatter`, always resolves to Title — use `[$FieldName]` instead. |
| `@currentField.title` / `.email` / `.id` / `.picture` / `.department` / `.jobTitle` | Person field sub-properties |From zrosenfield/sharepoint-ai-skills, MIT.
More from zrosenfield/sharepoint-ai-skills
- 0.639score
site-analyzer
Marcus Markiewicz
Performs comprehensive analysis of a SharePoint project site by systematically reading ALL lists and ALL documents using AI in SharePoint tools, then…
SkillBFreshness: B★ 99Claude Code +9 - 0.639score
deck-assembly
zrosenfield
Assembles a new HTML presentation by selecting content from existing PowerPoint source decks and rendering it in a polished Copilot-themed design.
SkillBFreshness: B★ 99Claude Code +9 - 0.636score
autoresearch
Marcus Markiewicz
Optimize any AI in SharePoint skill by iteratively running it against test inputs, scoring outputs with binary evals, mutating the prompt to fix failures, and…
SkillBFreshness: B★ 99Claude Code +9 - 0.635score
improve-skills
zrosenfield
Sets up persistent eval suites for any AI in SharePoint skill and runs self-healing improvement loops on demand.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
executive-summary
zrosenfield
Distills long documents, reports, meeting transcripts, or briefing materials into tight one-page executive summaries formatted for SharePoint.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
faq-building
zrosenfield
Builds structured FAQ pages from source material such as documents, process guides, policies, product descriptions, or topic briefs.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
copy-editing
zrosenfield
Systematically edits Markdown documents — READMEs, skill files, and demo guides — using seven sequential sweeps.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
hiring-pipeline-report
zrosenfield
Reads an Open Roles list and a Candidates list from the current SharePoint site and generates a self-contained HTML hiring dashboard for Zava Industries.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
gap-analysis
zrosenfield
Compares two documents or versions of content and surfaces what is missing, conflicting, changed, or new between them.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
forest-style
zrosenfield
Applies the forest-style brand system to any visual output, document, web content, presentation, table, list, or interface element.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
ingest-knowledge
zrosenfield
Extracts tacit knowledge from any input — typed text, transcripts, emails, documents, or Slack threads — and writes it into the Knowledge Base library as…
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
design-direction
zrosenfield
Creates a distinctive visual direction for interfaces, pages, dashboards, slides, forms, and other visual artifacts.
SkillBFreshness: B★ 99Claude Code +9
Signals
- Stars
- 99
- Forks
- 31
- Open issues
- 0
- Last commit (this folder)
- Aug 4, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from zrosenfield
- 0.639score
deck-assembly
zrosenfield
Assembles a new HTML presentation by selecting content from existing PowerPoint source decks and rendering it in a polished Copilot-themed design.
SkillBFreshness: B★ 99Claude Code +9 - 0.635score
improve-skills
zrosenfield
Sets up persistent eval suites for any AI in SharePoint skill and runs self-healing improvement loops on demand.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
faq-building
zrosenfield
Builds structured FAQ pages from source material such as documents, process guides, policies, product descriptions, or topic briefs.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
executive-summary
zrosenfield
Distills long documents, reports, meeting transcripts, or briefing materials into tight one-page executive summaries formatted for SharePoint.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
design-direction
zrosenfield
Creates a distinctive visual direction for interfaces, pages, dashboards, slides, forms, and other visual artifacts.
SkillBFreshness: B★ 99Claude Code +9 - 0.634score
copy-editing
zrosenfield
Systematically edits Markdown documents — READMEs, skill files, and demo guides — using seven sequential sweeps.
SkillBFreshness: B★ 99Claude Code +9
Cite this page
list-formatting skill. Agent Mart. https://agentmart.dev/skills/zrosenfield-list-formatting (last updated 2026-10-24)