Mira Astro documentation
Pages and blocks
Build any page from Mira's 24 blocks by copying snippets from the block library.
Every page in Mira is a list of blocks: a hero, a list of conditions, opening hours, a booking panel. You choose the blocks and their order in the page’s file, and change the words. There’s no page builder to learn and nothing to install.
Build a page
- Open the block library (or
/blocks/on your own preview). Every block and variant is shown live. - Click Copy snippet under the one you want.
- Paste it under
sections:in a page file and change the words.
---
title: Back pain
description: How we help with back pain.
sections:
- type: page-header
variant: simple
tone: mist
title: Help for back pain
art: condition-lower-back-pain
- type: treatments
variant: cards
items: [physio-assessment, manual-therapy, herbal-heat-therapy]
- type: booking
variant: band
title: Ready when you are
---
To make a new page, add a file to src/content/pages/en/. The file name becomes the address: back-pain.md is published at /back-pain/. Any text below the closing --- is shown after the blocks, in a reading column, which suits legal pages.
| Page setting | What it does |
|---|---|
title |
The page’s title in the browser tab and search results. |
description |
The summary search engines and social media show. |
image |
A share image for this page (a file name in src/assets/images/). |
noindex: true |
Keeps the page out of search engines, the sitemap and site search. |
palette |
clinical or holistic, to use the other colour preset on this page only. |
The blocks
| Block | Variants | What it’s for |
|---|---|---|
hero |
split, conditions, overlay, centered | The top of a page. conditions adds “What brings you in?” quick links; status: true adds “Open now”; contact: true adds Call and WhatsApp. |
page-header |
simple, image | Title, intro and breadcrumbs for inner pages. |
booking |
panel, band | Every way to book: online, phone, WhatsApp, email. |
conditions |
grid, list | Your conditions, all, by area, or picked with items. |
treatments |
cards, menu | Your treatments, all, by kind, or picked with items. |
body-map |
“Where does it hurt?” A figure with numbered points linking to pages. | |
pricing |
plans, table | Sessions, packages and price lists. |
hours |
table, compact | A clinic’s opening hours with “Open now”. |
locations |
cards, map | Your clinics, with directions and a map on click. |
team |
grid, compact | Therapists, all, by kind, by location, or picked with items. |
reviews |
grid, single | Patient reviews with stars and an overall rating. |
credentials |
badges, logos | Registrations, memberships and insurers. |
stats |
band, grid | Big numbers: years open, patients, rating. |
timeline |
visit, history | A first visit step by step, or your story by year. |
cards |
icons, tiles, steps | Short points, linked tiles or numbered steps. |
text |
narrow, split | Markdown: paragraphs, lists, links, headings, quotes. |
faq |
split, stacked | Questions that open one at a time, with FAQ data for Google. |
gallery |
mosaic, grid | Photos that open larger on click. The mosaic looks best with 5, 9 or 13. |
video |
wide, split | YouTube, Vimeo or your own file, loaded only on play. |
form |
split, card | Contact or appointment request, with fields you choose. |
posts |
grid, featured | Your latest blog posts. |
disclaimer |
note, panel | A short medical note, in the visitor’s language. |
search |
Site search. | |
cta |
band, split, card | One clear ask. |
The library shows every setting a block takes in its snippet. In a hero (split or conditions), page header (simple) or call to action (split), art: shows an illustration where image: would show a photo.
Background tones
Give any block a tone to change its background: default, mist, warm, sage, sky, sunken, brand or night. brand and night are dark in both light and dark mode. Two blocks in a row with the same tone read as one section.
Spacing and anchors
space: smallgives a block less room above and below;space: noneremoves it.id: priceslets you link straight to a block with/pricing/#prices.
Text formatting
Titles and short texts accept **bold**, *italic*, ==highlight== and [a link](/contact/). The text block and FAQ answers accept full Markdown.
If a text includes a comma inside a short { … } list, put it in quotes: { value: "12,000+", label: patients treated }. Mira stops the build and names the line if you forget.