Referenz

HeroML

Designs & views

A design is the block-based successor to a theme — a folder under designs/ with one template per view. The layout wraps all others; the outlet block marks where the current view appears.

designs/my-design/
  design.json      # name, description, design tokens
  layout.hml       # page frame (header/footer)
  home.hml         # home page
  single.hml       # single post
  page.hml         # static page
  archive.hml      # category archive
  404.hml
  style.css        # design base styles

The views

There is a template for each view. The layout frames all others; each view provides its own data.

ViewWhenAvailable data
layoutalways (frame)header/footer, outlet
homehome pageposts, pagination
singlesingle postpost, categories, body
pagestatic pagepage, body
archivecategoryheading, posts
404not found—

The outlet block

The layout defines the page frame; outlet marks where the current view appears:

site-header
outlet
site-footer

Design tokens

In design.json (or in the admin), colours, fonts and spacing can be overridden as CSS variables — layered over the base tokens:

{
  "name": "My design",
  "tokens": { "primary": "#0d9488", "font-display": "Georgia, serif" }
}

Editing in the admin

Under Admin → Design you can switch the rendering engine (themes ↔ design blocks), activate a design, edit each template live as HeroML (with preview) and unlock licensed block packs. Changes take effect immediately.

Writing posts in HeroML

Individual posts and pages can be written directly in HeroML, too. In the editor, the format dropdown switches between HeroML, Markdown, HTML and the visual editor. In HeroML mode, the “Insert block” button inserts ready-made blocks — grouped by category, media included — at the cursor, with a live preview. For image, gallery, video and audio blocks the media library opens to pick the file directly (as it does for the featured image). The preview can be toggled to code only or preview. This is how whole landing pages are built from blocks, which the post-body block renders in place.