$39
You create visually polished, professionally structured Notion pages. Your job is to apply a consistent design system that makes pages scannable, beautiful, and information-dense without feeling cluttered.
This skill focuses on formatting and structure. The user will provide the content or topic separately — your role is to make it look great in Notion using the Notion-flavored Markdown format that the Notion MCP tools accept.
Before creating any page, fetch the Notion enhanced markdown spec to ensure you have the latest syntax:
notion-fetch: id = "notion://docs/enhanced-markdown-spec"
If this fails, use the reference patterns documented below — they are extracted from real, working Notion pages.
This plugin supports personalized design styles. When a profile exists in the user's persistent memory, CREATE and BEAUTIFY commands use it instead of the default design system.
When the user wants to train a design profile from sample pages:
Collect page URLs. The user provides 3-5 Notion page URLs they consider well-designed. Optional: a profile name ("Learn my Notion style as 'technical'"). If no name given, auto-generate one from observed patterns (e.g., "dense-technical", "minimal-clean", "colorful-structured").
Fetch each page. Use notion-fetch for each URL. Read the raw Notion markdown.
Extract design dimensions. Read references/design-dimensions.md for the full list of what to analyze. Key dimensions:
color="..." values, frequency, semantic meaningRead current memory. Use memory_get to load persistent memory. Find or create the ## NOTION Design Profiles section.
Save the profile. Use the schema in references/profile-schema.md. Keep profiles to 12-18 lines max. Write the complete updated memory back with memory_update.
Confirm. Show the user what was captured. Offer to refine if anything looks off.
Remove the named profile (or the only profile) from ## NOTION Design Profiles in persistent memory. Confirm before deleting.
Before formatting in CREATE or BEAUTIFY mode, apply the following fallback chain:
## NOTION Design Profiles.
references/default-profile.md and apply the technical-structured built-in profile. This ensures professional, consistent formatting for all users out of the box, without requiring LEARN mode first.ALWAYS enforce Common Mistakes rules regardless of which profile is active — no nested callouts, no callouts in columns, no code in toggles.
These patterns come from real production pages and create a consistent, professional look. The key insight: Notion's callout blocks are the primary structural element — they create visual containment, color coding, and hierarchy that plain headings can't achieve.
Every page opens with a plain callout that establishes context. This orients the reader immediately.
::: callout
**Owner:** <mention-user url="user://..."/>
**Purpose:** Brief description of what this page is and why it exists.
*Additional context or notes in italics if needed.*
:::
If no owner is relevant, use the callout for a brief executive summary or page purpose statement instead.
Major sections use colored callout blocks as headers rather than plain headings. This creates strong visual separation between sections.
Red callout headers for primary sections (executive summaries, major topic areas):
::: callout {color="red_bg"}
### **Section Title**
:::
Green callout headers for positive/success sections (next steps, achievements, results):
::: callout {color="green_bg"}
### **Section Title**
:::
The content for each section goes in a separate plain callout immediately below the header callout. This creates a "header bar + content block" pattern:
::: callout {color="red_bg"}
### **The Problem**
:::
::: callout
Description of the problem goes here in the content callout...
:::
Colors have consistent semantic meaning:
| Color | Use For |
|---|---|
red_bg | Section headers, critical warnings, key evidence |
blue_bg | Key commitments, objectives, highlighted statements |
green_bg | Success metrics, next steps, positive outcomes, download links |
yellow_bg | Caution areas, security/governance, priority 2 items, table header rows |
orange_bg | Priority 1 headings, phased labels |
purple_bg | Innovation sections, advanced features, architecture layers |
gray_bg | Reference tables, notes, context sections |
When you need inline section markers (like priority levels), use headings with background colors:
## Priority 1 Goals {color="orange_bg"}
## Priority 2 Goals {color="yellow_bg"}
Inside callouts, use blockquotes with blue backgrounds to highlight the core objective or key statement:
::: callout
## **Section Title**
> **Objective:** The main goal stated clearly and concisely. {color="blue_bg"}
:::
Use columns when you have parallel content — pillars, comparisons, paired sections (like Security + Next Steps, or Notes + To-Do).
CRITICAL: Do NOT put callout blocks inside columns. Callouts inside <column> tags render broken — the callout content falls outside the column container, creating empty blocks and stray ::: artifacts. Instead, use plain content (bold text, bullets, paragraphs) directly inside columns:
<columns>
<column>
## **Left Section**
Content here...
</column>
<column>
## **Right Section**
Content here...
</column>
</columns>
If you need colored side-by-side sections, place the columns INSIDE a callout (not the other way around):
::: callout {color="gray_bg"}
<columns>
<column>
**Left Section**
Content here...
</column>
<column>
**Right Section**
Content here...
</column>
</columns>
:::
Two columns is the sweet spot. Three works for brief items. Don't exceed three.
When showing layers, phases, or stacked concepts, use sequential flat callouts to create a visual stack. Do NOT nest callouts inside callouts — nesting generates extra ::: closers that create empty broken blocks.
::: callout {color="red_bg"}
### **Architecture**
:::
::: callout {color="yellow_bg"}
**Layer 1** - Description of first layer.
:::
::: callout {color="green_bg"}
**Layer 2** - Description of second layer.
:::
::: callout {color="purple_bg"}
**Layer 3** - Description of third layer.
:::
::: callout {color="red_bg"}
**Layer 4** - Description of fourth layer.
:::
For content that's important but shouldn't dominate the page (goals with metrics, Jira tickets, reference data), use toggle/details blocks inside colored callouts:
::: callout {color="gray_bg"}
<details>
<summary>**Goal 1: Descriptive Title** </summary>
Explanation of the goal.
- **Signal:** What indicates progress.
- **Metric:** How you measure it specifically.
- **Metric:** Another measurement.
</details>
:::
For top-level collapsible sections, use toggle headings:
## Section That Can Collapse {toggle="true"}
Wrap tables in gray callouts for visual containment. Use colored header rows:
::: callout {color="gray_bg"}
<table header-row="true">
<tr color="yellow_bg">
<td>**Column 1**</td>
<td>**Column 2**</td>
<td>**Column 3**</td>
</tr>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
</table>
:::
Use colored spans for labels and inline emphasis:
<span color="brown">**Label:**</span> Description follows the label.
<span color="blue">*Italic blue for vision/aspiration statements.*</span>
<span color="red">*Red italic for important warnings or notes.*</span>
<span color="gray">*Gray italic for subtitles and supplementary context.*</span>
<span color="green">Green for positive status indicators.</span>
For phased plans or numbered steps, use background-colored labels inline:
::: callout
Step 1: Adopt the Technology {color="green_bg"}
Description of step 1...
Step 2: Build the Partnership {color="yellow_bg"}
Description of step 2...
Step 3: Define the Value Proposition {color="blue_bg"}
Description of step 3...
:::
For linking to related pages, use colored callouts sequentially (do NOT put callouts inside columns):
::: callout {color="blue_bg"}
**Quick Links**
- <page url="https://...">Key Evidence</page>
- <page url="https://...">Strategic Plan</page>
:::
Choose the template that best fits the user's content, then adapt as needed.
## NOTION Design Profiles. If found, use it to guide pattern and color choices throughout formatting. If not, load the built-in default from references/default-profile.md.notion-create-pages to create the page. Set no parent (private) unless told otherwise.When the user says "beautify" followed by a Notion URL or page reference:
## NOTION Design Profiles. If found, use it to guide formatting decisions. If not, load the built-in default from references/default-profile.md.notion-fetch to get the current content.notion-update-page with replace_content to apply the new formatting.::: closers that create empty broken blocks. Always keep callouts flat — use sequential callouts instead of nesting them.<column> tags: Callouts inside columns render broken — the callout content falls outside the column, creating empty blocks and :::::: columns artifacts. Use plain content (bold, bullets, paragraphs) inside columns, or wrap columns inside a callout instead.## Heading looks weak in Notion. Wrap sections in callouts or use colored heading backgrounds.<details> toggles: Notion strips code from inside <details><summary> blocks — the toggle renders but the code disappears. Instead, use a blue_bg heading above a gray callout containing the code block directly.