Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when the user needs responsive HTML email that renders correctly in every major client: table-based structure, inline CSS, 600px max width, dark mode handling, per-client quirks for Gmail, Apple Mail, Outlook and Yahoo, and a pre-send test checklist. Colors and fonts come from the brand guideline. Trigger on 'HTML email', 'code an email', 'email template', 'responsive email', 'email broadcast HTML', or 'why does my email break in Outlook'.
.claude/skills/minhnv0807-49-html-email-template-global/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 134% | 0% |
| case-04 | ✓→✗ | ▼ Worse | 102% | 0% |
| case-20 | ✓→✗ | ▼ Worse | 257% | 0% |
Email HTML is not web HTML: it needs table layout, inline CSS, and avoidance of everything clients do not support. The bar is simple — it looks right in Gmail, Apple Mail, Outlook, and Yahoo, and it reads on a 375px phone. No exceptions. Content and sequence come from 14-email-marketing-global; this skill handles the code.
Read the brand guideline (46-brand-guideline-global) and the email content from 14-email-marketing-global if available. If information is missing, ask up to 4 questions:
<style> blocks; keep only media queries and dark-mode rules in <style>, and inline everything else.img needs alt text plus width and height attributes so a blocked-image inbox still reads correctly.| Layout | Use for | |--------|---------| | Single column | Broadcast, nurture — most readable, fewest rendering bugs | | Two column (image + text) | Offer emails with a product image | | Multi-section newsletter | Digest, updates — one table block per section |
Container: 600px desktop / 100% mobile
Outer background: light neutral (e.g. #F4F4F4)
Body background: [background color] (usually white)
Font: '[body font]', Arial, Helvetica, sans-serif
Body font-size: 16px / line-height: 1.6
Mobile breakpoint: max-width 480pxDesign tokens come from the brand guideline:
display:inline-block, no underline. Outlook Windows will not draw border-radius — accept the square fallback, and never use an image as the button.ul for safer rendering, optional secondary CTA.css@media only screen and (max-width: 480px) { /* container: 100% width */ /* body font: 15px */ /* CTA: full width, centered */ /* padding: 24px 20px */ /* images: 100% width */ }
Dark mode:
<meta name="color-scheme" content="light dark"> and <meta name="supported-color-schemes" content="light dark">.@media (prefers-color-scheme: dark) is only partially supported: Apple Mail honors it well; Gmail typically applies its own color inversion and ignores the media query; Outlook may force a full invert.14-email-marketing-global| ESP | First-name merge tag | Unsubscribe | |-----|----------------------|-------------| | Klaviyo | {{ first_name\|default:"there" }} | {% unsubscribe %} | | Mailchimp | *\|FNAME\|* | *\|UNSUB\|* | | HubSpot | {{ contact.firstname }} | injected automatically | | Brevo | {{ contact.FIRSTNAME }} | {{ unsubscribe }} |
Always confirm the exact syntax in the sending platform before the final send — an unrendered merge tag in a live send is a visible error.
| Client | Rendering behavior | What to do about it | |--------|--------------------|---------------------| | Gmail (web and app) | May strip <style> in some contexts; applies its own dark-mode inversion | Inline everything; the single-column layout must read even if media queries are dropped | | Apple Mail (macOS/iOS) | WebKit — the most capable renderer | Supports media queries and prefers-color-scheme properly; use it as the dark-mode reference | | Outlook desktop (Windows) | Word rendering engine | Tables only; no border-radius, unreliable background images (use solid colors); test separately | | Outlook.com / new Outlook | Chromium-based, much better than desktop | Still avoid flex and grid for consistency with desktop | | Outlook mobile (iOS/Android) | Reasonable modern rendering | Verify CTA tap targets at 44px minimum height | | Yahoo Mail / AOL | Decent support, varies by build | Send a real test to a live account | | Mobile in general | 375px screens | Body font 15px or larger, CTA at least 44px tall for thumbs |
Apple Mail Privacy Protection pre-fetches tracking pixels, which inflates reported open rates for any list with a meaningful Apple Mail share — and Gmail image proxying adds noise of its own. Treat open rate as a directional signal only. Judge template and campaign performance on click-through rate, click-to-open rate, and conversions. Global email medians for context: open 22-27%, CTR 2.5-3.5%, CTOR 10-14%, unsubscribe below 0.5%.
14-email-marketing-global)14-email-marketing-global: strategy, sequence, content, and subject lines — written before the code.46-brand-guideline-global: colors, fonts, and logo for the email design tokens.47-design-review-global: review the email before sending (brand, readability, CTA, platform fit).12-landing-page-brief-global: the CTA usually lands on a landing page — keep the message consistent across both.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 32,886 | 38,998 | +19% | 1 | 1 | 0% | 6,240 | 10,032 | +61% | 0 | 0 | — |
case-02 | fail→fail | 36,883 | 36,443 | -1% | 1 | 1 | 0% | 8,256 | 10,598 | +28% | 0 | 0 | — |
case-03 | fail→pass | 36,794 | 38,046 | +3% | 1 | 1 | 0% | 8,245 | 9,728 | +18% | 0 | 0 | — |
case-04 | pass→fail | 10,523 | 8,912 | -15% | 1 | 1 | 0% | 2,038 | 4,126 | +102% | 0 | 0 | — |
case-05 | fail→pass | 10,751 | 12,772 | +19% | 1 | 1 | 0% | 2,000 | 4,670 | +134% | 0 | 0 | — |
case-06 | pass→pass | 13,223 | 11,762 | -11% | 1 | 1 | 0% | 2,302 | 4,596 | +100% | 0 | 0 | — |
case-07 | pass→pass | 11,630 | 8,404 | -28% | 1 | 1 | 0% | 2,054 | 3,866 | +88% | 0 | 0 | — |
case-08 | pass→pass | 13,886 | 10,668 | -23% | 1 | 1 | 0% | 2,272 | 4,003 | +76% | 0 | 0 | — |
case-09 | pass→pass | 12,048 | 13,697 | +14% | 1 | 1 | 0% | 2,138 | 4,650 | +117% | 0 | 0 | — |
case-10 | pass→pass | 12,677 | 10,370 | -18% | 1 | 1 | 0% | 2,460 | 4,295 | +75% | 0 | 0 | — |
case-11 | pass→pass | 7,014 | 5,636 | -20% | 1 | 1 | 0% | 1,230 | 3,285 | +167% | 0 | 0 | — |
case-12 | pass→pass | 10,919 | 9,790 | -10% | 1 | 1 | 0% | 1,908 | 4,120 | +116% | 0 | 0 | — |
case-13 | pass→pass | 13,188 | 12,767 | -3% | 1 | 1 | 0% | 2,136 | 4,499 | +111% | 0 | 0 | — |
case-14 | pass→pass | 9,780 | 8,535 | -13% | 1 | 1 | 0% | 1,556 | 3,944 | +153% | 0 | 0 | — |
case-15 | pass→pass | 12,025 | 10,373 | -14% | 1 | 1 | 0% | 2,004 | 4,111 | +105% | 0 | 0 | — |
case-16 | pass→pass | 9,829 | 13,515 | +38% | 1 | 1 | 0% | 1,547 | 4,969 | +221% | 0 | 0 | — |
case-17 | pass→pass | 4,797 | 3,728 | -22% | 1 | 1 | 0% | 850 | 2,813 | +231% | 0 | 0 | — |
case-18 | pass→pass | 10,009 | 9,585 | -4% | 1 | 1 | 0% | 1,863 | 4,188 | +125% | 0 | 0 | — |
case-19 | pass→pass | 14,119 | 12,696 | -10% | 1 | 1 | 0% | 2,512 | 4,633 | +84% | 0 | 0 | — |
case-20 | pass→fail | 15,113 | 34,183 | +126% | 1 | 1 | 0% | 2,702 | 9,659 | +257% | 0 | 0 | — |
case-21 | pass→pass | 30,063 | 29,493 | -2% | 1 | 1 | 0% | 7,119 | 9,031 | +27% | 0 | 0 | — |
case-22 | pass→pass | 14,136 | 18,116 | +28% | 1 | 1 | 0% | 2,785 | 5,825 | +109% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +5 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.