Triggers on "create invoice", "invoice template", "factura", "generar factura". Branded invoice template builder with client info, line items, subtotal/tax/total, payment terms, and bank details placeholder. JM Labs dark brand HTML, bilingual ES/EN, print-optimized. Output: self-contained HTML invoice. [EXPLICIT]
Generates professional, print-ready invoices as self-contained HTML files using the JM Labs dark brand identity. Accepts client details, line items, tax configuration, and payment terms. Produces bilingual (ES/EN) output with automatic subtotal/tax/total calculation, structured bank details placeholder, and CSS print stylesheet for pixel-perfect PDF export.
cost-estimation or pricing-strategy instead).The invoice header contains:
[LOGO] div with brand colors, replaceable with base64 image).JML-YYYY-NNN based on current date.Each row contains:
| Column | Type | Notes |
|---|---|---|
| # | Auto-increment | Row number |
| Description | Text | Service or product description, bilingual if requested |
| Quantity | Number | Decimal-safe (e.g., 1.5 hours) |
| Unit Price | Currency | Formatted with thousands separator |
| Subtotal | Calculated | qty x unit_price, auto-computed |
The invoice follows the JM Labs dark brand system:
#0a0a0a (near-black) with #1a1a2e card surfaces.#e94560 (coral red) for headings, totals, and highlights.#eaeaea (light gray) for body, #ffffff for totals.'Inter', 'Segoe UI', system-ui, sans-serif.#1a1a2e / #16213e), no outer borders, subtle bottom borders on rows.@media print stylesheet flips to white background, dark text, hides non-essential elements, forces break-inside: avoid on tables.Every text element includes both languages:
Factura / Invoice, Subtotal / Subtotal, Total / Total.lang parameter controls primary language (displayed prominently) vs secondary (displayed in smaller text or parentheses).DD/MM/YYYY for ES, MM/DD/YYYY for EN.$1.500.000 for COP, $1,500.00 for USD.| Decision | Option A | Option B | Default |
|---|---|---|---|
| Output format | Single HTML file | HTML + separate CSS | Single HTML (portable) |
| Tax calculation | Auto-compute in HTML | Static values only | Auto-compute (JS-free CSS calc display) |
| Logo embedding | Base64 inline | External URL reference | Base64 placeholder |
| Multi-page support | CSS page-break rules | Single continuous page | CSS page-break |
| Currency | Single currency | Multi-currency per line | Single currency |
| Number formatting | Locale-aware JS | Pre-formatted strings | Pre-formatted strings (no JS dependency) |
[PENDING] placeholders for missing fields, add warning banner.Input: "Create an invoice for Acme Corp, 3 items: Discovery phase 40hrs at $150/hr,
Architecture design 20hrs at $200/hr, Documentation 10hrs at $100/hr.
Net 30, USD."
Output: Complete HTML invoice with:
- Invoice number JML-2026-001
- All 3 line items with calculated subtotals ($6000, $4000, $1000)
- Subtotal: $11,000.00
- Tax: configurable (0% for international, or IVA if Colombian)
- Total: $11,000.00
- Due date: 30 days from issue date
- Bank details placeholder section
- Print-ready CSS
Output that:
- Uses generic white template with no JM Labs branding
- Hardcodes tax rate without asking jurisdiction
- Embeds real bank account numbers in the template
- Requires external CSS file or CDN links (not self-contained)
- Outputs a markdown table instead of proper HTML
- Omits payment terms or due date calculation
Before delivering the invoice, verify:
#0a0a0a, #e94560, #1a1a2e.@media print stylesheet included with light-background override.JML-YYYY-NNN format.| File | Purpose |
|---|---|
references/brand-tokens.md | JM Labs color palette, typography, spacing system |
references/tax-config.md | Tax rates by jurisdiction (CO, US, EU defaults) |
references/invoice-templates.md | HTML skeleton and CSS patterns for invoice layout |
references/payment-terms.md | Standard payment term definitions and legal text |