Skip to content
New: Customize your theme with an AI assistant. Read the guide

Glossary

Plain-language meanings of the words used in these docs.

Theme Words

WordWhat it means
AstroThe tool that turns Margo’s files into a website. You don’t need to learn it to edit content
Tailwind CSSThe styling system. Classes like text-ink or mt-8 in components set colors and spacing
Static siteA website made of ready-made files, with no database or server code to run, so it is simple to host
Node.jsThe program that runs Astro on your computer
npmComes with Node.js. Installs the theme’s tools (npm ci or npm install) and runs its commands (npm run dev)
TerminalA window where you type commands. In VS Code: Terminal → New Terminal
Dev serverThe local copy of your site at http://localhost:4321/ that updates when you save. Started with npm run dev
BuildTurning the files into the finished website in the dist/ folder, with npm run build
DeployPutting the built site on the internet, on a host such as Netlify, Vercel, or Cloudflare Pages
RouteA file in src/pages/ that becomes a page and decides which sections it shows
SectionOne full-width block of a page (hero, projects, FAQ). A component plus a content file
ComponentA .astro file that draws part of the page. You rarely need to edit these
Content fileA .md or .mdx file in src/content/ that holds text and options
MarkdownA simple way to format text: **bold**, ## heading, - list item
MDXMarkdown that can also use components (shortcodes) such as <Notice> or <ImageList>
ShortcodeA ready-made component you can place inside an .mdx file. /components/ on your local site shows them all
FrontmatterThe settings block between two --- lines at the top of a content file, written in YAML
YAMLThe key: value format used in frontmatter. Indentation matters
TOMLThe key = value format of config.toml, grouped under [tables]
JSONThe "key": "value" format of the menu, language, font, social, and translation files
CollectionA folder of similar entries: projects, services, team members, journal posts
EntryOne file in a collection, which usually becomes one page
SlugThe part of the URL that names a page: ceramic-forms in /projects/ceramic-forms/. Comes from the file name, or customSlug
IdThe file name of an entry without .md, such as ceramic-forms. Other files use it to point to that entry, for example the hero cards list
Named blockA section’s settings written inside a page’s frontmatter, such as heroSection:, to change that section on that page only
LayoutOne of the looks a section can have, chosen with options.layout. /elements/ previews them
DraftA page with draft: true. It shows on the dev server but is not built
i18nShort for “internationalization”: the multi-language setup
RTLRight to left: the reading direction of languages such as Arabic. Margo’s Arabic pages are mirrored
SchemaThe list of fields a content file may have. npm run astro-check and the build report mistakes in files that have one. The files in sections/, contact/, faq/, and pricing/ have none, so check those pages in the browser
LucideThe free icon set Margo uses. Any name from lucide.dev/icons works, for example "PenTool" or "Camera"
Dark modeThe dark color scheme. Visitors switch with the light/dark button; colorMode in [settings] sets what they see first
Open Graph imageThe preview picture shown when a link is shared on social media or in chat apps. Margo can draw one for each page
Structured dataHidden JSON-LD in each page that tells search engines who runs the site and what each page is about
SitemapA list of every page, for search engines (/sitemap-index.xml)
llms.txtA proposed format: a Markdown map of your site that AI assistants can read
GitA tool that saves versions of your project, so you can undo any change
CommitOne saved version in git
DiffA view of exactly what changed in a file: removed lines and added lines

Margo Words

WordWhat it means
ProjectOne piece of work in src/content/projects/, with its own page under /projects/. A project can be a case study or a photo series
Case studyA project page that tells the story of one job: a facts strip (client, year, role, services), results, a client quote, and image and text blocks. The default template
Split caseA project page with the facts kept beside the images as you scroll. The split template
Photo seriesA set of photographs shown as a grid that opens in a full-screen viewer (a lightbox). The gallery template
TemplateThe look of a project page, set with options.layout in the project file: default, gallery, or split
ArchiveThe /archive/ page: every project in one list
JournalMargo’s blog, at /blog/. Posts are in src/content/blog/, and their authors in src/content/author/
Page headerThe title area at the top of an inner page, set with the pageHeader block of that page
Two-tone headingA section title in two lines, split by \n in the text. Both lines share the text color until you give the first line its own color in src/styles/theme.css (--color-tone-1). A word in *stars* is set in the italic accent font
Header layoutThe look of the site header: pill, bar, or overlay ([settings.layout] header, or headerLayout on one page)
Footer layoutThe look of the footer: wordmark, columns, or email ([settings.layout] footer, or footerLayout on one page)
Contact dockA small bar at the bottom of the screen with Copy email and Book a call buttons ([settings.contactDock])
Availability pillThe small label with a green dot, such as “Taking two new projects in November”, in the hero and other sections
AuroraThe soft color fields behind every page (aurora in [settings.layout])
FrameThe thin ruled lines at the edges of the content and the tops of sections (frame in [settings.layout])
Theme creditOne small line in every footer layout and at the end of llms.txt, editable in config.toml ([settings.themeCredit])
Layout switcherA floating Change layout button for the theme’s demo. Off by default ([settings.layoutSwitcher] enable = false); keep it off on your site
Elements page/elements/: a page that shows every layout of the sections that have more than one
Type something to search...