From vizuara
Produce a polished A4 PDF in the exact Vizuara × Ramco house style — terracotta accent (#BF654E), Helvetica Neue, section-number badges, status pills (DONE/~50%/PLANNED/TO BE DECIDED), sage exit-criteria callouts, gantt timelines, and hairline tables. Authors HTML+CSS and renders it to PDF with headless Chrome (the same path that produced the reference doc). Use when the user wants a Vizuara proposal, engagement roadmap, milestone report, or any client-facing PDF that must match the established Vizuara×Ramco look.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vizuara:vizuara-ramco-pdfThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate client-facing PDFs that are visually indistinguishable from the reference
Generate client-facing PDFs that are visually indistinguishable from the reference
Vizuara-Ramco-Engagement-Roadmap.pdf. You write an HTML file that links
report.css, then render it to an A4 PDF with headless Chrome. The CSS is the
whole design system — you almost never touch it; you assemble components.
<link> at them):
assets/report.css — the stylesheet (do not restyle; reuse the classes).assets/template.html — a working document showing every component. Start here.report.css
in the same folder as your HTML (the <link rel="stylesheet" href="report.css">
is relative).python3 scripts/render.py mydoc.html mydoc.pdf
render.py finds Chrome/Chromium/Edge automatically and prints A4 with no
browser header/footer (Skia/PDF, exactly like the original).Page. A4, white background, 48pt (64px) left/right margins. Body is 11px
Helvetica Neue in #404247, line-height 1.5. Bold words go near-black #262626.
Palette (CSS variables in :root):
| Role | Var | Hex |
|---|---|---|
| Heading ink | --ink | #262626 |
| Body | --body | #404247 |
| Muted / eyebrow | --muted | #8a9096 |
| Terracotta accent | --terra | #BF654E |
| Terracotta text-on-tint | --terra-ink | #a4513d |
| Sage (active/done bar, callout border) | --sage / --sage-2 | #6e8e63 / #7d9a75 |
| Green pill | --green-pill-bg/tx | #e3f1e3 / #4a793f |
| Green callout panel | --green-call-bg | #e9efe7 |
| Amber (in-progress ~50%, milestone) | --amber-bg/tx | #faedcf / #a8791d |
| Lilac (future / to-be-decided) | --lilac-bg/tx | #efe8f2 / #7959a7 |
| Grey pill (planned) | --grey-pill-bg/tx | #e6e9ec / #7c848d |
| Hairline / empty gantt cell | --rule / --rule-soft | #e6e9ec / #eff1f3 |
Components (all in template.html, copy-paste and edit):
.cover — top terracotta rule .cover-rule; wordmark
<div class="wordmark"><span class="v">VIZUARA</span><span class="x">×</span>RAMCO</div>;
tracked eyebrow .eyebrow; big title .cover-title; lead .cover-lead (grey with
a near-black bold lead-in); 2×2 .meta-grid (.meta-label terracotta small-caps +
.meta-value bold + .meta-sub muted); sage .point-box; italic .cover-foot..section-head = .section-num (terracotta rounded-square badge,
white number) + .section-title. Optional .section-sub caption underneath..subsection-head = terracotta .subsection-num ("4.1") +
.subsection-title + optional .pill. Meta line .subsection-meta with a
terracotta .tag..pill + modifier: .pill--done (green), .pill--progress
(amber, for "~50%" / "IN PROGRESS"), .pill--planned (grey), .pill--tbd (lilac
"TO BE DECIDED"), .pill--optional, .pill--terra..tbl — header row has a terracotta bottom border; rows are hairline-
separated; td.k is a bold key cell; tr.band is an uppercase terracotta group
divider (COMMITTED / OPTIONAL / FUTURE). Put a pill in the status column..gantt — row label td.rowhead + month cells; .bar.active (sage),
.bar.milestone (amber with a dot), .bar.future (lilac), plain .bar (empty).
Followed by a .legend. To make consecutive active months read as one continuous
band, either drop the inter-cell gap or span them..callout (sage exit-criteria panel; .callout-label = green
small-caps like "EXIT CRITERIA"; .check = green ✔) and .callout--status (neutral
grey, for to-be-decided items).ul.dot / ul.dash (terracotta markers); .lead bolds the run-in term..eyebrow.terra "APPENDIX" label + .appendix-badge (dark letter badge).figure.fig > img — drop in a PNG from the wisprflow-figure skill;
figcaption is a muted caption. This is how editorial charts enter the PDF..doc-foot — hairline rule + tiny muted line.#BF654E is the only brand accent — use it for the wordmark's
VIZUARA, section badges, subsection numbers, small-caps labels and rules. Never
introduce a new accent hue; status colours (green/amber/lilac/grey) are reserved
for pills, callouts and the gantt.python3 scripts/render.py assets/template.html /tmp/test.pdf # 1. render
python3 - <<'PY' # 2. pages -> PNG
import fitz; d=fitz.open("/tmp/test.pdf")
[p.get_pixmap(matrix=fitz.Matrix(2,2)).save(f"/tmp/t{i}.png") for i,p in enumerate(d)]
PY
Open the PNGs and confirm: cover wordmark colours, terracotta badges, pill colours,
sage callout, gantt bars, hairline tables. render.py needs Google Chrome (or
Chromium/Edge) installed; the PNG step needs pip install pymupdf.
npx claudepluginhub rushyop/rushy-claude-plugins --plugin vizuaraGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Resolves in-progress git merge or rebase conflicts by analyzing history, understanding intent, and preserving both changes where possible. Runs automated checks after resolution.