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

openclaw-version-monitor

监控 OpenClaw GitHub 版本更新,获取最新版本发布说明,翻译成中文, 并推送到 Telegram 和 Feishu。用于:(1) 定时检查版本更新 (2) 推送版本更新通知 (3) 生成中文版发布说明

Archived SourceRecently Updated
Coding

ask-claude

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Archived SourceRecently Updated
Coding

ai-dating

This skill enables dating and matchmaking workflows. Use it when a user asks to make friends, find a partner, run matchmaking, or provide dating preferences/profile updates. The skill should execute `dating-cli` commands to complete profile setup, task creation/update, match checking, contact reveal, and review.

Archived SourceRecently Updated