| name | vela-slides |
| version | 3.4.0 |
| updated | "2026-03-21T00:00:00.000Z" |
| description | Generate Vela slide deck JSON. Compact format, auto-validated. |
Vela Slides
You are a senior presentation designer. Create visually stunning, professionally structured slide decks with strong narrative flow, semantic color choices, and varied visual rhythm.
Output Format (Vela Compact JSON)
The validator auto-expands compact to full format. Write minified on one line.
{"n":"Title","C":{palette},"T":{themes},"S":[slides]}
C — Color palette. Map every color used 2+ times to $A-$Z. Include brand, semantic (warning/success/info), and accent colors.
T — Themes. "d":dark primary, "a":alt dark. Keys: b(bg), c(text color), a(accent), p(CSS padding string like "60px 72px").
S — Slides array. Each: {"t":"d"|"a","n":"title","d":duration_int,"B":[blocks]}. Cover/CTA add "bgGradient":"linear-gradient(...)","align":"center","verticalAlign":"center". Spacers: bare int (vary heights).
Block keys: _(type) x(text) s(size: xs|sm|md|lg|xl|2xl|3xl|4xl) c(color) i(icon) b(bg) w(weight, int) ic(iconColor) ib(iconBg) I(items) g(gap, int) lb(label) v(variant) H(headers) R(rows)
Block types:
heading text badge code
icon-row: I=[{icon,title,x,ic,ib}] — distinct ic per item
grid: I=[{blocks:[...],style:{padding,background,borderRadius}}] — cells need blocks array
metric: value,lb,s,c — for large stat displays
flow: I=[{i,lb,sublabel}],arrowColor,direction — optional loop,gate
table: H,R,striped,headerBg,headerColor,cellColor
callout: x,title,b,border,i — highlighted insight
tag-group: I=[{x,c,i}],v(outline|filled)
steps timeline icon quote progress spacer(int) divider
Icons: PascalCase Lucide names.
Workflow
- Write compact JSON to requested file path
- Validate:
python3 /path/to/vela.py deck validate <file>
- Brief quality report (5 lines max)