Brand Kits

Apply consistent branding to your charts with custom colors, fonts, and styling. Brand kits work with both bare charts and full card compositions.

Built-in Presets

Six presets are available immediately without creating a custom kit. Pass the preset name as brandKitId:

Preset IDDescription
obsidianDark slate background, warm ember accent — high contrast
linenLight warm background, subtle grid — clean and readable
polarCool blue-grey palette, suited for analytical dashboards
studioNeutral studio tones, versatile across light and dark contexts
emberWarm orange-red palette, energetic and bold
harborMuted coastal tones, calm and professional

Using a Preset

json
{ "type": "bar", "brandKitId": "obsidian", "data": { "labels": ["Jan", "Feb", "Mar"], "datasets": [{ "label": "Revenue", "data": [12000, 15000, 18000] }] } }

Brand Kit + Card Composition

Brand kits apply their palette, font, and styling to both the chart region and the card shell (header, KPI strip, footer). This is the recommended combination for polished, on-brand outputs:

json
{ "type": "bar", "width": 800, "height": 480, "brandKitId": "obsidian", "header": { "eyebrow": "Q4 2024", "title": "Monthly Revenue", "badge": { "text": "+14%", "backgroundColor": "#166534", "color": "#dcfce7" } }, "kpiStrip": [ { "label": "MRR", "value": "$25,000", "color": "#22c55e" }, { "label": "Growth", "value": "+14%", "color": "#22c55e" }, { "label": "Churn", "value": "1.2%", "color": "#f87171" } ], "footer": { "left": "chart-output.com", "right": "Updated daily" }, "data": { "labels": ["Jan", "Feb", "Mar", "Apr", "May"], "datasets": [{ "label": "Revenue", "data": [12000, 15000, 18000, 22000, 25000] }] } }

See Card Composition for the full card field reference.

Creating a Custom Brand Kit

Via the Dashboard

  1. Go to Brand Kits in your dashboard
  2. Click Create kit
  3. Set colors, font, grid style, and corner rounding
  4. Save — you'll receive a UUID to use as brandKitId
  5. Optionally click Apply to Playground to preview the kit on your chart spec

Via the API

json
POST /api/v1/brand-kits { "name": "Acme Corp", "primaryColor": "#e85729", "accentColor": "#3a6cf5", "font": "Inter", "gridStyle": "subtle", "rounding": 4, "isDefault": false }

The response includes the id (UUID) to use as brandKitId in render requests.

Kit Fields

FieldDescription
primaryColorMain chart elements (bars, lines, primary series)
accentColorSecondary elements and highlights
fontFont family applied to all text on the chart and card
gridStyle"none" or "subtle"
roundingBar corner radius in pixels (0, 4, or 8)
isDefaultWhen true, applied automatically to all renders that omit brandKitId