mjml

MJML (Mailjet Markup Language) is a markup language designed to reduce the pain of coding responsive emails. It compiles to responsive HTML that works across email clients.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "mjml" with this command: npx skills add svycal/mjml-editor/svycal-mjml-editor-mjml

MJML Expert

MJML (Mailjet Markup Language) is a markup language designed to reduce the pain of coding responsive emails. It compiles to responsive HTML that works across email clients.

Document Structure

Every MJML document follows this hierarchy:

<mjml> <mj-head> <!-- Head components: styles, fonts, attributes, preview text --> </mj-head> <mj-body> <!-- Body components: sections, columns, content --> </mj-body> </mjml>

Component Hierarchy

MJML enforces a strict nesting structure:

mjml ├── mj-head │ ├── mj-attributes (define defaults and classes) │ ├── mj-style (CSS styles) │ ├── mj-font (external fonts) │ ├── mj-title (document title) │ ├── mj-preview (inbox preview text) │ └── mj-breakpoint (responsive breakpoint) │ └── mj-body ├── mj-wrapper (optional: wraps multiple sections) │ └── mj-section │ └── mj-section (rows) ├── mj-group (prevents column stacking on mobile) │ └── mj-column │ └── mj-column (responsive columns) ├── mj-text ├── mj-image ├── mj-button ├── mj-divider ├── mj-spacer ├── mj-social ├── mj-navbar ├── mj-table ├── mj-raw ├── mj-accordion ├── mj-carousel └── mj-hero

Critical rule: Content blocks (text, image, button, etc.) must always be inside mj-column . Columns must be inside mj-section or mj-group .

Column Sizing

Auto Sizing

By default, columns divide available width equally. Standard email width is 600px:

  • 2 columns = 300px each

  • 3 columns = 200px each

  • 4 columns = 150px each

Manual Sizing

Override with explicit width attribute:

<mj-section> <mj-column width="33%"><!-- Narrow --></mj-column> <mj-column width="67%"><!-- Wide --></mj-column> </mj-section>

Both pixel and percentage values are supported.

Common Attributes

Most components support these attributes:

Attribute Description Example

padding

Spacing inside element 10px 25px

background-color

Background color #ffffff

width

Element width 100% or 300px

align

Horizontal alignment left , center , right

vertical-align

Vertical alignment top , middle , bottom

font-family

Text font Arial, sans-serif

font-size

Text size 14px

color

Text color #333333

line-height

Line spacing 1.5 or 22px

Using Classes

Define reusable styles with mj-class :

<mj-head> <mj-attributes> <mj-class name="primary" background-color="#4A90D9" color="#ffffff" /> <mj-class name="heading" font-size="24px" font-weight="bold" /> </mj-attributes> </mj-head>

<mj-body> <mj-section> <mj-column> <mj-button mj-class="primary">Click me</mj-button> <mj-text mj-class="heading">Welcome</mj-text> </mj-column> </mj-section> </mj-body>

Background Images

Sections and wrappers support background images:

<mj-section background-url="https://example.com/bg.jpg" background-size="cover" background-repeat="no-repeat"> <mj-column> <mj-text color="#ffffff">Content over image</mj-text> </mj-column> </mj-section>

Full-Width Sections

By default, sections are constrained to 600px. Use full-width for edge-to-edge backgrounds:

<mj-section full-width="full-width" background-color="#f4f4f4"> <!-- Content still constrained, but background extends full width --> </mj-section>

Responsive Behavior

  • Columns automatically stack vertically on mobile (below breakpoint)

  • Use mj-group to prevent stacking for specific column groups

  • Default breakpoint is 480px; customize with mj-breakpoint

  • Images scale responsively by default

Reference Documentation

For complete component specifications with all attributes:

  • Body components: ${CLAUDE_SKILL_ROOT}/references/body-components.md

  • Head components: ${CLAUDE_SKILL_ROOT}/references/head-components.md

  • Layout patterns: ${CLAUDE_SKILL_ROOT}/references/patterns.md

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

changeset

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

obsidian-notes

Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.

Archived SourceRecently Updated
Coding

mcporter-cli

Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.

Archived SourceRecently Updated
Coding

github-tools

Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.

Archived SourceRecently Updated