123{ "icons": { "library": "lucide" } }
| Library | Description |
fontawesome | Font Awesome free set (default) |
lucide | Clean, consistent icons |
12345678910// Lucide icons (recommended) "icon": "lucide:rocket" "icon": "lucide:shield" // Font Awesome icons "icon": "fontawesome:brands:github" "icon": "fontawesome:solid:compass" // Plain names resolve against the configured library "icon": "rocket" // resolves to lucide:rocket if "icons.library": "lucide"
12345--- $schema: https://holocron.so/frontmatter.json title: Authentication icon: lucide:lock ---
public/ and set icon on the page to a root-absolute path (/icons/vercel.svg). Holocron looks in public/, then the project root. Relative paths like ./icons/vercel.svg resolve from those same directories, not from the MDX file. A ../ path is rejected and fails the production build. Holocron inlines the SVG into the same atlas as Lucide, so it inherits currentColor and sidebar size. A missing file also fails the production build.123public/ icons/ vercel.svg
12345678--- $schema: https://holocron.so/frontmatter.json title: Vercel deployments sidebarTitle: Vercel icon: /icons/vercel.svg --- Connect Vercel and check the latest production deploy.
icon: /icons/vercel.svgcurrentColor for fill and stroke. Remote https:// icons still render as images.docs.json:12345{ "group": "Integrations", "icon": "/icons/slack.svg", "pages": ["integrations/slack"] }
icon field:12345{ "group": "Security", "icon": "lucide:shield", "pages": ["security/overview"] }
solid, regular, and brands styles:1234567{ "icon": { "name": "github", "library": "fontawesome", "style": "brands" } }
12345# All lucide icon names curl -s https://holocron.so/schemas/lucide-icons.json | jq '.enum[:10]' # All fontawesome icon names curl -s https://holocron.so/schemas/fontawesome-icons.json | jq '.enum[:10]'
iconColor to give icons a distinct color. This works everywhere icons are supported: page frontmatter, groups, tabs, anchors, navbar links, and dropdowns.| Color | Example |
green | "iconColor": "green" |
blue | "iconColor": "blue" |
red | "iconColor": "red" |
purple | "iconColor": "purple" |
orange | "iconColor": "orange" |
yellow | "iconColor": "yellow" |
pink | "iconColor": "pink" |
1{ "iconColor": "#e11d48" }
123456--- $schema: https://holocron.so/frontmatter.json title: Authentication icon: lock iconColor: green ---
12345678910111213141516171819202122{ "navigation": { "tabs": [ { "tab": "API Reference", "icon": "code", "iconColor": "blue", "groups": [...] } ], "global": { "anchors": [ { "anchor": "Discord", "href": "https://discord.gg/example", "icon": "message-circle", "iconColor": "purple" } ] } } }
icon, all pages in that group should.<Card> in a <CardGroup> has an icon prop, every card in that group must.