Theme Overview¶
theRestart is a WordPress block theme — full-site editing (FSE) — that
provides the public site chrome, the account/auth pages, and the
start-a-registry flow. It is the layer the user actually sees; the plugin
provides the registry data and the Lambda provides item data.
At a glance¶
| Slug | theRestart |
| Template engine | WordPress block theme (FSE, theme.json v3) |
| Version | 1.0.1 |
| PHP minimum | 8.2 |
Layout¶
theme/
├── style.css # Theme header (Name, Version, ...)
├── theme.json # Color palette, font sizes, spacing scale
├── functions.php # Shortcodes, enqueues, AJAX handlers
├── templates/ # FSE templates (HTML)
│ ├── front-page.html
│ ├── single-restart-registry.html
│ ├── archive-restart-registry.html
│ ├── page-login.html
│ ├── page-register.html
│ ├── page-my-account.html
│ ├── page-my-registries.html
│ ├── page-start-a-registry.html
│ └── ...
├── parts/ # Reusable template parts
│ ├── header.html
│ ├── footer.html
│ └── post-meta.html
├── patterns/ # PHP-defined block patterns
│ ├── call-to-action.php
│ ├── faq-content.php
│ ├── footer-default.php
│ └── ...
└── assets/
├── js/
│ ├── auth.js # Register form + profile edit
│ ├── start-registry.js # Create-registry form (talks to Lambda)
│ └── contact-modal.js # Site-wide contact modal
├── *.png, *.svg, *.jpg # Brand assets
└── copy/ # Long-form copy snippets
Design system (theme.json)¶
Color palette¶
| Slug | Hex | Where it shows up |
|---|---|---|
primary |
#47b4b0 |
Buttons, accents — a calm teal |
dark |
#193540 |
Body text, headings on light backgrounds |
accent |
#ebd060 |
Highlight color (CTAs, badges) |
mid |
#8a9ea0 |
Muted text |
mint |
#9fd4b3 |
Page background — soft mint green |
green |
#8ad2a0 |
Secondary accent |
base |
#ffffff |
Card surfaces, button text |
color.custom = false — only the palette colors are exposed in the editor,
keeping content authors on-brand.
Typography¶
Three font families, all loaded from Google Fonts:
| Family | Slug | Used for |
|---|---|---|
| Libre Caslon Display | libre-caslon-display |
h1 headlines |
| Libre Caslon Text | libre-caslon-text |
Body |
| Montserrat | montserrat |
h2–h4, buttons |
Loaded via wp_enqueue_style('therestart-fonts', $fonts_url, [], null) in
functions.php. The URL is the Google Fonts CSS endpoint:
https://fonts.googleapis.com/css2?family=Libre+Caslon+Display&family=Libre+Caslon+Text:ital,wght@0,400;0,700;1,400&family=Montserrat:ital,wght@0,400;0,500;0,700;0,900;1,400;1,500;1,700;1,900&display=swap
Privacy-friendly proxy
For production, consider routing the fonts through a privacy-friendly
proxy like Bunny Fonts (fonts.bunny.net). The CSS URL is a single
wp_enqueue_style call so the swap is one-line — point $fonts_url at
the proxy.
Layout¶
contentSize: 780px, wideSize: 1200px. Spacing scale uses clamp()-based
values from x-small to x-large so spacing scales smoothly between mobile
and desktop without media queries.
Custom templates¶
The theme ships templates for the FSE template hierarchy:
| Template | Purpose |
|---|---|
front-page.html |
Home page (hero + features + CTA) |
single-restart-registry.html |
Single registry view (renders [restart_registry]) |
archive-restart-registry.html |
Registry archive (when public) |
page-login.html |
Login page (renders [restart_login_form]) |
page-register.html |
Register page (renders [restart_register_form]) |
page-my-account.html |
Account management (renders [restart_my_account]) |
page-my-registries.html |
List user's registries (renders [restart_my_registries]) |
page-start-a-registry.html |
Create flow (renders [restart_start_registry]) |
category-articles.html, category-favorites.html, category-gifts.html |
Blog categories |
single.html, single-category-* |
Single posts |
page.html, index.html, 404.html |
Standard fallbacks |
Patterns¶
patterns/ contains PHP-defined block patterns that can be inserted in the
editor:
call-to-action.php— The recurring "start your registry" CTAfaq-content.php— Accordion FAQ contentfooter-default.php— Default site footerhidden-*.php— Hidden patterns used as building blocks for templates (404 layout, comments, headings, no-results)post-meta.php— Post metadata (date + categories)
Where the theme talks to the rest of the system¶
- The plugin: by including the plugin's shortcodes inside FSE templates
(e.g.
[restart_registry]onsingle-restart-registry.html). - The Lambda: via
assets/js/start-registry.js, which posts directly to the Lambda using a per-user application password localized into the page. See JavaScript.