How to Add Headings in Notion (# Space)
Windows: Type # then Space (## for H2, ### for H3)
Mac: Type # then Space
Typing one, two, or three hash (#) symbols followed by a space at the start of an empty line converts that line into a Heading 1, Heading 2, or Heading 3 block respectively — a direct borrow from Markdown's own heading syntax that will feel immediately familiar to anyone who's written Markdown before.
**The collapsible side effect**: Every heading block in Notion is also a collapse point by default. Converting a line into any heading level adds a small toggle arrow beside it that, when clicked, hides all content nested beneath that heading until the current next heading of the same or higher level. This surprises people who expect a heading conversion to be a purely visual size change — it also affects the page's structural outline, and any table-of-contents block on the page reflects and links to these same heading levels.
**Three distinct heading levels**: Heading 1 (single #) is the largest and typically used for major page sections, Heading 2 (##) for subsections within those, and Heading 3 (###) for a further level of detail beneath that — Notion doesn't support a fourth typed heading level, so anything needing more granularity than H3 typically switches to bold paragraph text or a toggle list instead.
**Alternative methods**: The slash command (/h1, /h2, or /h3, or simply /heading followed by scrolling to the level you want) achieves the same block type without needing to remember the exact number of hash symbols, useful if you're not confident recalling which count maps to which level.
**Related shortcuts**: The same typed hash-space pattern is unique to headings among Notion's block-conversion shortcuts — bullets use a hyphen, to-dos use empty brackets, and toggles use a right-angle bracket, so mixing up the trigger character for a different block type is a common early mistake.
**Using headings for page structure**: Because every heading doubles as a collapse point and populates any table-of-contents block automatically, building a long page (documentation, meeting notes spanning several topics, a wiki-style reference page) around a deliberate heading hierarchy pays off considerably — readers can collapse sections they don't currently need and jump via the table of contents, neither of which works nearly as well on a page that's just a flat wall of undifferentiated paragraph text.
**Mistake to avoid**: converting a heading purely to get larger, bolder-looking text (rather than because the content genuinely represents a new section) can leave a page with a confusing structural outline — since every heading also feeds a table of contents and the page's overall hierarchy, using heading levels purely for visual emphasis rather than genuine structure makes any auto-generated table of contents on that page less useful and can also unintentionally make unrelated content collapsible when you didn't intend it to be.
**Recovering from an accidental heading conversion**: pressing Ctrl+Z (Cmd+Z) immediately after the hash-space conversion triggers reverts just that automatic transformation, restoring the plain typed characters, without touching any other edits made earlier in your session.
**Headings inside a database record**: a page opened from a database row supports the exact same heading shortcuts and collapsible behavior as any standalone page, since it's a genuine page under the hood — using headings to structure the freeform content section of a database record (beneath its properties) works identically to structuring any other page, letting a single task record's detail page have its own organized sections for notes, sub-tasks, and related links, each collapsible independently.