Lightning Fast
Optimized for performance with sub-second load times.
Nothing matches that filter.
Studio Nope Official is a HubSpot CMS theme built as a design system. One set of tokens - colour, type, spacing, radius, shadow - is defined once in theme settings and consumed by every template and by every module in the theme. Change the accent colour and the buttons, links, icon washes and highlighted pricing card all move together.
This page is the reference for that system. It is not a manual of screenshots: every module below is rendered live, on this page, in each of the variations a buyer chooses between - full width and contained, square and rounded, light ground and dark, with media and without. Under each preview is the HubL that produced it, and under that the complete field list read straight out of the module source.
Browser support follows HubSpot: current versions of Chrome, Edge, Firefox and Safari. Scroll reveals use IntersectionObserver and degrade to visible content where it is absent.
Back to tophs upload studio-nope-theme studio-nope-theme.A preset is a complete set of token values. Switching preset restyles the whole site in one publish - it is not a colour swatch, it changes type, radius, shadow and spacing as well.
| Preset | Type | Ground | Accent | Character |
|---|---|---|---|---|
| Light | Geist | White | Near black | Tight radii, hairline borders, almost no shadow. |
| Dark | Inter | Charcoal | Off white | Elevation by glow rather than drop shadow. |
| Midnight | Inter | White | Blue | Corporate. Soft shadows, medium radii. |
| Warm | Playfair Display and Source Sans 3 | Cream | Terracotta | Editorial. Serif headings, generous spacing. |
| Forest | DM Sans | Off white | Teal | Softest of the six. Larger radii, gentle shadows. |
| Custom | Your choice | Your choice | Your choice | Every token below becomes an individual setting. |
Every colour in the theme resolves to one of these custom properties. Modules never hardcode a hex value - a field either picks a token by name or writes a custom value into one. The swatches below are painted with the live variable, and the value beside each one is read out of the page at runtime, so this table is always current.
theme or custom. Theme
means --color-cards-bg; custom writes a per-module value and stops
following the preset.Two families - a heading face and a body face - plus a monospace face for code. Each heading level has its own size, weight, line height and letter spacing, set per level in theme settings rather than derived from a ratio, so a preset can break the scale where it needs to.
The quick brown fox jumps over the lazy dog. Body copy sets the reading measure for every module that carries a paragraph.
The quick brown fox jumps over the lazy dog.
| Token | Live value | Used by |
|---|---|---|
--font-family-heading | Every heading tag and module heading field | |
--font-family-body | Body copy, buttons, form labels | |
--font-family-mono | Inline code and code blocks | |
--font-size-display | Hero Heading Size display | |
--font-size-h1 | h1 | |
--font-size-h2 | h2 | |
--font-size-h3 | h3 | |
--font-size-body | Paragraphs | |
--font-size-sm | Captions, badges, table cells | |
--font-size-xs | Eyebrows, chips | |
--line-height-tight | Headings | |
--line-height-normal | Body | |
--line-height-relaxed | Long-form article bodies | |
--letter-spacing-tight | Large headings | |
--letter-spacing-wide | Eyebrows and uppercase labels |
One nine-step spacing ramp drives every gap, padding and margin choice in the theme. Module fields never take pixels for spacing - they take a step on this ramp, so a preset can retune the whole site density in one place.
Six semantic aliases sit on top of the ramp so a section can ask for the right rhythm
rather than the right number: --space-section, --space-module,
--space-component, --space-element, --space-tight
and --space-micro.
Every module that offers a Border Radius field maps none, sm, md, lg, xl
onto these. That is why the same module looks square on the Light preset and soft on
Forest without any per-page change.
Five button styles are defined once in theme settings and used by every module that has a button field - heroes, CTA banners, pricing cards, resource cards, navigation. A button in a hero and a button in a table are the same object.
Each style carries its own background, text colour, border, radius and hover pair, and a small and large padding set. Form inputs share the radius and border tokens, so a field next to a button lines up without any per-page correction.
Icons are a theme-level choice, not a per-module one. Settings, then Icon Fonts, then
Icon Font Library. Nine libraries are wired into the layouts, and the loader in
templates/layouts/base.html pulls only the one you pick.
| Library | Loaded from | Notes |
|---|---|---|
| Material Symbols (default) | Google Fonts | Three optical styles - outlined, rounded, sharp - plus fill, weight, grade and optical size sliders in theme settings. |
| Font Awesome 6 | cdnjs | Free set only. |
| Phosphor | unpkg | Outline and fill are two separate faces; both are loaded. |
| Lucide | unpkg, as script | Rendered as inline SVG after load. |
| Heroicons | none | Inline SVG from the icon partial - no network request. |
| Bootstrap Icons | jsDelivr | |
| Remix Icon | jsDelivr | |
| Tabler | jsDelivr | |
| HugeIcons | official CDN | Free stroke face only; solid variants fall back to stroke. |
Start a page from the template closest to what you need - each one is a section layout of the modules below, already wired up, in a drag and drop area you can rearrange.
| Group | Templates |
|---|---|
| Website pages | Homepage and two alternates, About, Services and Service detail, Product, Features, Pricing, Portfolio, Case study detail, Team, Testimonials, Contact, Appointment, Demo, Partners, Integrations, Comparison, Resources, Events, Press, Jobs and Job detail, Course, Changelog, FAQs, Legal, Pillar, Video library, Documentation, Theme demo. |
| Landing pages | Three conversion layouts, Ebook, Free trial, Waitlist, Webinar. These extend the landing page layout, which drops the site navigation. |
| Blog | Blog listing and Blog post. |
| System | 404, 500, Search results, Password prompt, Subscription preferences, Subscription confirmation, Backup unsubscribe. |
| Layouts | Base, Landing page base, Docs. Every template extends one of these; the head, the icon loader and the token stylesheet live there. |
Every module in the theme is rendered live below, in the variations a buyer chooses between, with the HubL that produced it and the complete field list read out of the module source.
The first screen of a page: headline, supporting copy, calls to action, and optional media or a form.
The main hero. One module covers seven layouts - text only, text with buttons, text with a form, text beside an image, text beside a video, and the two combinations of media plus form - in one or two columns, on a solid, gradient, image or video background. Set Hero Mode to Slider and the same content model repeats as slides.
{% module 'd01_banner_1'
path='../../modules/Banner.module',
single={
'social_links': {
'enable': False
},
'content': {
'eyebrow_text': 'Design system',
'heading_text': 'Every page starts from the same tokens.',
'heading_tag': 'h3',
'subheading_text': 'Change a colour in theme settings and the whole site moves with it.'
},
'cta': {
'primary_label': 'Browse modules',
'primary_url': {
'url': {
'href': '#modules',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'primary_button_style': 'primary',
'primary_action': 'link',
'secondary_enable': True,
'secondary_label': 'Read the tokens',
'secondary_url': {
'url': {
'href': '#foundations-colour',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'cta_layout': 'row',
'cta_alignment': 'center'
},
'layout': {
'layout_type': 'text_buttons',
'layout_columns': 'single_column',
'text_alignment': 'center',
'vertical_alignment': 'middle',
'height': 'auto',
'full_width': False
},
'media_image': {
'enable': False
},
'media_video': {
'enable': False
},
'form': {
'enable': False
},
'overlay': {
'enable': False
},
'social_proof': {
'enable': False
},
'features': {
'enable': False
},
'background': {
'type': 'none'
},
'style': {
'color_scheme': 'light',
'heading_size_variant': 'h2',
'padding_top': 'lg',
'padding_bottom': 'lg'
}
}
%}{% module 'd01_banner_2'
path='../../modules/Banner.module',
single={
'social_links': {
'enable': False
},
'content': {
'eyebrow_text': 'Two column',
'heading_text': 'Copy on the left, artwork on the right.',
'heading_tag': 'h3',
'subheading_text': 'Column Order flips the pair on desktop without touching the content.'
},
'cta': {
'primary_label': 'See the fields',
'primary_url': {
'url': {
'href': '#modules',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'primary_button_style': 'primary',
'secondary_enable': False,
'cta_layout': 'row',
'cta_alignment': 'left'
},
'layout': {
'layout_type': 'text_image',
'layout_columns': 'two_column',
'text_alignment': 'left',
'vertical_alignment': 'middle',
'column_order_desktop': 'text_left',
'column_order_mobile': 'text_first',
'height': 'auto',
'full_width': False
},
'media_image': {
'enable': True,
'file': {
'src': get_asset_url("../../images/templates/helper-img-1.jpg"),
'alt': 'Hero artwork',
'size_type': 'auto',
'loading': 'lazy'
},
'position': 'right',
'fit': 'cover'
},
'media_video': {
'enable': False
},
'form': {
'enable': False
},
'overlay': {
'enable': False
},
'social_proof': {
'enable': False
},
'features': {
'enable': False
},
'background': {
'type': 'none'
},
'style': {
'color_scheme': 'light',
'heading_size_variant': 'h2',
'padding_top': 'lg',
'padding_bottom': 'lg'
}
}
%}{% module 'd01_banner_3'
path='../../modules/Banner.module',
single={
'social_links': {
'enable': False
},
'content': {
'eyebrow_text': 'On an image',
'heading_text': 'A scrim keeps the headline readable.',
'heading_tag': 'h3',
'subheading_text': 'Overlay opacity is a percentage, so you can tune it per page.'
},
'cta': {
'primary_label': 'Get started',
'primary_url': {
'url': {
'href': '#getting-started',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'primary_button_style': 'primary',
'secondary_enable': False,
'cta_layout': 'row',
'cta_alignment': 'center'
},
'layout': {
'layout_type': 'text_buttons',
'layout_columns': 'single_column',
'text_alignment': 'center',
'vertical_alignment': 'middle',
'height': 'short',
'full_width': True
},
'media_image': {
'enable': False
},
'media_video': {
'enable': False
},
'form': {
'enable': False
},
'social_proof': {
'enable': False
},
'features': {
'enable': False
},
'background': {
'type': 'image',
'image_file': {
'src': get_asset_url("../../images/templates/helper-img-6.jpg"),
'alt': 'Background',
'size_type': 'auto',
'loading': 'lazy'
},
'image_focal_point': 'center',
'image_fit': 'cover'
},
'overlay': {
'enable': True,
'type': 'solid',
'color': {
'color': '#0B0B0F',
'opacity': 100
},
'opacity': 62
},
'style': {
'color_scheme': 'dark',
'heading_size_variant': 'h2',
'padding_top': 'xl',
'padding_bottom': 'xl'
}
}
%}{% module 'd01_banner_4'
path='../../modules/Banner.module',
single={
'social_links': {
'enable': False
},
'content': {
'eyebrow_text': 'Lead capture',
'heading_text': 'Put the form in the hero.',
'heading_tag': 'h3',
'subheading_text': 'Three form types ship with the module: email capture, a short lead form, or any HubSpot form.'
},
'cta': {
'primary_label': '',
'secondary_enable': False
},
'layout': {
'layout_type': 'text_form',
'layout_columns': 'two_column',
'text_alignment': 'left',
'vertical_alignment': 'middle',
'height': 'auto',
'full_width': False
},
'media_image': {
'enable': False
},
'media_video': {
'enable': False
},
'form': {
'enable': True,
'position': 'media_column',
'form_type': 'email_capture',
'title': 'Get the changelog',
'description': 'One mail per release.',
'cta_label': 'Subscribe'
},
'overlay': {
'enable': False
},
'social_proof': {
'enable': False
},
'features': {
'enable': False
},
'background': {
'type': 'none'
},
'style': {
'color_scheme': 'light',
'heading_size_variant': 'h2',
'padding_top': 'lg',
'padding_bottom': 'lg'
}
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
234 fields across 5 groups - the groups below are collapsed. Click a group to open it.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Hero Mode | hero_mode | Choice | single, slider | - |
slider_settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Autoplay | slider_settings.autoplay | Toggle | on | |
| Autoplay Speed (ms) | slider_settings.autoplay_speed | Number | 5000 | |
| Show Navigation Arrows | slider_settings.show_arrows | Toggle | on | |
| Show Pagination Dots | slider_settings.show_dots | Toggle | on | |
| Pause on Hover | slider_settings.pause_on_hover | Toggle | on | |
| Transition Effect | slider_settings.transition_effect | Choice | fade, slide | fade |
| Transition Speed (ms) | slider_settings.transition_speed | Number | 500 |
single| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Logo | single.logo | Group | - | |
| Show Logo in Hero | single.logo.show | Toggle | off | |
| Logo Image | single.logo.image | Image | - | |
| Logo Link | single.logo.link | Link | - | |
| Logo Max Height (px) | single.logo.max_height | Number | 40 | |
| Content | single.content | Group | - | |
| Eyebrow Text | single.content.eyebrow_text | Text | - | |
| Heading | single.content.heading_text | Text | Your Bold Statement Here | |
| Heading Tag | single.content.heading_tag | Choice | h1, h2, h3 | h1 |
| Subheading | single.content.subheading_text | Text | - | |
| Supporting Label | single.content.supporting_label | Text | - | |
| Body text | single.content.body_text | Rich text | - | |
| Headline measure (characters) | single.content.heading_measure | Number | - | |
| Feature List | single.features | Group | - | |
| Show feature list | single.features.enable | Toggle | off | |
| Columns | single.features.columns | Choice | one, two | one |
| Icon size (px) | single.features.icon_size | Number | 24 | |
| Icon color | single.features.icon_color | Colour | - | |
| Text color | single.features.text_color | Colour | - | |
| Items | single.features.items | Repeater | repeats | - |
| Icon | single.features.items.icon | Text | check_circle | |
| Text | single.features.items.text | Rich text | Feature line | |
| Icon color (override) | single.features.items.icon_color | Colour | - | |
| Call to Action | single.cta | Group | - | |
| Primary Button Label | single.cta.primary_label | Text | Get Started | |
| Primary Button URL | single.cta.primary_url | Link | - | |
| Open in New Tab | single.cta.primary_new_tab | Toggle | off | |
| Primary Button Action | single.cta.primary_action | Choice | link, scroll_to_anchor, open_modal | link |
| Primary Button Style | single.cta.primary_button_style | Choice | primary, secondary, tertiary | primary |
| Primary Button Icon | single.cta.primary_icon | Text | - | |
| Icon Position | single.cta.primary_icon_position | Choice | left, right | right |
| Scroll Target ID | single.cta.primary_scroll_target | Text | - | |
| Modal ID | single.cta.primary_modal_target | Text | - | |
| Show Secondary Button | single.cta.secondary_enable | Toggle | off | |
| Secondary Button Label | single.cta.secondary_label | Text | Learn More | |
| Secondary Button URL | single.cta.secondary_url | Link | - | |
| Open in New Tab | single.cta.secondary_new_tab | Toggle | off | |
| Secondary Button Action | single.cta.secondary_action | Choice | link, scroll_to_anchor, open_modal | link |
| Scroll Target ID | single.cta.secondary_scroll_target | Text | - | |
| Modal ID | single.cta.secondary_modal_target | Text | - | |
| Secondary Button Icon | single.cta.secondary_icon | Text | - | |
| Icon Position | single.cta.secondary_icon_position | Choice | left, right | right |
| Button Layout | single.cta.cta_layout | Choice | row, stacked | row |
| Button Alignment | single.cta.cta_alignment | Choice | left, center | left |
| Social Links | single.social_links | Group | - | |
| Show social links | single.social_links.enable | Toggle | off | |
| Label before the icons | single.social_links.text | Text | - | |
| Icon shape | single.social_links.shape | Choice | circle, rounded, square, bare | circle |
| Button size (px) | single.social_links.button_size | Number | 40 | |
| Icon size (px) | single.social_links.icon_size | Number | 18 | |
| Gap between icons (px) | single.social_links.gap | Number | 8 | |
| Links | single.social_links.items | Repeater | repeats | - |
| Platform | single.social_links.items.platform | Choice | linkedin, twitter, facebook, instagram, youtube, github, dribbble, behance, tiktok, threads, bluesky, mastodon, pinterest, medium, substack, slack, discord, telegram, whatsapp, spotify, twitch, vimeo, soundcloud, reddit, tumblr, flickr, email, rss | |
| URL | single.social_links.items.url | Link | - | |
| Accessible name | single.social_links.items.aria_text | Text | - | |
| Open in a new tab | single.social_links.items.new_tab | Toggle | on | |
| Social Proof | single.social_proof | Group | - | |
| Show Social Proof | single.social_proof.enable | Toggle | off | |
| Social Proof Text | single.social_proof.text | Text | Trusted by 500+ companies | |
| Logos | single.social_proof.logos | Repeater | repeats | - |
| Logo | single.social_proof.logos.logo_image | Image | - | |
| Logo Link (optional) | single.social_proof.logos.logo_link | Link | - | |
| Layout | single.layout | Group | - | |
| Layout Type | single.layout.layout_type | Choice | text_only, text_buttons, text_form, text_image, text_video, text_image_form, text_video_form | text_buttons |
| Columns | single.layout.layout_columns | Choice | single_column, two_column | single_column |
| Text Alignment | single.layout.text_alignment | Choice | left, center, right | center |
| Vertical Alignment | single.layout.vertical_alignment | Choice | top, middle, bottom | middle |
| Desktop Column Order | single.layout.column_order_desktop | Choice | text_left, media_left | text_left |
| Mobile Column Order | single.layout.column_order_mobile | Choice | text_first, media_first | text_first |
| Height | single.layout.height | Choice | auto, short, regular, tall, full_viewport | regular |
| Full-bleed band | single.layout.full_width | Toggle | on | |
| Gutter around the hero (px) | single.layout.shell_inset | Number | - | |
| Corner radius of the hero (px) | single.layout.shell_radius | Number | - | |
| Media - Image | single.media_image | Group | - | |
| Enable Image | single.media_image.enable | Toggle | off | |
| Image | single.media_image.file | Image | - | |
| Image Position | single.media_image.position | Choice | left, right, background | right |
| Image Fit | single.media_image.fit | Choice | cover, contain | cover |
| Enable Parallax | single.media_image.parallax_enable | Toggle | off | |
| Media - Video | single.media_video | Group | - | |
| Enable Video | single.media_video.enable | Toggle | off | |
| Video Mode | single.media_video.mode | Choice | side_media, background | side_media |
| Video Type | single.media_video.type | Choice | file, embed | file |
| Video File | single.media_video.file | File | - | |
| Video URL | single.media_video.url | Text | - | |
| Autoplay | single.media_video.autoplay | Toggle | on | |
| Loop | single.media_video.loop | Toggle | on | |
| Muted | single.media_video.muted | Toggle | on | |
| Show Controls | single.media_video.show_controls | Toggle | off | |
| Mobile Fallback Image | single.media_video.mobile_fallback_image | Image | - | |
| Background | single.background | Group | - | |
| Background Type | single.background.type | Choice | none, solid, gradient, image, carousel, video | solid |
| Background Color | single.background.solid_color | Colour | #0a0a0b | |
| Gradient Style | single.background.gradient_style | Choice | linear, radial | linear |
| Gradient Start Color | single.background.gradient_start_color | Colour | #0a0a0b | |
| Gradient End Color | single.background.gradient_end_color | Colour | #1a1a1a | |
| Gradient Direction | single.background.gradient_direction | Choice | to_top, to_bottom, to_left, to_right, to_top_right, to_bottom_right | to_bottom |
| Background Image | single.background.image_file | Image | - | |
| Focal Point | single.background.image_focal_point | Choice | center, top, bottom, left, right | center |
| Image Fit | single.background.image_fit | Choice | cover, contain | cover |
| Enable Parallax | single.background.image_parallax | Toggle | off | |
| Carousel Images | single.background.carousel_images | Repeater | repeats | - |
| Image | single.background.carousel_images.image | Image | - | |
| Carousel: seconds per image | single.background.carousel_interval | Number | 6 | |
| Carousel: crossfade (ms) | single.background.carousel_fade_ms | Number | 800 | |
| Carousel: transition | single.background.carousel_transition | Choice | fade, slide | fade |
| Carousel: pause on hover | single.background.carousel_pause_on_hover | Toggle | on | |
| Carousel: show dots | single.background.carousel_show_dots | Toggle | off | |
| Carousel: dot size | single.background.carousel_dot_size | Number | 8 | |
| Carousel: dot hairline | single.background.carousel_dot_border | Number | 1 | |
| Background Video File | single.background.video_file | File | - | |
| Background Video URL | single.background.video_url | Text | - | |
| Autoplay | single.background.video_autoplay | Toggle | on | |
| Loop | single.background.video_loop | Toggle | on | |
| Muted | single.background.video_muted | Toggle | on | |
| Mobile Fallback Image | single.background.video_mobile_fallback | Image | - | |
| Overlay | single.overlay | Group | - | |
| Enable Overlay | single.overlay.enable | Toggle | off | |
| Overlay Type | single.overlay.type | Choice | solid, gradient | solid |
| Overlay Color | single.overlay.color | Colour | #000000 | |
| Gradient Start | single.overlay.gradient_start_color | Colour | #000000 | |
| Gradient End | single.overlay.gradient_end_color | Colour | #000000 | |
| Gradient Direction | single.overlay.gradient_direction | Choice | to_top, to_bottom, to_left, to_right | to_bottom |
| Overlay Opacity (%) | single.overlay.opacity | Number | 50 | |
| Form | single.form | Group | - | |
| Enable Form | single.form.enable | Toggle | off | |
| Form Position | single.form.position | Choice | under_text, media_column | media_column |
| Form Title | single.form.title | Text | Get Started | |
| Form Description | single.form.description | Text | - | |
| Form Type | single.form.form_type | Choice | email_capture, mini_lead, hubspot_form | email_capture |
| Submit Button Label | single.form.cta_label | Text | Subscribe | |
| HubSpot Form | single.form.hubspot_form | Form | - | |
| Style & Spacing | single.style | Group | - | |
| Color Scheme | single.style.color_scheme | Choice | light, dark, custom | dark |
| Custom Text Color | single.style.custom_text_color | Colour | #ffffff | |
| Heading Size | single.style.heading_size_variant | Choice | auto, h3, h2, h1, display | auto |
| Gap: eyebrow to heading | single.style.stack_eyebrow_gap | Choice | none, 2xs, xs, sm, md, lg, xl, 2xl, 3xl | sm |
| Gap: heading to description | single.style.stack_lede_gap | Choice | none, 2xs, xs, sm, md, lg, xl, 2xl, 3xl | xl |
| Gap: text to buttons | single.style.stack_actions_gap | Choice | none, 2xs, xs, sm, md, lg, xl, 2xl, 3xl | 2xl |
| Gap: buttons to social row | single.style.stack_social_gap | Choice | none, 2xs, xs, sm, md, lg, xl, 2xl, 3xl | 2xl |
| Extra clearance under the floating nav | single.style.nav_clearance_gap | Choice | none, 2xs, xs, sm, md, lg, xl, 2xl, 3xl | none |
| Description Size | single.style.desc_size_variant | Choice | regular, large | regular |
| Hero padding (top and bottom) | single.style.padding_block | Choice | none, xs, sm, md, lg, xl, 2xl, 3xl | xl |
| Allow different top and bottom padding | single.style.padding_asymmetric | Toggle | off | |
| Top padding (only when uneven padding is on) | single.style.padding_top | Choice | none, xs, sm, md, lg, xl, 2xl, 3xl | xl |
| Bottom padding (only when uneven padding is on) | single.style.padding_bottom | Choice | none, xs, sm, md, lg, xl, 2xl, 3xl | xl |
| Visibility | single.visibility | Group | - | |
| Show on Desktop | single.visibility.show_on_desktop | Toggle | on | |
| Show on Tablet | single.visibility.show_on_tablet | Toggle | on | |
| Show on Mobile | single.visibility.show_on_mobile | Toggle | on | |
| Advanced | single.advanced | Group | - | |
| Anchor ID | single.advanced.anchor_id | Text | - | |
| Animation | single.advanced.animation | Choice | none, fade, slide_up | fade |
slides| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Content | slides.content | Group | - | |
| Eyebrow Text | slides.content.eyebrow_text | Text | - | |
| Heading | slides.content.heading_text | Text | Slide Heading | |
| Heading Tag | slides.content.heading_tag | Choice | h1, h2, h3 | h2 |
| Subheading | slides.content.subheading_text | Text | - | |
| Supporting Label | slides.content.supporting_label | Text | - | |
| Call to Action | slides.cta | Group | - | |
| Primary Button Label | slides.cta.primary_label | Text | Get Started | |
| Primary Button URL | slides.cta.primary_url | Link | - | |
| Open in New Tab | slides.cta.primary_new_tab | Toggle | off | |
| Primary Button Action | slides.cta.primary_action | Choice | link, scroll_to_anchor, open_modal | link |
| Primary Button Icon | slides.cta.primary_icon | Text | - | |
| Icon Position | slides.cta.primary_icon_position | Choice | left, right | right |
| Scroll Target ID | slides.cta.primary_scroll_target | Text | - | |
| Modal ID | slides.cta.primary_modal_target | Text | - | |
| Show Secondary Button | slides.cta.secondary_enable | Toggle | off | |
| Secondary Button Label | slides.cta.secondary_label | Text | Learn More | |
| Secondary Button URL | slides.cta.secondary_url | Link | - | |
| Open in New Tab | slides.cta.secondary_new_tab | Toggle | off | |
| Secondary Button Action | slides.cta.secondary_action | Choice | link, scroll_to_anchor, open_modal | link |
| Scroll Target ID | slides.cta.secondary_scroll_target | Text | - | |
| Modal ID | slides.cta.secondary_modal_target | Text | - | |
| Secondary Button Icon | slides.cta.secondary_icon | Text | - | |
| Icon Position | slides.cta.secondary_icon_position | Choice | left, right | right |
| Button Layout | slides.cta.cta_layout | Choice | row, stacked | row |
| Button Alignment | slides.cta.cta_alignment | Choice | left, center | center |
| Social Proof | slides.social_proof | Group | - | |
| Show Social Proof | slides.social_proof.enable | Toggle | off | |
| Social Proof Text | slides.social_proof.text | Text | Trusted by 500+ companies | |
| Logos | slides.social_proof.logos | Repeater | repeats | - |
| Logo | slides.social_proof.logos.logo_image | Image | - | |
| Logo Link | slides.social_proof.logos.logo_link | Link | - | |
| Layout | slides.layout | Group | - | |
| Layout Type | slides.layout.layout_type | Choice | text_only, text_buttons, text_form, text_image, text_video, text_image_form, text_video_form | text_buttons |
| Columns | slides.layout.layout_columns | Choice | single_column, two_column | single_column |
| Text Alignment | slides.layout.text_alignment | Choice | left, center, right | center |
| Vertical Alignment | slides.layout.vertical_alignment | Choice | top, middle, bottom | middle |
| Desktop Column Order | slides.layout.column_order_desktop | Choice | text_left, media_left | text_left |
| Mobile Column Order | slides.layout.column_order_mobile | Choice | text_first, media_first | text_first |
| Height | slides.layout.height | Choice | auto, short, regular, tall, full_viewport | regular |
| Media - Image | slides.media_image | Group | - | |
| Enable Image | slides.media_image.enable | Toggle | off | |
| Image | slides.media_image.file | Image | - | |
| Image Position | slides.media_image.position | Choice | left, right, background | right |
| Image Fit | slides.media_image.fit | Choice | cover, contain | cover |
| Enable Parallax | slides.media_image.parallax_enable | Toggle | off | |
| Media - Video | slides.media_video | Group | - | |
| Enable Video | slides.media_video.enable | Toggle | off | |
| Video Mode | slides.media_video.mode | Choice | side_media, background | side_media |
| Video Type | slides.media_video.type | Choice | file, embed | file |
| Video File | slides.media_video.file | File | - | |
| Video URL | slides.media_video.url | Text | - | |
| Autoplay | slides.media_video.autoplay | Toggle | on | |
| Loop | slides.media_video.loop | Toggle | on | |
| Muted | slides.media_video.muted | Toggle | on | |
| Show Controls | slides.media_video.show_controls | Toggle | off | |
| Mobile Fallback | slides.media_video.mobile_fallback_image | Image | - | |
| Background | slides.background | Group | - | |
| Background Type | slides.background.type | Choice | none, solid, gradient, image, video | solid |
| Background Color | slides.background.solid_color | Colour | #0a0a0b | |
| Gradient Style | slides.background.gradient_style | Choice | linear, radial | linear |
| Start Color | slides.background.gradient_start_color | Colour | #0a0a0b | |
| End Color | slides.background.gradient_end_color | Colour | #1a1a1a | |
| Direction | slides.background.gradient_direction | Choice | to_top, to_bottom, to_left, to_right, to_top_right, to_bottom_right | to_bottom |
| Background Image | slides.background.image_file | Image | - | |
| Focal Point | slides.background.image_focal_point | Choice | center, top, bottom, left, right | center |
| Image Fit | slides.background.image_fit | Choice | cover, contain | cover |
| Enable Parallax | slides.background.image_parallax | Toggle | off | |
| Background Video | slides.background.video_file | File | - | |
| Video URL | slides.background.video_url | Text | - | |
| Autoplay | slides.background.video_autoplay | Toggle | on | |
| Loop | slides.background.video_loop | Toggle | on | |
| Muted | slides.background.video_muted | Toggle | on | |
| Mobile Fallback | slides.background.video_mobile_fallback | Image | - | |
| Overlay | slides.overlay | Group | - | |
| Enable Overlay | slides.overlay.enable | Toggle | off | |
| Overlay Type | slides.overlay.type | Choice | solid, gradient | solid |
| Overlay Color | slides.overlay.color | Colour | #000000 | |
| Start Color | slides.overlay.gradient_start_color | Colour | #000000 | |
| End Color | slides.overlay.gradient_end_color | Colour | #000000 | |
| Direction | slides.overlay.gradient_direction | Choice | to_top, to_bottom, to_left, to_right | to_bottom |
| Opacity (%) | slides.overlay.opacity | Number | 50 | |
| Form | slides.form | Group | - | |
| Enable Form | slides.form.enable | Toggle | off | |
| Form Position | slides.form.position | Choice | under_text, media_column | media_column |
| Form Title | slides.form.title | Text | Get Started | |
| Form Description | slides.form.description | Text | - | |
| Form Type | slides.form.form_type | Choice | email_capture, mini_lead, hubspot_form | email_capture |
| Submit Button | slides.form.cta_label | Text | Subscribe | |
| HubSpot Form | slides.form.hubspot_form | Form | - | |
| Style & Spacing | slides.style | Group | - | |
| Color Scheme | slides.style.color_scheme | Choice | light, dark, custom | dark |
| Custom Text Color | slides.style.custom_text_color | Colour | #ffffff | |
| Heading Size | slides.style.heading_size_variant | Choice | auto, h3, h2, h1, display | auto |
| Description Size | slides.style.desc_size_variant | Choice | regular, large | regular |
| Padding Top | slides.style.padding_top | Choice | none, xs, sm, md, lg, xl | lg |
| Padding Bottom | slides.style.padding_bottom | Choice | none, xs, sm, md, lg, xl | lg |
| Visibility | slides.visibility | Group | - | |
| Show on Desktop | slides.visibility.show_on_desktop | Toggle | on | |
| Show on Tablet | slides.visibility.show_on_tablet | Toggle | on | |
| Show on Mobile | slides.visibility.show_on_mobile | Toggle | on | |
| Advanced | slides.advanced | Group | - | |
| Anchor ID | slides.advanced.anchor_id | Text | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A rotating banner. Each slide carries its own background - image, video or colour - its own alignment and its own buttons. Use it where a single hero has to carry more than one message.
{% module 'd02_banner_slider_1'
path='../../modules/Banner slider.module',
style={
'layout_mode': 'contained',
'max_width': 'container',
'border_radius': 'lg',
'autoplay_timeout_seconds': 6
}
%}{% module 'd02_banner_slider_2'
path='../../modules/Banner slider.module',
style={
'layout_mode': 'full_width',
'max_width': 'full',
'border_radius': 'none',
'autoplay_timeout_seconds': 6
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Spacing desktop | style.spacing_desktop | Spacing | - | |
| Spacing tablet | style.spacing_tablet | Spacing | - | |
| Spacing mobile | style.spacing_mobile | Spacing | - | |
| Border | style.border | Border | - | |
| Make the banner window height | style.make_the_banner_window_height | Toggle | off | |
| Layout mode | style.layout_mode | Choice | full_width, contained | contained |
| Max width | style.max_width | Choice | full, container, theme | full |
| Border radius | style.border_radius | Choice | none, sm, md, lg, xl | none |
| Controls color | style.controls_color | Group | - | |
| Background color - default | style.controls_color.color_field | Colour | #ffffff | |
| Background color - hover | style.controls_color.background_color_hover | Colour | #ffffff | |
| Icon color | style.controls_color.icon_color | Colour | #fff | |
| Autoplay timeout - seconds | style.autoplay_timeout_seconds | Number | 5 |
slide| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Title label | slide.title_label | Text | Title label | |
| Title | slide.title | Text | Title | |
| Heading type | slide.heading_type | Choice | h1, h2, h3, h4, h5, h6 | h2 |
| Buttons | slide.buttons | Repeater | repeats | - |
| Display text | slide.buttons.display_text | Text | Learn more | |
| Icon | slide.buttons.icon | Text | - | |
| Icon Position | slide.buttons.icon_position | Choice | left, right | right |
| Link | slide.buttons.link | Link | - | |
| Style | slide.buttons.style | Choice | primary, secondary, tertiary, ghost, link | secondary |
| Action | slide.buttons.action | Choice | link, scroll_to_anchor, open_modal | open_modal |
| Anchor name | slide.buttons.anchor_name | Text | - | |
| Modal name | slide.buttons.modal_name | Text | - | |
| Style | slide.style | Group | - | |
| Background type | slide.style.background_type | Choice | image, video, color | image |
| Background video | slide.style.background_video | File | ../../images/templates/video-1.mp4 | |
| Background image | slide.style.background_image | Image | image | |
| Background color | slide.style.background_color | Group | - | |
| Color | slide.style.background_color.color | Colour | #000 | |
| Gradient angle | slide.style.background_color.gradient_angle | Number | 135 | |
| Overlay color | slide.style.overlay_color | Group | - | |
| Color | slide.style.overlay_color.color | Colour | #000 | |
| Gradient angle | slide.style.overlay_color.gradient_angle | Number | 135 | |
| Title label color | slide.style.title_label_color | Colour | #ff7960 | |
| Title color | slide.style.title_color | Colour | #fff | |
| Description color | slide.style.description_color | Colour | #fff | |
| Link color - default | slide.style.link_color_default | Colour | #fff | |
| Link color - hover | slide.style.link_color_hover | Colour | #fff | |
| Text alignment | slide.style.text_alignment | Choice | left, center, right | left |
| Vertical alignment | slide.style.vertical_alignment | Choice | flex-start, center, flex-end | flex-end |
| Horizontal alignment | slide.style.horizontal_alignment | Choice | flex-start, center, flex-end | flex-start |
| Description | slide.description | Rich text | <p>Your slide description goes here. Add compelling copy to engage visitors.</p> |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A closing call to action. Heading, optional subheading and up to two buttons, on a band you can set to light, dark, accent, gradient or an image.
{% module 'd03_cta_banner_1'
path='../../modules/CTA Banner.module',
content={
'heading': 'Ready to build the site?',
'subheading': 'Every template in the theme is on the same tokens.',
'heading_tag': 'h3'
},
buttons={
'primary_text': 'Start a page',
'primary_link': {
'url': {
'href': '#getting-started',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'primary_style': 'primary',
'secondary_enable': True,
'secondary_text': 'See modules',
'secondary_link': {
'url': {
'href': '#modules',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'secondary_style': 'secondary'
},
layout={
'style': 'inline',
'size': 'h2',
'density': 'default',
'full_width': False
},
style={
'color_scheme': 'dark',
'radius': 'xl',
'shadow': 'none',
'border_enabled': False
}
%}{% module 'd03_cta_banner_2'
path='../../modules/CTA Banner.module',
content={
'heading': 'One accent colour, applied everywhere.',
'subheading': 'Set it once in theme settings.',
'heading_tag': 'h3'
},
buttons={
'primary_text': 'Open theme settings',
'primary_link': {
'url': {
'href': '#foundations-presets',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'primary_style': 'primary',
'secondary_enable': False
},
layout={
'style': 'stacked',
'size': 'h2',
'density': 'large',
'full_width': False
},
style={
'color_scheme': 'gradient',
'radius': 'none',
'shadow': 'none',
'border_enabled': False
}
%}{% module 'd03_cta_banner_3'
path='../../modules/CTA Banner.module',
content={
'heading': 'A quieter band for mid-page.',
'subheading': '',
'heading_tag': 'h3'
},
buttons={
'primary_text': 'Read the docs',
'primary_link': {
'url': {
'href': '#introduction',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'primary_style': 'secondary',
'secondary_enable': False
},
layout={
'style': 'split',
'size': 'h3',
'density': 'compact',
'full_width': False
},
style={
'color_scheme': 'light',
'radius': 'lg',
'shadow': 'none',
'border_enabled': True
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
69 fields across 5 groups - the groups below are collapsed. Click a group to open it.
content| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Heading | content.heading | Text | Ready to get started? | |
| Subheading | content.subheading | Text | Join thousands of happy customers today. | |
| Heading Tag | content.heading_tag | Choice | h2, h3, h4, p | h2 |
| Badge | content.badge | Text | Limited offer | |
| Offer line | content.offer | Text | - | |
| Offer note | content.offer_note | Text | - | |
| What they get | content.points | Repeater | repeats | - |
| Icon | content.points.icon | Text | check_circle | |
| Text | content.points.text | Text | Included | |
| Footnote | content.footnote | Text | - | |
| Offer — original price | content.offer_was | Text | - | |
| Deadline | content.deadline | Text | - | |
| Deadline label | content.deadline_label | Text | Offer ends in | |
| Countdown label — days | content.deadline_days_label | Text | Days | |
| Countdown label — hours | content.deadline_hours_label | Text | Hrs | |
| Countdown label — minutes | content.deadline_minutes_label | Text | Min | |
| Countdown label — seconds | content.deadline_seconds_label | Text | Sec |
buttons| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Primary Button Text | buttons.primary_text | Text | Get Started | |
| Primary Button Icon | buttons.primary_icon | Text | - | |
| Icon Position | buttons.primary_icon_position | Choice | left, right | right |
| Primary Button Link | buttons.primary_link | Link | - | |
| Primary Action | buttons.primary_action | Choice | link, scroll_to_anchor, open_modal | link |
| Anchor Name | buttons.primary_anchor | Text | - | |
| Modal Name | buttons.primary_modal | Text | - | |
| Primary Button Style | buttons.primary_style | Choice | primary, secondary, tertiary | primary |
| Show Secondary Button | buttons.secondary_enable | Toggle | on | |
| Secondary Button Text | buttons.secondary_text | Text | Learn More | |
| Secondary Button Icon | buttons.secondary_icon | Text | - | |
| Icon Position | buttons.secondary_icon_position | Choice | left, right | right |
| Secondary Button Link | buttons.secondary_link | Link | - | |
| Secondary Button Style | buttons.secondary_style | Choice | secondary, tertiary, primary | secondary |
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Surface | layout.surface | Choice | shell, component | shell |
| Layout Style | layout.style | Choice | inline, stacked, split | inline |
| Heading Size | layout.size | Choice | auto, h3, h2 | auto |
| Band Density | layout.density | Choice | compact, default, large | default |
| Full Width | layout.full_width | Toggle | off | |
| Band padding, top and bottom (px) | layout.padding_y | Number | - | |
| Band padding, left and right (px) | layout.padding_x | Number | - | |
| Content column width (px) | layout.content_max_width | Number | - | |
| Gap inside a group (px) | layout.rhythm_tight | Number | - | |
| Gap between groups (px) | layout.rhythm_group | Number | - | |
| Gap before the buttons (px) | layout.rhythm_ask | Number | - |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Color Scheme | style.color_scheme | Choice | light, dark, accent, gradient, image | dark |
| Background Image | style.background_image | Image | - | |
| Overlay Opacity (%) | style.overlay_opacity | Number | 60 | |
| Gradient Start Color | style.gradient_start | Colour | #6d28d9 | |
| Gradient End Color | style.gradient_end | Colour | #0b0a1f | |
| Gradient Angle | style.gradient_angle | Number | 135 | |
| Border | style.border_enabled | Toggle | off | |
| Border Radius | style.radius | Choice | none, sm, md, lg, xl, 2xl | xl |
| Shadow | style.shadow | Choice | none, sm, md, lg | none |
| Badge surface | style.badge_bg | Colour | #ffffff | |
| Badge text | style.badge_ink | Colour | #ffffff | |
| Surface pattern | style.pattern | Choice | none, dots, grid, diagonal, glow | dots |
| Pattern colour | style.pattern_color | Colour | #ffffff | |
| Pattern opacity (%) | style.pattern_opacity | Number | 10 | |
| Pattern scale (px) | style.pattern_scale | Number | 22 | |
| Sheen colour, top right | style.sheen_color | Colour | #6d28d9 | |
| Sheen colour, bottom left | style.sheen_color_2 | Colour | #0f766e | |
| Sheen strength (%) | style.sheen_opacity | Number | 28 | |
| Countdown box surface | style.countdown_box_bg | Colour | #ffffff | |
| Countdown box size (px) | style.countdown_box_size | Number | - | |
| Countdown box corner radius (px) | style.countdown_box_radius | Number | - | |
| Badge height (px) | style.badge_height | Number | - | |
| Badge padding, left and right (px) | style.badge_padding_x | Number | - | |
| Badge corner radius (px) | style.badge_radius | Number | - | |
| Badge text size (px) | style.badge_font_size | Number | - | |
| Badge in capitals | style.badge_uppercase | Toggle | off |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
The header of the blog listing page: eyebrow, heading, description, a native HubSpot search field and the topic filters.
{% module 'd04_blog_hero_1'
path='../../modules/Blog Hero.module',
content={
'eyebrow': 'Journal',
'heading': 'Notes on building for HubSpot',
'description': 'Short pieces on templates, modules and the CMS.'
},
search={
'enable': True,
'placeholder': 'Search articles'
},
topics={
'show': False,
'topics_label': 'Topics'
},
style={
'bg_type': 'gradient',
'text_alignment': 'center',
'padding_top': 'lg',
'padding_bottom': 'md'
}
%}{% module 'd04_blog_hero_2'
path='../../modules/Blog Hero.module',
content={
'eyebrow': '',
'heading': 'Journal',
'description': 'Everything we publish, newest first.'
},
search={
'enable': True,
'placeholder': 'Search'
},
topics={
'show': False,
'topics_label': 'Topics'
},
style={
'bg_type': 'none',
'text_alignment': 'left',
'padding_top': 'md',
'padding_bottom': 'sm'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
content| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Eyebrow | content.eyebrow | Text | Blog | |
| Heading | content.heading | Text | Insights & Resources | |
| Description | content.description | Text | Discover articles, guides, and insights to help you grow. |
search| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Enable search | search.enable | Toggle | on | |
| Placeholder text | search.placeholder | Text | Search articles... | |
| Search covers | search.scope | Choice | BLOG_POST, BLOG_POST,SITE_PAGE,LANDING_PAGE, | BLOG_POST |
| Suggest results as the visitor types | search.suggestions | Toggle | on | |
| Search results page | search.results_url | Text | - |
topics| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show topic filters | topics.show | Toggle | on | |
| Topics label | topics.topics_label | Text | Browse by topic: |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Background type | style.bg_type | Choice | gradient, solid, none | gradient |
| Text alignment | style.text_alignment | Choice | left, center | center |
| Padding top | style.padding_top | Choice | sm, md, lg, xl | xl |
| Padding bottom | style.padding_bottom | Choice | sm, md, lg, xl | lg |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
The masthead of a single blog post. It pulls the post title, author, date and featured image from the post itself, then applies spacing, an optional gradient overlay and a parallax effect.
Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Spacing desktop | style.spacing_desktop | Spacing | - | |
| Spacing tablet | style.spacing_tablet | Spacing | - | |
| Spacing mobile | style.spacing_mobile | Spacing | - | |
| Border | style.border | Border | - | |
| Add a custom gradient overlay? | style.add_a_custom_gradient_overlay_ | Toggle | off | |
| Overlay gradient | style.overlay_gradient | Gradient | - | |
| Text alignment | style.text_alignment | Text alignment | - | |
| Title label color | style.title_label_color | Colour | #ff7960 | |
| Title color | style.title_color | Colour | #fff | |
| Description color | style.description_color | Colour | #fff | |
| Link color - default | style.link_color_default | Colour | #fff | |
| Link color - hover | style.link_color_hover | Colour | #fff | |
| Make the banner window height | style.make_the_banner_window_height | Toggle | on | |
| Content alignment | style.content_alignment | Alignment | - | |
| Enable parallax effect | style.enable_parallax_effect | Toggle | off |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
The body of a page. Text, feature grids, steps, stats, tabs, accordions and tables.
A label, a heading, a paragraph and a row of buttons. The workhorse for section introductions.
{% module 'd06_text_section_with_buttons_1'
path='../../modules/Text section with buttons.module',
style={
'text_alignment': {
'text_align': 'CENTER'
}
},
title_label='Modules',
title='Every module, one set of tokens.',
description='Each one exposes its layout, card and icon choices as fields.',
heading_type='h3',
buttons=[]
%}{% module 'd06_text_section_with_buttons_2'
path='../../modules/Text section with buttons.module',
style={
'text_alignment': {
'text_align': 'LEFT'
}
},
title_label='Getting started',
title='Install, pick a preset, publish.',
description='Three steps before you touch a single field.',
heading_type='h3',
buttons=[
{
'display_text': 'Quick start',
'link': {
'url': {
'href': '#getting-started',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'style': 'primary',
'action': 'link',
'icon': 'arrow_forward',
'icon_position': 'right'
},
{
'display_text': 'Requirements',
'link': {
'url': {
'href': '#requirements',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'style': 'secondary',
'action': 'link',
'icon': '',
'icon_position': 'right'
}
]
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Title label | title_label | Text | - | |
| Title | title | Text | - | |
| Description | description | Text | - | |
| Heading type | heading_type | Choice | h1, h2, h3, h4, h5, h6 | - |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Text alignment | style.text_alignment | Text alignment | - |
buttons| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Display text | buttons.display_text | Text | Learn more | |
| Link | buttons.link | Link | - | |
| Style | buttons.style | Choice | primary, secondary, link | secondary |
| Icon | buttons.icon | Text | - | |
| Icon Position | buttons.icon_position | Choice | left, right | right |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
The same section intro, but the body is a rich text field - so it takes lists, links, tables and inline formatting.
{% module 'd07_text_section_rich_1'
path='../../modules/Text section rich.module',
style={
'text_alignment': {
'text_align': 'LEFT'
}
},
title_label='What is inside',
title='The theme ships with:',
heading_type='h3',
body_text='<ul><li>Website, landing, blog and system page templates</li><li>Drag and drop modules for every section of a page</li><li>Theme presets, and a custom one</li><li>Design tokens exposed as CSS custom properties</li></ul>',
buttons=[]
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Title label | title_label | Text | - | |
| Title | title | Text | - | |
| Body text | body_text | Rich text | - | |
| Heading type | heading_type | Choice | h1, h2, h3, h4, h5, h6 | - |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Text alignment | style.text_alignment | Text alignment | - |
buttons| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Display text | buttons.display_text | Text | Learn more | |
| Link | buttons.link | Link | - | |
| Style | buttons.style | Choice | primary, secondary, link | secondary |
| Icon | buttons.icon | Text | - | |
| Icon Position | buttons.icon_position | Choice | left, right | right |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
An icon, title and description repeated across a grid. The most reused section type in the theme.
{% module 'd08_feature_grid_1'
path='../../modules/Feature Grid.module',
layout={
'columns': '3',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'md',
'alignment': 'left',
'vertical_alignment': 'stretch'
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': True,
'radius': 'lg',
'shadow': 'none',
'padding': 'md',
'hover': 'lift'
},
icon_settings={
'show': True,
'style': 'circle',
'size': 'md',
'container_size': 'md',
'color_source': 'accent',
'bg_source': 'accent_light'
}
%}{% module 'd08_feature_grid_2'
path='../../modules/Feature Grid.module',
layout={
'columns': '4',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'lg',
'alignment': 'left',
'vertical_alignment': 'start'
},
card_style={
'enable_bg': False,
'border_enabled': False,
'radius': 'none',
'shadow': 'none',
'padding': 'sm',
'hover': 'none'
},
icon_settings={
'show': True,
'style': 'plain',
'size': 'lg',
'container_size': 'md',
'color_source': 'accent'
}
%}{% module 'd08_feature_grid_3'
path='../../modules/Feature Grid.module',
layout={
'columns': '2',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'md',
'alignment': 'left',
'vertical_alignment': 'stretch'
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': False,
'radius': 'none',
'shadow': 'md',
'padding': 'lg',
'hover': 'shadow'
},
icon_settings={
'show': True,
'style': 'square',
'size': 'md',
'container_size': 'lg',
'color_source': 'text',
'bg_source': 'theme'
}
%}{% module 'd08_feature_grid_4'
path='../../modules/Feature Grid.module',
layout={
'columns': '3',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'xl',
'alignment': 'center',
'vertical_alignment': 'start'
},
card_style={
'enable_bg': False,
'border_enabled': False,
'radius': 'none',
'shadow': 'none',
'padding': 'sm',
'hover': 'none'
},
icon_settings={
'show': False
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Columns (Desktop) | layout.columns | Choice | 2, 3, 4, 5 | 3 |
| Columns (Tablet) | layout.columns_tablet | Choice | 1, 2, 3, 4 | 2 |
| Columns (Mobile) | layout.columns_mobile | Choice | 1, 2 | 1 |
| Gap | layout.gap | Choice | sm, md, lg, xl | md |
| Content Alignment | layout.alignment | Choice | left, center | left |
| Card Height | layout.vertical_alignment | Choice | stretch, start | stretch |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card background | card_style.enable_bg | Toggle | on | |
| Background color | card_style.bg_source | Choice | theme, custom | theme |
| Custom background | card_style.bg_custom | Colour | #FFFFFF | |
| Text Color (all cards) | card_style.text_color | Colour | - | |
| Icon Color (all cards) | card_style.icon_color | Colour | - | |
| Border | card_style.border_enabled | Toggle | on | |
| Border radius | card_style.radius | Choice | none, sm, md, lg, xl | lg |
| Shadow | card_style.shadow | Choice | none, sm, md, lg | none |
| Hover effect | card_style.hover | Choice | none, lift, shadow, border | border |
| Content spacing | card_style.content_spacing | Choice | xs, sm, md, lg | md |
icon_settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show icons | icon_settings.show | Toggle | on | |
| Icon style | icon_settings.style | Choice | plain, circle, square, outline | circle |
| Icon size | icon_settings.size | Choice | sm, md, lg | md |
| Container size | icon_settings.container_size | Choice | sm, md, lg | md |
| Icon color | icon_settings.color_source | Choice | accent, text, custom | accent |
| Icon background | icon_settings.bg_source | Choice | accent_light, accent, theme, custom | accent_light |
features| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Icon | features.icon | Text | check_circle | |
| Image (optional) | features.image | Image | - | |
| Title | features.title | Text | Feature Title | |
| Description | features.description | Text | Brief description of this feature and its benefits. | |
| Enable Link | features.link_enabled | Toggle | off | |
| Link Text | features.link_text | Text | Learn more | |
| Link | features.link | Link | - | |
| Card Background (override) | features.bg_override | Colour | - | |
| Text Color (override) | features.text_override | Colour | - | |
| Icon Color (override) | features.icon_override | Colour | - | |
| Icon Background (override) | features.icon_bg_override | Colour | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A richer relative of Feature Grid: every item can carry an icon or an image, a title, a description and its own link, and the whole card can be made clickable.
{% module 'd09_list_with_icons_1'
path='../../modules/List with icons.module',
layout={
'columns': '4',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'md',
'text_alignment': 'left',
'vertical_alignment': 'stretch'
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': True,
'radius': 'lg',
'shadow': 'none',
'padding': 'md',
'hover': 'lift'
},
icon_settings={
'show': True,
'style': 'box',
'position': 'top',
'color_source': 'accent',
'bg_source': 'accent_light'
},
image_settings={
'show': False
},
button_settings={
'show': True,
'style': 'link',
'card_clickable': False
}
%}{% module 'd09_list_with_icons_2'
path='../../modules/List with icons.module',
layout={
'columns': '2',
'columns_tablet': '1',
'columns_mobile': '1',
'gap': 'lg',
'text_alignment': 'left',
'vertical_alignment': 'start'
},
card_style={
'enable_bg': False,
'bg_source': 'transparent',
'border_enabled': False,
'radius': 'none',
'shadow': 'none',
'padding': 'none',
'hover': 'none'
},
icon_settings={
'show': True,
'style': 'circle',
'position': 'left',
'color_source': 'accent',
'bg_source': 'accent_light'
},
image_settings={
'show': False
},
button_settings={
'show': False,
'card_clickable': False
}
%}{% module 'd09_list_with_icons_3'
path='../../modules/List with icons.module',
layout={
'columns': '3',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'md',
'text_alignment': 'center',
'vertical_alignment': 'stretch'
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': False,
'radius': '2xl',
'shadow': 'md',
'padding': 'lg',
'hover': 'shadow'
},
icon_settings={
'show': True,
'style': 'circle',
'position': 'top',
'color_source': 'accent',
'bg_source': 'accent_solid'
},
image_settings={
'show': False
},
button_settings={
'show': True,
'style': 'ghost',
'card_clickable': True
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
47 fields across 8 groups - the groups below are collapsed. Click a group to open it.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Columns (Desktop) | layout.columns | Choice | 1, 2, 3, 4, 5, 6 | 4 |
| Columns (Tablet) | layout.columns_tablet | Choice | 1, 2, 3, 4 | 2 |
| Columns (Mobile) | layout.columns_mobile | Choice | 1, 2 | 1 |
| Gap | layout.gap | Choice | sm, md, lg, xl | md |
| Text alignment | layout.text_alignment | Choice | left, center | left |
| Card height | layout.vertical_alignment | Choice | stretch, start | stretch |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card background | card_style.enable_bg | Toggle | on | |
| Background color | card_style.bg_source | Choice | theme, transparent, custom | theme |
| Custom background | card_style.bg_custom | Colour | #FFFFFF | |
| Border | card_style.border_enabled | Toggle | on | |
| Border color | card_style.border_source | Choice | theme, custom | theme |
| Custom border | card_style.border_custom | Colour | #E4E4E7 | |
| Border radius | card_style.radius | Choice | none, sm, md, lg, xl, 2xl | lg |
| Shadow | card_style.shadow | Choice | none, sm, md, lg, xl | none |
| Hover effect | card_style.hover | Choice | none, lift, shadow, border | border |
| Content spacing | card_style.content_spacing | Choice | xs, sm, md, lg | md |
icon_settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show icon | icon_settings.show | Toggle | on | |
| Container style | icon_settings.style | Choice | plain, box, circle | box |
| Icon size (px) | icon_settings.size | Number | 28 | |
| Container size (px) | icon_settings.container_size | Number | 56 | |
| Position | icon_settings.position | Choice | top, left, inline | top |
| Icon color | icon_settings.color_source | Choice | accent, primary, text, custom | accent |
| Custom color | icon_settings.color_custom | Colour | #18181B | |
| Container background | icon_settings.bg_source | Choice | accent_light, accent_solid, primary_light, transparent, custom | accent_light |
| Custom background | icon_settings.bg_custom | Colour | #18181B |
image_settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show image | image_settings.show | Toggle | off | |
| Position | image_settings.position | Choice | top, background | top |
| Height (px) | image_settings.height | Number | 200 | |
| Aspect ratio | image_settings.ratio | Choice | auto, 1/1, 4/3, 16/9, 3/2 | auto |
text_settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Title size | text_settings.title_size | Choice | sm, md, lg | md |
| Description size | text_settings.desc_size | Choice | xs, sm, md | sm |
button_settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show link/button | button_settings.show | Toggle | on | |
| Style | button_settings.style | Choice | link, primary, secondary, ghost | link |
| Entire card clickable | button_settings.card_clickable | Toggle | off |
items| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Icon (Material Symbols) | items.icon | Text | star | |
| Image | items.image | Image | - | |
| Title | items.heading | Text | Card Title | |
| Description | items.description | Text | Card description text goes here. | |
| Enable link | items.link_enabled | Toggle | on | |
| Link text | items.link_text | Text | Learn more | |
| Link URL | items.link | Link | - | |
| Card Background (override) | items.bg_override | Colour | - | |
| Text Color (override) | items.text_override | Colour | - | |
| Icon Color (override) | items.icon_override | Colour | - | |
| Icon Background (override) | items.icon_bg_override | Colour | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A numbered process. Horizontal for a three or four step overview, vertical for a longer sequence.
{% module 'd10_steps_1'
path='../../modules/Steps.module',
layout={
'direction': 'horizontal',
'columns': 'auto',
'alignment': 'center',
'gap': 'md'
},
number_style={
'type': 'number',
'style': 'filled',
'size': 'md',
'color_source': 'accent'
},
connector_style={
'show': True,
'style': 'solid',
'color': 'border'
},
card_style={
'enable_bg': False,
'border_enabled': False,
'padding': 'none'
}
%}{% module 'd10_steps_2'
path='../../modules/Steps.module',
layout={
'direction': 'vertical',
'columns': 'auto',
'alignment': 'left',
'gap': 'lg'
},
number_style={
'type': 'number',
'style': 'outline',
'size': 'lg',
'color_source': 'text'
},
connector_style={
'show': True,
'style': 'dashed',
'color': 'accent'
},
card_style={
'enable_bg': False,
'border_enabled': False,
'padding': 'none'
}
%}{% module 'd10_steps_3'
path='../../modules/Steps.module',
layout={
'direction': 'horizontal',
'columns': '4',
'alignment': 'left',
'gap': 'md'
},
number_style={
'type': 'number',
'style': 'square',
'size': 'md',
'color_source': 'accent'
},
connector_style={
'show': False
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': True,
'radius': 'lg',
'padding': 'lg'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Direction | layout.direction | Choice | horizontal, vertical | horizontal |
| Columns (Horizontal) | layout.columns | Choice | auto, 2, 3, 4, 5 | auto |
| Text Alignment | layout.alignment | Choice | left, center | center |
| Gap between steps | layout.gap | Choice | sm, md, lg, xl | md |
number_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Indicator Type | number_style.type | Choice | number, icon, none | number |
| Style | number_style.style | Choice | filled, outline, square, plain | filled |
| Size | number_style.size | Choice | sm, md, lg | md |
| Color | number_style.color_source | Choice | accent, text, custom | accent |
| Custom color | number_style.custom_color | Colour | #262626 | |
| Indicator size | number_style.indicator_size | Number | 56 | |
| Indicator text size | number_style.indicator_font_size | Number | 20 | |
| Mobile scale | number_style.mobile_scale | Number | 0.86 |
connector_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show connector line | connector_style.show | Toggle | on | |
| Line style | connector_style.style | Choice | solid, dashed, dotted | solid |
| Line color | connector_style.color | Choice | border, accent, custom | border |
| Connector thickness | connector_style.thickness | Number | 2 | |
| Dash length | connector_style.dash_length | Number | 8 |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card background | card_style.enable_bg | Toggle | off | |
| Background color | card_style.bg_source | Choice | theme, custom | theme |
| Border | card_style.border_enabled | Toggle | off | |
| Border radius | card_style.radius | Choice | none, sm, md, lg, xl | lg |
| Padding | card_style.padding | Choice | none, sm, md, lg, xl | none |
steps| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Title | steps.title | Text | Step title | |
| Description | steps.description | Text | Step description goes here. | |
| Icon (if using icons) | steps.icon | Text | check_circle | |
| Card Background (override) | steps.bg_override | Colour | - | |
| Text Color (override) | steps.text_override | Colour | - | |
| Icon / Number Color (override) | steps.icon_override | Colour | - | |
| Icon / Number Background (override) | steps.icon_bg_override | Colour | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A row of numbers with labels. Counts animate up when the section scrolls into view.
{% module 'd11_stats_1'
path='../../modules/Stats.module',
style={
'layout': 'row',
'columns': '4',
'text_alignment': 'center',
'dividers': True,
'number_size': 'xl'
}
%}{% module 'd11_stats_2'
path='../../modules/Stats.module',
style={
'layout': 'grid',
'columns': '3',
'text_alignment': 'left',
'dividers': False,
'number_size': 'lg'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Layout | style.layout | Choice | row, grid | row |
| Columns (grid layout) | style.columns | Choice | 2, 3, 4, 5 | 4 |
| Text alignment | style.text_alignment | Choice | left, center | center |
| Show dividers | style.dividers | Toggle | on | |
| Number size | style.number_size | Choice | md, lg, xl | lg |
| Gap between stats | style.gap | Choice | sm, md, lg, xl | md |
| Content spacing | style.content_spacing | Choice | xs, sm, md, lg | xs |
| Tinted item padding | style.item_padding | Choice | sm, md, lg, xl | md |
stats| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Number/Value | stats.number | Text | 100+ | |
| Label | stats.stat_label | Text | Stat Label | |
| Description (optional) | stats.description | Text | - | |
| Card Background (override) | stats.bg_override | Colour | - | |
| Text Color (override) | stats.text_override | Colour | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
Tabbed panels. Each tab has an icon, a label and a rich text body.
{% module 'd12_tabs_1'
path='../../modules/Tabs.module',
layout={
'style': 'underline',
'alignment': 'left',
'vertical': False,
'icon_position': 'left'
},
tab_style={
'bg_active': 'none',
'text_color_active': 'accent',
'indicator_color': 'accent',
'radius': 'sm',
'gap': 'sm'
},
content_style={
'enable_bg': False,
'border': False,
'padding': 'md',
'animation': 'fade'
}
%}{% module 'd12_tabs_2'
path='../../modules/Tabs.module',
layout={
'style': 'pills',
'alignment': 'center',
'vertical': False,
'icon_position': 'left'
},
tab_style={
'bg_active': 'accent_light',
'text_color_active': 'accent',
'indicator_color': 'accent',
'radius': 'full',
'gap': 'sm'
},
content_style={
'enable_bg': True,
'bg_source': 'theme',
'border': True,
'padding': 'lg',
'animation': 'fade'
}
%}{% module 'd12_tabs_3'
path='../../modules/Tabs.module',
layout={
'style': 'minimal',
'alignment': 'left',
'vertical': True,
'icon_position': 'left'
},
tab_style={
'bg_active': 'theme',
'text_color_active': 'text',
'indicator_color': 'accent',
'radius': 'md',
'gap': 'xs'
},
content_style={
'enable_bg': False,
'border': False,
'padding': 'md',
'animation': 'none'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Tab Style | layout.style | Choice | underline, pills, buttons, minimal | underline |
| Tab Alignment | layout.alignment | Choice | left, center, stretch | left |
| Vertical tabs (desktop) | layout.vertical | Toggle | off | |
| Icon Position | layout.icon_position | Choice | left, top, none | left |
tab_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Active tab background | tab_style.bg_active | Choice | none, theme, accent, accent_light | none |
| Active tab text color | tab_style.text_color_active | Choice | accent, text, white | accent |
| Indicator color | tab_style.indicator_color | Choice | accent, text, custom | accent |
| Custom indicator color | tab_style.indicator_custom | Colour | #3B82F6 | |
| Tab border radius | tab_style.radius | Choice | none, sm, md, lg, full | sm |
| Gap between tabs | tab_style.gap | Choice | none, xs, sm, md, lg | sm |
| Tab strip track | tab_style.track_surface | Choice | muted, card, none | muted |
| Track padding | tab_style.track_pad | Choice | none, xs, sm, md | xs |
| Active tab surface | tab_style.indicator_surface | Choice | card, accent, none | card |
content_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Content background | content_style.enable_bg | Toggle | off | |
| Background color | content_style.bg_source | Choice | theme, custom | theme |
| Content border | content_style.border | Toggle | off | |
| Content padding | content_style.padding | Choice | none, sm, md, lg, xl | md |
| Transition animation | content_style.animation | Choice | none, fade, slide | fade |
| Join strip to panel | content_style.attach_panel | Toggle | on | |
| Container radius | content_style.shell_radius | Choice | none, sm, md, lg, xl | lg |
| Panel reading measure | content_style.panel_measure | Choice | none, prose, wide | prose |
tabs| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Tab Label | tabs.title | Text | Tab | |
| Icon | tabs.icon | Text | - | |
| Content | tabs.content | Rich text | <p>Tab content goes here.</p> |
a11y| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Tab strip description | a11y.tablist_label | Text | Content sections |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
Collapsible rows. Use it for anything long that a reader should be able to skip.
{% module 'd13_accordion_1'
path='../../modules/Accordion.module',
layout={
'style': 'separated',
'allow_multiple': False,
'first_open': True,
'gap': 'md'
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': True,
'radius': 'lg',
'shadow': 'none',
'padding': 'md',
'hover': 'none'
},
icon_style={
'type': 'chevron',
'position': 'right',
'style': 'plain',
'color_source': 'text'
}
%}{% module 'd13_accordion_2'
path='../../modules/Accordion.module',
layout={
'style': 'connected',
'allow_multiple': True,
'first_open': False,
'gap': 'none'
},
card_style={
'enable_bg': False,
'border_enabled': True,
'radius': 'none',
'shadow': 'none',
'padding': 'md',
'hover': 'none'
},
icon_style={
'type': 'plus',
'position': 'left',
'style': 'plain',
'color_source': 'accent'
}
%}{% module 'd13_accordion_3'
path='../../modules/Accordion.module',
layout={
'style': 'minimal',
'allow_multiple': False,
'first_open': False,
'gap': 'sm'
},
card_style={
'enable_bg': False,
'border_enabled': False,
'radius': 'xl',
'shadow': 'none',
'padding': 'sm',
'hover': 'shadow'
},
icon_style={
'type': 'chevron',
'position': 'right',
'style': 'circle',
'color_source': 'accent'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accordion Style | layout.style | Choice | separated, connected, minimal | minimal |
| Allow multiple open | layout.allow_multiple | Toggle | off | |
| First item open by default | layout.first_open | Toggle | off | |
| Gap between items | layout.gap | Choice | none, sm, md, lg, xl | none |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card background | card_style.enable_bg | Toggle | on | |
| Background color | card_style.bg_source | Choice | theme, custom | theme |
| Custom background | card_style.bg_custom | Colour | #FFFFFF | |
| Border | card_style.border_enabled | Toggle | on | |
| Border radius | card_style.radius | Choice | none, sm, md, lg, xl | lg |
| Shadow | card_style.shadow | Choice | none, sm, md, lg | none |
| Padding | card_style.padding | Choice | sm, md, lg, xl | md |
| Hover effect | card_style.hover | Choice | none, shadow, border | none |
| Body line height | card_style.desc_leading | Number | 1.625 |
icon_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Icon type | icon_style.type | Choice | chevron, plus, arrow, none | chevron |
| Icon position | icon_style.position | Choice | right, left | right |
| Icon style | icon_style.style | Choice | plain, circle | plain |
| Icon color | icon_style.color_source | Choice | text, accent, custom | text |
items| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Heading | items.heading | Text | Accordion heading | |
| Icon (optional) | items.icon | Text | - | |
| Content | items.content | Rich text | <p>Accordion content goes here.</p> |
Questions and answers. Same interaction as the Accordion, plus a column layout and structured data for search engines.
{% module 'd14_faqs_1'
path='../../modules/FAQs.module',
layout={
'columns': '1',
'columns_tablet': '1',
'columns_mobile': '1',
'max_width': 'lg',
'gap': 'md'
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': True,
'radius': 'lg',
'shadow': 'sm',
'padding': 'md',
'hover': 'shadow'
},
icon_style={
'type': 'circle',
'color_source': 'accent'
}
%}{% module 'd14_faqs_2'
path='../../modules/FAQs.module',
layout={
'columns': '2',
'columns_tablet': '2',
'columns_mobile': '1',
'max_width': 'full',
'gap': 'lg'
},
card_style={
'enable_bg': False,
'border_enabled': True,
'radius': 'none',
'shadow': 'none',
'padding': 'sm',
'hover': 'none'
},
icon_style={
'type': 'plain',
'color_source': 'text'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
69 fields across 12 groups - the groups below are collapsed. Click a group to open it.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Mode | mode | Choice | faq, accordion | - |
header| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Eyebrow | header.eyebrow | Text | - | |
| Heading | header.heading | Text | - | |
| Heading tag | header.heading_tag | Choice | h1, h2, h3, h4 | h2 |
| Subtitle | header.subtitle | Text | - |
q_a| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Question | q_a.question | Text | What is your question? | |
| Answer | q_a.answer | Rich text | <p>This is the answer to your question.</p> | |
| Category | q_a.category | Text | - | |
| Leading icon (optional) | q_a.icon | Text | - | |
| Card Background (override) | q_a.bg_override | Colour | - | |
| Text Color (override) | q_a.text_override | Colour | - | |
| Icon Color (override) | q_a.icon_override | Colour | - |
filters| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Category filter buttons | filters.enable_categories | Toggle | off | |
| All-categories button text | filters.all_label | Text | All | |
| All-categories heading | filters.all_title | Text | - | |
| All-categories description | filters.all_description | Text | - | |
| Filter column heading | filters.rail_title | Text | Topics | |
| Search box | filters.enable_search | Toggle | off | |
| Search placeholder | filters.search_placeholder | Text | Search questions | |
| Search field screen-reader label | filters.search_label | Text | Search questions | |
| Result count | filters.show_count | Toggle | off | |
| Result count text | filters.count_label | Text | Showing {shown} of {total} | |
| Empty state heading | filters.empty_title | Text | No questions match | |
| Empty state text | filters.empty_body | Text | Try a different word, or clear the filters to see everything. | |
| Empty state button text | filters.reset_label | Text | Clear filters | |
| Remember filters in the URL | filters.url_state | Toggle | on | |
| URL parameter prefix | filters.url_param | Text | faq |
category_meta| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Category key | category_meta.cat_key | Text | - | |
| Category heading | category_meta.cat_title | Text | - | |
| Category description | category_meta.cat_desc | Text | - | |
| Filter button text (optional) | category_meta.cat_chip | Text | - |
seo| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| FAQPage structured data | seo.enable_json_ld | Toggle | on |
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Arrangement | layout.style | Choice | stacked, split, rail | stacked |
| Side column ratio | layout.split_ratio | Choice | 1-1, 1-2, 1-3, 2-3 | 1-2 |
| Sticky offset | layout.sticky_top | Number | 96 | |
| Columns | layout.columns | Choice | 1, 2, 3, 4, 5 | 1 |
| Columns (Tablet) | layout.columns_tablet | Choice | 1, 2 | 1 |
| Columns (Mobile) | layout.columns_mobile | Choice | 1 | 1 |
| Max Width | layout.max_width | Choice | sm, md, lg, full | lg |
| Gap between items | layout.gap | Choice | none, sm, md, lg, xl | sm |
behavior| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Open the first item | behavior.open_first | Toggle | off | |
| Allow several open at once | behavior.allow_multiple | Toggle | on | |
| Animate opening | behavior.animate | Toggle | on | |
| Open/close speed | behavior.duration | Number | 260 |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card treatment | card_style.variant | Choice | separated, connected, minimal | separated |
| Card background | card_style.enable_bg | Toggle | on | |
| Background color | card_style.bg_source | Choice | theme, custom | theme |
| Custom background | card_style.bg_custom | Colour | #FFFFFF | |
| Border | card_style.border_enabled | Toggle | on | |
| Border radius | card_style.radius | Choice | none, sm, md, lg, xl | lg |
| Shadow | card_style.shadow | Choice | none, sm, md, lg | none |
| Card padding — sides | card_style.padding_x | Number | 22 | |
| Card padding — top and bottom | card_style.padding_y | Number | 16 | |
| Hover effect | card_style.hover | Choice | none, tint, lift, shadow, border | tint |
icon_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Expand icon | icon_style.glyph | Choice | chevron, plus, arrow, none | chevron |
| Icon position | icon_style.position | Choice | left, right | right |
| Icon shape | icon_style.type | Choice | circle, plain | plain |
| Icon color | icon_style.color_source | Choice | accent, text, custom | text |
| Custom icon color | icon_style.custom_color | Colour | #000000 | |
| Icon size | icon_style.size | Number | 22 |
typography| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Question size | typography.question_size | Number | 17 | |
| Answer size | typography.answer_size | Number | 16 | |
| Category heading size | typography.cathead_size | Number | 20 | |
| Question line height | typography.question_line_height | Number | 1.4 | |
| Answer line height | typography.answer_line_height | Number | 1.65 | |
| Tablet type scale | typography.tablet_scale | Number | 0.95 | |
| Mobile type scale | typography.mobile_scale | Number | 0.9 |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A dated sequence alternating left and right of a centre line. For company history, roadmaps and case study narratives.
{% module 'd15_timeline_1' path='../../modules/Timeline.module' %}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
event| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Title | event.title | Text | Event title | |
| Description | event.description | Text | Brief description of this event or milestone. | |
| Featured image | event.featured_image | Image | - | |
| Date | event.date_field | Date | 1638248400000 | |
| Add link? | event.add_link_ | Toggle | off | |
| Link | event.link | URL | - | |
| Card Background (override) | event.bg_override | Colour | - | |
| Text Color (override) | event.text_override | Colour | - |
timeline_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Rail weight | timeline_style.rail_weight | Choice | hairline, double | hairline |
| Rail colour | timeline_style.rail_color | Choice | border, accent | border |
| Dot size | timeline_style.dot_size | Choice | sm, md, lg | md |
| Space between events | timeline_style.gap | Choice | lg, xl, 2xl | 2xl |
| Event image height | timeline_style.image_height | Choice | sm, md, lg | md |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
Release notes. Each entry has a version, a date and a list of changes tagged new, improved, fixed or deprecated.
{% module 'd16_changelog_entry_1'
path='../../modules/Changelog Entry.module',
layout={
'style': 'timeline',
'date_format': 'full',
'show_version': True
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': True,
'radius': 'lg',
'shadow': 'none',
'padding': 'md'
}
%}{% module 'd16_changelog_entry_2'
path='../../modules/Changelog Entry.module',
layout={
'style': 'cards',
'date_format': 'short',
'show_version': True
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': False,
'radius': 'none',
'shadow': 'md',
'padding': 'lg'
}
%}{% module 'd16_changelog_entry_3'
path='../../modules/Changelog Entry.module',
layout={
'style': 'simple',
'date_format': 'full',
'show_version': True
},
card_style={
'enable_bg': False,
'border_enabled': False,
'radius': 'none',
'shadow': 'none',
'padding': 'sm'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Layout Style | layout.style | Choice | timeline, cards, simple | timeline |
| Date Format | layout.date_format | Choice | full, short, relative | full |
| Show Version Badge | layout.show_version | Toggle | on | |
| Timeline rail column | layout.marker_width | Choice | sm, md, lg | md |
| Timeline dot size | layout.dot_size | Choice | sm, md, lg | sm |
| Rail weight | layout.rail_weight | Choice | hairline, double | hairline |
| Space between entries | layout.entry_gap | Choice | md, lg, xl, 2xl | xl |
| Change badge style | layout.badge_style | Choice | coss, tint | coss |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card background | card_style.enable_bg | Toggle | on | |
| Background color | card_style.bg_source | Choice | theme, custom | theme |
| Border | card_style.border_enabled | Toggle | on | |
| Border radius | card_style.radius | Choice | none, sm, md, lg, xl | lg |
| Shadow | card_style.shadow | Choice | none, sm, md | none |
| Padding | card_style.padding | Choice | sm, md, lg, xl | md |
badge_colors| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| New Feature | badge_colors.new | Colour | #171717 | |
| Improvement | badge_colors.improved | Colour | #404040 | |
| Bug Fix | badge_colors.fixed | Colour | #525252 | |
| Deprecated | badge_colors.deprecated | Colour | #737373 |
entries| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Version | entries.version | Text | 1.0.0 | |
| Release Date | entries.date | Date | - | |
| Release Title (optional) | entries.title | Text | - | |
| Release Summary (optional) | entries.description | Text | - | |
| Changes | entries.changes | Repeater | repeats | - |
| Type | entries.changes.type | Choice | new, improved, fixed, deprecated | new |
| Description | entries.changes.text | Text | Description of the change |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A feature matrix. Rows are features, columns are plans or products, and each cell can be a tick, a cross, a partial mark or free text.
{% module 'd17_comparison_table_1'
path='../../modules/Comparison Table.module',
layout={
'style': 'standard',
'sticky_header': True,
'sticky_first_col': True
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': True,
'radius': 'lg',
'shadow': 'sm'
},
highlight_style={
'bg_source': 'accent_light',
'badge': True
},
icons_style={
'check_color': 'success',
'cross_color': 'muted',
'partial_color': 'warning'
}
%}{% module 'd17_comparison_table_2'
path='../../modules/Comparison Table.module',
layout={
'style': 'minimal',
'sticky_header': False,
'sticky_first_col': True
},
card_style={
'enable_bg': False,
'border_enabled': False,
'radius': 'none',
'shadow': 'none'
},
highlight_style={
'bg_source': 'accent_light',
'badge': False
},
icons_style={
'check_color': 'accent',
'cross_color': 'muted',
'partial_color': 'warning'
}
%}{% module 'd17_comparison_table_3'
path='../../modules/Comparison Table.module',
layout={
'style': 'cards',
'sticky_header': False,
'sticky_first_col': False
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': True,
'radius': 'xl',
'shadow': 'md'
},
highlight_style={
'bg_source': 'accent',
'badge': True
},
icons_style={
'check_color': 'success',
'cross_color': 'muted',
'partial_color': 'warning'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Table Style | layout.style | Choice | standard, cards, minimal | standard |
| Highlight Column | layout.highlight_column | Number | 1 | |
| Sticky Header Row | layout.sticky_header | Toggle | on | |
| Sticky First Column | layout.sticky_first_col | Toggle | on | |
| Cell padding | layout.cell_padding | Choice | sm, md, lg, xl | md |
| Content spacing | layout.content_spacing | Choice | xs, sm, md, lg | sm |
| Feature column width | layout.feature_col_width | Choice | equal, wide, wider | wide |
| Minimum column width | layout.min_column_width | Choice | sm, md, lg | md |
| Grid lines | layout.grid_lines | Choice | horizontal, both | horizontal |
| Header row surface | layout.header_band | Choice | muted, none | muted |
| Switch to cards below | layout.card_switch | Choice | mobile, tablet | tablet |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Table background | card_style.enable_bg | Toggle | on | |
| Background color | card_style.bg_source | Choice | theme, custom | theme |
| Custom background | card_style.bg_custom | Colour | #FFFFFF | |
| Border | card_style.border_enabled | Toggle | on | |
| Border radius | card_style.radius | Choice | none, sm, md, lg, xl | lg |
| Shadow | card_style.shadow | Choice | none, sm, md, lg | none |
highlight_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Background | highlight_style.bg_source | Choice | accent_light, accent, custom | accent_light |
| Custom background | highlight_style.bg_custom | Colour | - | |
| Show 'Recommended' badge | highlight_style.badge | Toggle | on | |
| Column subheading tone | highlight_style.subheading_tone | Choice | strong, muted | strong |
highlight_content| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Badge text | highlight_content.badge_text | Text | Recommended |
icons_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Check color | icons_style.check_color | Choice | success, accent, custom | accent |
| Custom check color | icons_style.check_custom | Colour | #22C55E | |
| Cross color | icons_style.cross_color | Choice | muted, error, custom | muted |
| Custom cross color | icons_style.cross_custom | Colour | #EF4444 | |
| Partial color | icons_style.partial_color | Choice | warning, accent, custom | accent |
| Custom partial color | icons_style.partial_custom | Colour | #F59E0B |
icons| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Check icon | icons.check_icon | Text | check_circle | |
| Cross icon | icons.cross_icon | Text | cancel | |
| Partial icon | icons.partial_icon | Text | remove |
columns| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Column Heading | columns.heading | Text | Product | |
| Subheading (optional) | columns.subheading | Text | - | |
| Logo (optional) | columns.logo | Image | - | |
| CTA Button Text | columns.cta_text | Text | - | |
| CTA Button Link | columns.cta_link | Link | - | |
| CTA Button Style | columns.cta_style | Choice | primary, secondary, ghost, link | primary |
| Card Background (override) | columns.bg_override | Colour | - | |
| Text Color (override) | columns.text_override | Colour | - |
rows| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Feature Name | rows.feature | Text | Feature name | |
| Tooltip (optional) | rows.tooltip | Text | - | |
| Values | rows.values | Text | -, yes, no |
a11y| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Table description | a11y.scroll_label | Text | Plan comparison |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A long pillar page with a sticky topic selector. Each section gets an anchor and the selector scrolls to it.
{% module 'd18_pillar_content_1' path='../../modules/Pillar Content.module' %}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Table of Contents text | table_of_contents_text | Text | - |
section| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Section title | section.section_title | Text | Section Title | |
| Section content | section.section_content | Rich text | <p>Add your section content here.</p> | |
| Add links to this section? | section.add_links_to_this_section_ | Toggle | off | |
| Links | section.links | Group | - | |
| Title | section.links.title | Text | - | |
| Links | section.links.links | Repeater | repeats | - |
| Display text | section.links.links.display_text | Text | Link text | |
| URL | section.links.links.url | URL | - | |
| Open link in a new tab? | section.links.links.open_link_in_a_new_tab_ | Toggle | off |
toc| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show table of contents | toc.enable | Toggle | on | |
| Position | toc.position | Choice | left, right, top | left |
| Sidebar width | toc.width | Number | 260 | |
| Gap between sidebar and content | toc.gap | Number | 56 | |
| Sticky offset | toc.sticky_offset | Number | 32 | |
| Number the entries | toc.show_numbers | Toggle | on | |
| Also list headings from the content | toc.heading_levels | Choice | none, h2, h2,h3, h2,h3,h4 | h2,h3 |
| On mobile | toc.mobile_behavior | Choice | accordion, drawer, hidden | accordion |
| Space between entries | toc.entry_gap | Number | 7 |
reading| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Prose measure | reading.content_max_width | Number | 680 | |
| Space between sections | reading.section_gap | Number | 80 | |
| Rule between sections | reading.show_dividers | Toggle | on | |
| Space between paragraphs | reading.paragraph_gap | Number | 20 | |
| Space above a heading | reading.heading_gap | Number | 36 | |
| Space under a section title | reading.title_gap | Number | 20 |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
Repeating card layouts: work, resources, video, logos, galleries, team and testimonials.
Large image cards with the text either over the picture or underneath it. Grid, featured and masonry layouts.
{% module 'd19_full_width_cards_1'
path='../../modules/Full-width cards.module',
style={
'layout': 'featured',
'columns': '2',
'image_ratio': '4/3',
'text_position': 'overlay',
'overlay_style': 'gradient',
'show_label': True,
'show_description': False,
'gap': 'md',
'rounded': True,
'hover_effect': 'zoom'
}
%}{% module 'd19_full_width_cards_2'
path='../../modules/Full-width cards.module',
style={
'layout': 'grid',
'columns': '3',
'image_ratio': '16/9',
'text_position': 'below',
'overlay_style': 'gradient',
'show_label': True,
'show_description': True,
'gap': 'lg',
'rounded': False,
'hover_effect': 'lift'
}
%}{% module 'd19_full_width_cards_3'
path='../../modules/Full-width cards.module',
style={
'layout': 'masonry',
'columns': '3',
'image_ratio': '1/1',
'text_position': 'overlay',
'overlay_style': 'always',
'show_label': False,
'show_description': False,
'gap': 'none',
'rounded': False,
'hover_effect': 'both'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Layout | style.layout | Choice | grid, featured, masonry | featured |
| Columns | style.columns | Choice | 2, 3, 4, 5 | 2 |
| Image ratio | style.image_ratio | Choice | 16/9, 4/3, 1/1, 3/4 | 4/3 |
| Text position | style.text_position | Choice | overlay, below | overlay |
| Overlay style | style.overlay_style | Choice | gradient, full, always | gradient |
| Show category label | style.show_label | Toggle | on | |
| Show description | style.show_description | Toggle | off | |
| Gap between items | style.gap | Choice | none, sm, md, lg, xl | md |
| Rounded corners | style.rounded | Toggle | on | |
| Hover effect | style.hover_effect | Choice | none, zoom, lift, both | zoom |
| Content spacing | style.content_spacing | Choice | xs, sm, md, lg | xs |
| Overlay colour | style.overlay_color | Colour | - | |
| Card title size | style.title_size | Choice | xs, sm, body, lg, h5, h4, h3, h2 | h3 |
| Body line height | style.desc_leading | Number | 1.45 |
post| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Project image | post.image | Image | - | |
| Category | post.post_label | Text | Category | |
| Title | post.post_title | Text | Project Title | |
| Description | post.post_short_description | Text | - | |
| Add link | post.add_link_to_the_card_ | Toggle | on | |
| Link URL | post.link | Link | - | |
| Card Background (override) | post.bg_override | Colour | - | |
| Text Color (override) | post.text_override | Colour | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
Project cards with a category, a year, a title, a description and tags.
{% module 'd20_portfolio_grid_1'
path='../../modules/Portfolio Grid.module',
style={
'columns': '3'
}
%}{% module 'd20_portfolio_grid_2'
path='../../modules/Portfolio Grid.module',
style={
'columns': '2'
}
%}{% module 'd20_portfolio_grid_3'
path='../../modules/Portfolio Grid.module',
style={
'columns': '4'
}
%}{% module 'd20_portfolio_grid_4'
path='../../modules/Portfolio Grid.module',
interaction={
'click_action': 'drawer',
'open_from': 'left',
'panel_size': 'md'
},
style={
'columns': '3'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
projects| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Project Image | projects.image | Image | - | |
| Category | projects.category | Text | Brand Strategy | |
| Year | projects.year | Text | 2024 | |
| Project Title | projects.title | Text | Project Name | |
| Short Description | projects.description | Text | Brief description of this project and what was delivered. | |
| Tags | projects.tags | Repeater | repeats | - |
| Tag | projects.tags.tag | Text | Tag | |
| Detail panel content | projects.detail_content | Rich text | <p>Describe the brief, what was built and what changed. This body is what a reader sees when the card opens.</p> | |
| Detail panel button label | projects.detail_cta_text | Text | - | |
| Project Link | projects.link | Link | - | |
| Card Background (override) | projects.bg_override | Colour | - | |
| Text Color (override) | projects.text_override | Colour | - |
interaction| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| What a card does when clicked | interaction.click_action | Choice | drawer, modal, link | drawer |
| Drawer opens from | interaction.open_from | Choice | bottom, left | bottom |
| Panel size | interaction.panel_size | Choice | sm, md, lg | md |
| Panel corner radius | interaction.panel_radius | Choice | none, lg, xl, 2xl | lg |
| Close button size | interaction.close_size | Number | 40 | |
| Close button label | interaction.close_label | Text | Close | |
| Default panel button label | interaction.cta_label | Text | Read the full case study | |
| Card hint | interaction.open_hint | Text | Open project | |
| Backdrop colour | interaction.scrim_color | Colour | - |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Columns | style.columns | Choice | 2, 3, 4, 5 | 3 |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A downloads library. Every resource has a type - ebook, guide, template, report and so on - a badge, an image and its own call to action, with an optional filter bar across the top.
{% module 'd21_resource_card_1'
path='../../modules/Resource Card.module',
layout={
'style': 'grid',
'columns': '3',
'columns_tablet': '2',
'gap': 'md',
'show_filter': True
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': True,
'radius': 'lg',
'shadow': 'sm',
'hover': 'lift',
'image_ratio': '16/9'
},
badge_style={
'show': True,
'position': 'overlay',
'style': 'filled'
},
cta_style={
'type': 'link'
}
%}{% module 'd21_resource_card_2'
path='../../modules/Resource Card.module',
layout={
'style': 'list',
'columns': '2',
'columns_tablet': '1',
'gap': 'sm',
'show_filter': False
},
card_style={
'enable_bg': False,
'border_enabled': True,
'radius': 'none',
'shadow': 'none',
'hover': 'border',
'image_ratio': '1/1'
},
badge_style={
'show': True,
'position': 'below',
'style': 'outline'
},
cta_style={
'type': 'icon'
}
%}{% module 'd21_resource_card_3'
path='../../modules/Resource Card.module',
layout={
'style': 'featured',
'columns': '3',
'columns_tablet': '2',
'gap': 'lg',
'show_filter': False
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': False,
'radius': 'xl',
'shadow': 'md',
'hover': 'shadow',
'image_ratio': '4/3'
},
badge_style={
'show': True,
'position': 'overlay',
'style': 'subtle'
},
cta_style={
'type': 'button'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
188 fields across 13 groups - the groups below are collapsed. Click a group to open it.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Layout Style | layout.style | Choice | grid, list, featured | grid |
| Columns | layout.columns | Choice | 2, 3, 4, 5 | 3 |
| Columns (Tablet) | layout.columns_tablet | Choice | 1, 2 | 2 |
| Gap | layout.gap | Choice | sm, md, lg, xl | md |
| Show Category Filter | layout.show_filter | Toggle | on | |
| Show grid / list toggle | layout.show_view_toggle | Toggle | on | |
| Show search | layout.show_search | Toggle | on | |
| Show result count | layout.show_count | Toggle | on | |
| Search matches | layout.search_scope | Choice | title, title_desc, all | all |
| Toolbar layout | layout.toolbar_layout | Choice | split, stacked, centered | split |
| Remember filter in the URL | layout.url_state | Toggle | on |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card background | card_style.enable_bg | Toggle | on | |
| Background color | card_style.bg_source | Choice | theme, custom | theme |
| Border | card_style.border_enabled | Toggle | on | |
| Border radius | card_style.radius | Choice | none, sm, md, lg, xl | lg |
| Shadow | card_style.shadow | Choice | none, sm, md, lg | none |
| Hover effect | card_style.hover | Choice | none, lift, shadow, border | border |
| Image Aspect Ratio | card_style.image_ratio | Choice | 16/9, 4/3, 3/2, 1/1 | 16/9 |
| List view thumbnail width | card_style.list_thumb_width | Number | 280 | |
| Card padding | card_style.content_padding | Number | 24 | |
| Image hover zoom | card_style.image_hover_zoom | Number | 105 | |
| Hover lift distance | card_style.hover_lift | Number | 4 | |
| Transition speed | card_style.transition_ms | Number | 300 | |
| Title lines before truncating | card_style.title_line_clamp | Number | 0 | |
| Description lines before truncating | card_style.desc_line_clamp | Number | 3 | |
| Hairline width | card_style.border_width | Number | 1 | |
| Content spacing | card_style.content_spacing | Choice | xs, sm, md, lg | md |
badge_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show Type Badge | badge_style.show | Toggle | on | |
| Badge Position | badge_style.position | Choice | overlay, below | overlay |
| Badge Style | badge_style.style | Choice | filled, outline, subtle | filled |
| Show gated / free badge | badge_style.show_access | Toggle | on | |
| Badge corner radius | badge_style.radius | Number | 6 | |
| Badge padding (vertical) | badge_style.padding_v | Number | 4 | |
| Badge padding (horizontal) | badge_style.padding_h | Number | 8 | |
| Badge text size | badge_style.font_size | Number | 12 | |
| Badge letter spacing | badge_style.letter_spacing | Number | 0 | |
| Badge icon size | badge_style.icon_size | Number | 14 |
cta_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| CTA Type | cta_style.type | Choice | button, link, icon | link |
| CTA button padding (vertical) | cta_style.btn_padding_v | Number | 8 | |
| CTA button padding (horizontal) | cta_style.btn_padding_h | Number | 16 | |
| CTA button corner radius | cta_style.btn_radius | Number | 6 | |
| CTA text size | cta_style.font_size | Number | 14 | |
| CTA icon size | cta_style.icon_size | Number | 18 |
cta_defaults| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Default CTA Text | cta_defaults.text | Text | Download Now | |
| Default Button Icon | cta_defaults.icon | Text | - | |
| Default Icon Position | cta_defaults.icon_position | Choice | left, right | right |
library| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Search placeholder | library.search_placeholder | Text | Search resources | |
| All-categories button | library.all_label | Text | All | |
| Gated badge text | library.gated_label | Text | Gated | |
| Free badge text | library.free_label | Text | Free | |
| URL parameter prefix | library.url_key | Text | rc | |
| Count wording (one result) | library.count_suffix_one | Text | resource | |
| Count wording (several results) | library.count_suffix_many | Text | resources | |
| Empty state heading | library.empty_title | Text | No resources match | |
| Empty state text | library.empty_body | Text | Nothing here matches that search and filter together. Clear one of them to see more. | |
| Empty state button | library.empty_action | Text | Clear search and filters | |
| Grid view button label | library.grid_view_label | Text | Grid view | |
| List view button label | library.list_view_label | Text | List view |
detail| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Open a detail window | detail.enable | Toggle | on | |
| Opened by | detail.trigger | Choice | card, button | card |
| Details button text | detail.button_label | Text | Details | |
| Detail window button | detail.cta_label | Text | - | |
| Close button label | detail.close_label | Text | Close | |
| Author row label | detail.author_label | Text | Author | |
| Date row label | detail.date_label | Text | Date | |
| Category row label | detail.category_label | Text | Category | |
| Format row label | detail.format_label | Text | Format | |
| Window position | detail.position | Choice | right, center | right |
pagination| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Paginate | pagination.enable | Toggle | off | |
| Resources per page | pagination.per_page | Number | 9 | |
| Style | pagination.mode | Choice | pages, more | pages |
| Load more button | pagination.more_label | Text | Load more | |
| Previous page button | pagination.prev_label | Text | Previous | |
| Next page button | pagination.next_label | Text | Next | |
| Page counter wording | pagination.page_status | Text | Page {current} of {total} |
resources| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Thumbnail Image | resources.image | Image | - | |
| Resource Type | resources.type | Choice | ebook, whitepaper, guide, template, checklist, toolkit, report, case_study, infographic, video | ebook |
| Category | resources.category | Text | Marketing | |
| Title | resources.title | Text | Resource Title | |
| Description | resources.description | Text | Brief description of what this resource covers. | |
| Detail view content | resources.long_description | Rich text | <p>Add the longer write-up that appears when a visitor opens this resource.</p> | |
| Author | resources.author | Text | - | |
| Date or year | resources.date_text | Text | - | |
| Format | resources.file_info | Text | - | |
| Gated Content | resources.is_gated | Toggle | off | |
| Resource Link / Landing Page | resources.link | Link | - | |
| Direct Download File | resources.file | File | - | |
| Custom CTA Text (optional) | resources.cta_text | Text | - | |
| Button Icon | resources.cta_icon | Text | - | |
| Icon Position | resources.cta_icon_position | Choice | left, right | right |
| Card Background (override) | resources.bg_override | Colour | - | |
| Text Color (override) | resources.text_override | Colour | - | |
| Icon Color (override) | resources.icon_override | Colour | - | |
| Icon Background (override) | resources.icon_bg_override | Colour | - |
colors| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card background | colors.card_bg | Colour | - | |
| Card border | colors.card_border | Colour | - | |
| Card border on hover | colors.card_hover_border | Colour | - | |
| Card title | colors.title | Colour | - | |
| Card description | colors.description | Colour | - | |
| Category line | colors.category | Colour | - | |
| Call to action | colors.cta | Colour | - | |
| CTA button background | colors.cta_btn_bg | Colour | - | |
| CTA button text | colors.cta_btn_text | Colour | - | |
| Type badge background | colors.type_badge_bg | Colour | - | |
| Type badge text | colors.type_badge_text | Colour | - | |
| Gated badge background | colors.gated_badge_bg | Colour | - | |
| Gated badge text | colors.gated_badge_text | Colour | - | |
| Free badge background | colors.free_badge_bg | Colour | - | |
| Free badge text | colors.free_badge_text | Colour | - | |
| Lock chip background | colors.lock_bg | Colour | - | |
| Lock icon | colors.lock_icon | Colour | - | |
| Image placeholder gradient start | colors.placeholder_from | Colour | - | |
| Image placeholder gradient end | colors.placeholder_to | Colour | - | |
| Image placeholder icon | colors.placeholder_icon | Colour | - | |
| Search background | colors.search_bg | Colour | - | |
| Search border | colors.search_border | Colour | - | |
| Search border on focus | colors.search_focus_border | Colour | - | |
| Search text | colors.search_text | Colour | - | |
| Search icon | colors.search_icon | Colour | - | |
| Filter pill background | colors.filter_bg | Colour | - | |
| Filter pill text | colors.filter_text | Colour | - | |
| Filter pill border | colors.filter_border | Colour | - | |
| Active filter background | colors.filter_active_bg | Colour | - | |
| Active filter text | colors.filter_active_text | Colour | - | |
| View toggle background | colors.toggle_bg | Colour | - | |
| View toggle icon | colors.toggle_icon | Colour | - | |
| View toggle border | colors.toggle_border | Colour | - | |
| Active view background | colors.toggle_active_bg | Colour | - | |
| Active view icon | colors.toggle_active_icon | Colour | - | |
| Result count text | colors.count_text | Colour | - | |
| Empty state heading | colors.empty_title_color | Colour | - | |
| Empty state text | colors.empty_body_color | Colour | - | |
| Detail window background | colors.modal_bg | Colour | - | |
| Behind the detail window | colors.modal_scrim | Colour | - | |
| Detail window title | colors.modal_title_color | Colour | - | |
| Detail window text | colors.modal_text | Colour | - | |
| Detail window row label | colors.modal_meta_label | Colour | - | |
| Detail window close icon | colors.modal_close | Colour | - | |
| Detail window button background | colors.modal_btn_bg | Colour | - | |
| Detail window button text | colors.modal_btn_text | Colour | - | |
| Pagination background | colors.page_bg | Colour | - | |
| Pagination text | colors.page_text | Colour | - | |
| Pagination border | colors.page_border | Colour | - | |
| Current page background | colors.page_active_bg | Colour | - | |
| Current page text | colors.page_active_text | Colour | - |
typography| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card title | typography.title_size | Number | 18 | |
| Card description | typography.desc_size | Number | 14 | |
| Category line | typography.category_size | Number | 12 | |
| Category letter spacing | typography.category_tracking | Number | 0 | |
| Search field | typography.search_size | Number | 15 | |
| Filter pills | typography.filter_size | Number | 14 | |
| Result count | typography.count_size | Number | 14 | |
| Empty state heading | typography.empty_title_size | Number | 20 | |
| Empty state text | typography.empty_body_size | Number | 15 | |
| Detail window title | typography.modal_title_size | Number | 26 | |
| Detail window text | typography.modal_text_size | Number | 15 | |
| Detail window rows | typography.modal_meta_size | Number | 13 | |
| Pagination | typography.page_size | Number | 14 | |
| Image placeholder icon | typography.placeholder_icon_size | Number | 64 |
dimensions| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Gap inside the toolbar | dimensions.toolbar_gap | Number | 16 | |
| Gap below the toolbar | dimensions.toolbar_bottom | Number | 32 | |
| Search field width | dimensions.search_width | Number | 280 | |
| Search corner radius | dimensions.search_radius | Number | 8 | |
| Search padding (vertical) | dimensions.search_padding_v | Number | 10 | |
| Search padding (horizontal) | dimensions.search_padding_h | Number | 14 | |
| Search icon size | dimensions.search_icon_size | Number | 18 | |
| Filter pill corner radius | dimensions.filter_radius | Number | 999 | |
| Filter pill padding (vertical) | dimensions.filter_padding_v | Number | 8 | |
| Filter pill padding (horizontal) | dimensions.filter_padding_h | Number | 16 | |
| Gap between filter pills | dimensions.filter_gap | Number | 8 | |
| View toggle button size | dimensions.toggle_size | Number | 38 | |
| View toggle corner radius | dimensions.toggle_radius | Number | 8 | |
| View toggle icon size | dimensions.toggle_icon_size | Number | 18 | |
| Lock chip size | dimensions.lock_size | Number | 32 | |
| Lock icon size | dimensions.lock_icon_size | Number | 16 | |
| Empty state padding | dimensions.empty_padding | Number | 56 | |
| Detail window width | dimensions.modal_width | Number | 480 | |
| Detail window corner radius | dimensions.modal_radius | Number | 0 | |
| Detail window padding | dimensions.modal_padding | Number | 32 | |
| Detail window image height | dimensions.modal_thumb_height | Number | 220 | |
| Detail window close button | dimensions.modal_close_size | Number | 40 | |
| Detail window button radius | dimensions.modal_btn_radius | Number | 6 | |
| Detail window button padding (vertical) | dimensions.modal_btn_padding_v | Number | 12 | |
| Gap above pagination | dimensions.page_gap | Number | 40 | |
| Pagination button height | dimensions.page_btn_size | Number | 38 | |
| Pagination corner radius | dimensions.page_radius | Number | 6 |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A grid of videos grouped into sections. Each video can be a hosted file, a YouTube link or a Vimeo link, and opens in a lightbox.
{% module 'd22_video_library_1'
path='../../modules/Video library.module',
layout={
'columns': '3',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'md',
'show_sections': False
},
card_style={
'enable_bg': True,
'border_enabled': True,
'radius': 'lg',
'shadow': 'none',
'hover': 'lift'
},
thumbnail_settings={
'aspect_ratio': '16/9'
},
play_button_settings={
'style': 'solid',
'size': 'md',
'color': 'white'
}
%}{% module 'd22_video_library_2'
path='../../modules/Video library.module',
layout={
'columns': '2',
'columns_tablet': '1',
'columns_mobile': '1',
'gap': 'lg',
'show_sections': False
},
card_style={
'enable_bg': False,
'border_enabled': False,
'radius': 'none',
'shadow': 'none',
'hover': 'none'
},
thumbnail_settings={
'aspect_ratio': '21/9'
},
play_button_settings={
'style': 'minimal',
'size': 'lg',
'color': 'white'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Columns (Desktop) | layout.columns | Choice | 2, 3, 4, 5 | 3 |
| Columns (Tablet) | layout.columns_tablet | Choice | 1, 2, 3 | 2 |
| Columns (Mobile) | layout.columns_mobile | Choice | 1, 2 | 1 |
| Gap | layout.gap | Choice | sm, md, lg, xl | md |
| Group videos in sections | layout.show_sections | Toggle | off |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card background | card_style.enable_bg | Toggle | on | |
| Border | card_style.border_enabled | Toggle | on | |
| Border radius | card_style.radius | Choice | none, sm, md, lg, xl | lg |
| Shadow | card_style.shadow | Choice | none, sm, md, lg | none |
| Hover effect | card_style.hover | Choice | none, lift, shadow, border | border |
thumbnail_settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Aspect ratio | thumbnail_settings.aspect_ratio | Choice | 16/9, 4/3, 1/1, 21/9 | 16/9 |
| Overlay color | thumbnail_settings.overlay_color | Colour | #000000 | |
| Overlay hover opacity | thumbnail_settings.overlay_hover_opacity | Number | 50 |
play_button_settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Style | play_button_settings.style | Choice | solid, outline, minimal | solid |
| Size | play_button_settings.size | Choice | sm, md, lg | md |
| Button color | play_button_settings.color | Choice | white, accent | white |
| Play button corner radius | play_button_settings.radius | Choice | none, sm, md, lg, full | md |
| Lightbox close button size | play_button_settings.close_size | Number | 40 | |
| Lightbox maximum width | play_button_settings.modal_max_width | Number | 1000 |
sections| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Section title | sections.section_title | Text | Featured Videos | |
| Section description | sections.section_description | Text | - | |
| Videos | sections.videos | Repeater | repeats | - |
| Title | sections.videos.title | Text | Video Title | |
| Description | sections.videos.description | Text | - | |
| Thumbnail | sections.videos.thumbnail | Image | image | |
| Video source | sections.videos.source_type | Choice | file, youtube, vimeo | file |
| Video file | sections.videos.video_file | File | ../../images/templates/video-1.mp4 | |
| YouTube URL | sections.videos.youtube_url | Text | - | |
| Vimeo URL | sections.videos.vimeo_url | Text | - | |
| Duration | sections.videos.duration | Text | - | |
| Card Background (override) | sections.videos.bg_override | Colour | - | |
| Text Color (override) | sections.videos.text_override | Colour | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A row of images. With Gallery on they open in a lightbox; with it off each image is a link.
{% module 'd23_images_gallery_1'
path='../../modules/Images gallery.module',
enable_gallery_=True,
images_height=220,
images=[
{
'image_field': {
'src': get_asset_url("../../images/templates/helper-img-2.jpg"),
'alt': 'Gallery image one',
'size_type': 'auto',
'loading': 'lazy'
}
},
{
'image_field': {
'src': get_asset_url("../../images/templates/helper-img-3.jpg"),
'alt': 'Gallery image two',
'size_type': 'auto',
'loading': 'lazy'
}
},
{
'image_field': {
'src': get_asset_url("../../images/templates/helper-img-4.jpg"),
'alt': 'Gallery image three',
'size_type': 'auto',
'loading': 'lazy'
}
},
{
'image_field': {
'src': get_asset_url("../../images/templates/helper-img-5.jpg"),
'alt': 'Gallery image four',
'size_type': 'auto',
'loading': 'lazy'
}
}
]
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Enable gallery? | enable_gallery_ | Toggle | - | |
| Images height | images_height | Number | - | |
| Tile height (mobile) | images_height_mobile | Number | - |
images| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Image | images.image_field | Image | - | |
| Link | images.link | Link | - |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Columns | style.columns | Choice | 1, 2, 3, 4, 5 | 3 |
| Columns (tablet) | style.columns_tablet | Choice | 1, 2, 3, 4 | 2 |
| Columns (mobile) | style.columns_mobile | Choice | 1, 2 | 1 |
| Gap | style.gap | Choice | sm, md, lg, xl | md |
| Tile corner radius | style.radius | Choice | none, sm, md, lg | md |
| Colors | style.colors | Group | - | |
| Counter color | style.colors.counter_color | Colour | #a1a1a1 | |
| Navigation color | style.colors.navigation_color | Colour | #fafafa | |
| Close button color | style.colors.close_button_color | Colour | #fafafa | |
| Spinner color | style.colors.spinner_color | Colour | #fafafa | |
| Captions background color | style.colors.captions_background_color | Colour | #0a0a0a | |
| Captions text color | style.colors.captions_text_color | Colour | #fafafa | |
| Overlay background color | style.colors.overlay_background_color | Colour | #0a0a0a |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A logo strip. Inline for a single scrolling row, grid for a block of columns.
{% module 'd24_images_list_1'
path='../../modules/Images list.module',
style={
'layout': 'inline',
'columns': '5',
'grayscale': True,
'hover_effect': True,
'show_borders': False,
'logo_height': 36,
'opacity': 60
}
%}{% module 'd24_images_list_2'
path='../../modules/Images list.module',
style={
'layout': 'grid',
'columns': '4',
'grayscale': False,
'hover_effect': False,
'show_borders': True,
'logo_height': 44,
'opacity': 100
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Title (optional) | title | Text | - | |
| Logos | image_field | Image | - |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Layout | style.layout | Choice | inline, grid | inline |
| Columns (grid) | style.columns | Choice | 3, 4, 5, 6 | 5 |
| Logo height (px) | style.logo_height | Number | 40 | |
| Grayscale logos | style.grayscale | Toggle | on | |
| Logo opacity (%) | style.opacity | Number | 60 | |
| Hover effect | style.hover_effect | Toggle | on | |
| Show borders | style.show_borders | Toggle | off | |
| Narrow breakpoint | style.breakpoint_narrow | Number | 480 |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
People cards: photo, name, role, bio and social links.
{% module 'd25_team_members_1'
path='../../modules/Team members.module',
layout={
'columns': '4',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'md'
},
card_style={
'avatar_size': 'lg',
'show_bio': True,
'show_social': True
}
%}{% module 'd25_team_members_2'
path='../../modules/Team members.module',
layout={
'columns': '3',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'xl'
},
card_style={
'avatar_size': 'xl',
'show_bio': False,
'show_social': False
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Columns (Desktop) | layout.columns | Choice | 3, 4, 5 | 4 |
| Columns (Tablet) | layout.columns_tablet | Choice | 2, 3, 4 | 2 |
| Columns (Mobile) | layout.columns_mobile | Choice | 1, 2 | 1 |
| Gap | layout.gap | Choice | sm, md, lg, xl | md |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Avatar size | card_style.avatar_size | Choice | md, lg, xl | lg |
| Show bio | card_style.show_bio | Toggle | on | |
| Show social links | card_style.show_social | Toggle | on | |
| Card padding | card_style.card_padding | Choice | theme, sm, md, lg, xl | theme |
| Content spacing | card_style.content_spacing | Choice | xs, sm, md, lg | md |
members| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Photo | members.photo | Image | - | |
| Name | members.member_name | Text | Team Member | |
| Role / Title | members.role | Text | Position | |
| Short Bio | members.bio | Text | - | |
| Social Links | members.social | Group | - | |
| LinkedIn URL | members.social.linkedin | Text | - | |
| X (Twitter) URL | members.social.twitter | Text | - | |
| Instagram URL | members.social.instagram | Text | - | |
members.social.email | Text | - | ||
| Card Background (override) | members.bg_override | Colour | - | |
| Text Color (override) | members.text_override | Colour | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
Testimonial cards: quote, author, role, company and an optional star rating.
{% module 'd26_reviews_1'
path='../../modules/Reviews.module',
layout={
'columns': '3',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'md',
'vertical_alignment': 'stretch'
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': True,
'radius': 'lg',
'shadow': 'none',
'padding': 'md',
'hover': 'none'
},
style={
'show_quote_icon': True,
'show_rating': False
}
%}{% module 'd26_reviews_2'
path='../../modules/Reviews.module',
layout={
'columns': '1',
'columns_tablet': '1',
'columns_mobile': '1',
'gap': 'md',
'vertical_alignment': 'start'
},
card_style={
'enable_bg': False,
'border_enabled': False,
'radius': 'none',
'shadow': 'none',
'padding': 'lg',
'hover': 'none'
},
style={
'show_quote_icon': True,
'show_rating': False
}
%}{% module 'd26_reviews_3'
path='../../modules/Reviews.module',
layout={
'columns': '2',
'columns_tablet': '2',
'columns_mobile': '1',
'gap': 'lg',
'vertical_alignment': 'stretch'
},
card_style={
'enable_bg': True,
'bg_source': 'theme',
'border_enabled': False,
'radius': 'xl',
'shadow': 'md',
'padding': 'lg',
'hover': 'lift'
},
style={
'show_quote_icon': False,
'show_rating': True
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
layout| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Columns (Desktop) | layout.columns | Choice | 1, 2, 3, 4, 5 | 3 |
| Columns (Tablet) | layout.columns_tablet | Choice | 1, 2 | 2 |
| Columns (Mobile) | layout.columns_mobile | Choice | 1 | 1 |
| Gap | layout.gap | Choice | sm, md, lg, xl | md |
| Card height | layout.vertical_alignment | Choice | stretch, start | stretch |
card_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Card background | card_style.enable_bg | Toggle | on | |
| Background color | card_style.bg_source | Choice | theme, custom | theme |
| Custom background | card_style.bg_custom | Colour | #FFFFFF | |
| Border | card_style.border_enabled | Toggle | on | |
| Border radius | card_style.radius | Choice | none, sm, md, lg, xl | lg |
| Shadow | card_style.shadow | Choice | none, sm, md, lg | none |
| Hover effect | card_style.hover | Choice | none, lift, shadow | none |
| Content spacing | card_style.content_spacing | Choice | xs, sm, md, lg | md |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show quote icon | style.show_quote_icon | Toggle | on | |
| Show star rating | style.show_rating | Toggle | off | |
| Star colour | style.star_color | Colour | - | |
| Empty star colour | style.star_empty_color | Colour | - | |
| Star size | style.star_size | Choice | sm, md, lg | md |
testimonial| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Review text | testimonial.story | Text | This is an amazing product/service. Highly recommended! | |
| Rating (1-5) | testimonial.rating | Number | 5 | |
| Author name | testimonial.author | Text | John Doe | |
| Author title/company | testimonial.author_job | Text | CEO, Company Name | |
| Author photo | testimonial.author_avatar | Image | - | |
| Card Background (override) | testimonial.bg_override | Colour | - | |
| Text Color (override) | testimonial.text_override | Colour | - | |
| Icon / Star Color (override) | testimonial.icon_override | Colour | - | |
| Icon Background (override) | testimonial.icon_bg_override | Colour | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A filterable index of anything that comes in a list - a menu, a directory, a catalogue, a body of work. Entries carry an image, a title, a summary, a value, tags and their own rich-text body, and the search box, the filter pills and the pager are all built from the entries themselves.
{% module 'd27_filtered_listing_1'
path='../../modules/Filtered Listing.module',
settings={
'layout': 'grid',
'columns': 3,
'columns_tablet': 2,
'columns_mobile': 1,
'image_ratio': '4-3',
'pagination': 'pages',
'page_size': 6,
'show_summary': True,
'show_tags': True
},
filters={
'show_search': True,
'show_filters': True,
'filter_mode': 'multi',
'show_count': True,
'show_clear': True
},
detail={
'presentation': 'modal',
'show_media': True,
'show_nav': True
}
%}{% module 'd27_filtered_listing_2'
path='../../modules/Filtered Listing.module',
settings={
'layout': 'list',
'columns': 1,
'columns_tablet': 1,
'columns_mobile': 1,
'image_ratio': '3-2',
'pagination': 'more',
'page_size': 4,
'summary_lines': 3
},
filters={
'show_search': True,
'show_filters': True,
'filter_mode': 'single',
'show_count': True
},
detail={
'presentation': 'drawer',
'drawer_side': 'right',
'show_nav': True
}
%}{% module 'd27_filtered_listing_3'
path='../../modules/Filtered Listing.module',
settings={
'layout': 'compact',
'columns': 1,
'show_image': False,
'show_summary': False,
'show_value': True,
'pagination': 'none'
},
filters={
'show_search': True,
'show_filters': False,
'show_count': True,
'show_clear': False
},
detail={
'presentation': 'lightbox',
'show_media': False
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
177 fields across 8 groups - the groups below are collapsed. Click a group to open it.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Preset | preset | Choice | catalogue, directory, portfolio | - |
heading| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Eyebrow | heading.eyebrow | Text | Our menu | |
| Heading | heading.headline | Text | Everything we serve | |
| Sub heading | heading.subheading | Text | Filter by course, or search for a dish by name. | |
| Heading level | heading.headline_tag | Choice | h1, h2, h3, h4 | h2 |
| Alignment | heading.alignment | Choice | left, center | left |
| Show a rule under the heading | heading.show_rule | Toggle | on |
facets| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Key | facets.facet_key | Text | - | |
| Filter name | facets.facet_label | Text | - | |
| Control | facets.facet_style | Choice | pills, dropdown | pills |
| Options | facets.options | Repeater | repeats | - |
| Value | facets.options.option_value | Text | - | |
| Shown as | facets.options.option_label | Text | - |
entries| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Picture | entries.media_type | Choice | image, none | image |
| Image | entries.image | Image | - | |
| Picture is decoration | entries.media_decorative | Toggle | off | |
| Eyebrow | entries.eyebrow | Text | - | |
| Title | entries.title | Text | - | |
| Summary | entries.summary | Text | - | |
| Write-up | entries.body_text | Rich text | - | |
| Value | entries.primary_value | Text | - | |
| Value note | entries.value_note | Text | - | |
| Badge | entries.badge | Text | - | |
| Featured | entries.featured | Toggle | off | |
| Filter values | entries.facet_values | Repeater | repeats | - |
| Filter key | entries.facet_values.facet_key | Text | - | |
| Value | entries.facet_values.facet_value | Text | - | |
| Details | entries.specs | Repeater | repeats | - |
| Icon | entries.specs.spec_icon | Icon | - | |
| Detail name | entries.specs.spec_label | Text | - | |
| Detail value | entries.specs.spec_value | Text | - | |
| Tags | entries.tags | Repeater | repeats | - |
| Tag | entries.tags.tag_text | Text | - | |
| Link text | entries.link_text | Text | - | |
| Link | entries.link_url | Link | - |
filters| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show the search box | filters.show_search | Toggle | on | |
| Search placeholder | filters.search_placeholder | Text | Search the menu | |
| Search label for screen readers | filters.search_aria | Text | Search entries | |
| Search inside the details too | filters.search_specs | Toggle | on | |
| Show the filters | filters.show_filters | Toggle | on | |
| Choosing within one filter | filters.filter_mode | Choice | single, multi | multi |
| Wording for no choice | filters.all_text | Text | All | |
| Show the result count | filters.show_count | Toggle | on | |
| Count, one result | filters.count_one | Text | 1 result | |
| Count, many results | filters.count_many | Text | {n} results | |
| Show a clear button | filters.show_clear | Toggle | on | |
| Clear button | filters.clear_text | Text | Clear all | |
| Keep the filters in the page address | filters.url_state | Toggle | on | |
| Nothing-found heading | filters.blank_title | Text | Nothing matches | |
| Nothing-found text | filters.blank_text | Text | Try a different search, or clear the filters. |
settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Layout | settings.layout | Choice | grid, list, compact | grid |
| Columns | settings.columns | Number | 3 | |
| Columns, tablet | settings.columns_tablet | Number | 2 | |
| Columns, mobile | settings.columns_mobile | Number | 1 | |
| Clicking a card | settings.card_click | Choice | detail, link, none | detail |
| Show pictures | settings.show_image | Toggle | on | |
| Picture shape | settings.image_ratio | Choice | 4-3, 3-2, 16-9, 1-1, 3-4 | 4-3 |
| Picture fit | settings.image_fit | Choice | cover, contain | cover |
| Show the eyebrow | settings.show_eyebrow | Toggle | on | |
| Show the summary | settings.show_summary | Toggle | on | |
| Summary line limit | settings.summary_lines | Number | 2 | |
| Show the value | settings.show_value | Toggle | on | |
| Show the badge | settings.show_badge | Toggle | on | |
| Show the details on the card | settings.show_specs | Toggle | off | |
| Details shown | settings.specs_max | Number | 3 | |
| Show the tags on the card | settings.show_tags | Toggle | on | |
| Tags shown | settings.tags_max | Number | 3 | |
| Show the entry link on the card | settings.show_card_link | Toggle | off | |
| Featured entries take two columns | settings.featured_span | Toggle | off | |
| Long lists | settings.pagination | Choice | none, pages, more | pages |
| Entries per page | settings.page_size | Number | 12 | |
| Load more button | settings.more_text | Text | Load more | |
| Previous page | settings.prev_page_text | Text | Previous | |
| Next page | settings.next_page_text | Text | Next | |
| Fade the cards in | settings.reveal | Toggle | on |
detail| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| How an entry opens | detail.presentation | Choice | modal, drawer, lightbox, link | modal |
| Drawer side | detail.drawer_side | Choice | left, right | left |
| Card call to action | detail.open_text | Text | View | |
| Show the picture | detail.show_media | Toggle | on | |
| Show the write-up | detail.show_body | Toggle | on | |
| Show the details block | detail.show_meta | Toggle | on | |
| Details heading | detail.meta_title | Text | Details | |
| Show the tags | detail.show_detail_tags | Toggle | on | |
| Tags heading | detail.tags_title | Text | Tags | |
| Show the entry link | detail.show_cta | Toggle | on | |
| Previous and next | detail.show_nav | Toggle | on | |
| Previous | detail.prev_text | Text | Previous | |
| Next | detail.next_text | Text | Next | |
| Show the counter | detail.show_counter | Toggle | on | |
| Counter separator | detail.counter_separator | Text | / | |
| Close label for screen readers | detail.close_aria | Text | Close |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Brand | style.brand | Group | - | |
| Accent colour | style.brand.accent | Colour | #171717 | |
| Base font | style.brand.base_font | Font | #262626 | |
| Section background | style.brand.surface | Colour | #FFFFFF | |
| Hairline colour | style.brand.hairline | Colour | #E5E5E5 | |
| Muted text colour | style.brand.muted_text | Colour | #737373 | |
| Section | style.section | Group | - | |
| Padding top | style.section.pad_top | Number | 72 | |
| Padding bottom | style.section.pad_bottom | Number | 72 | |
| Padding sides | style.section.pad_x | Number | 24 | |
| Maximum width | style.section.max_width | Number | 1200 | |
| Corner radius | style.section.section_radius | Number | 0 | |
| Heading | style.heading_style | Group | - | |
| Eyebrow | style.heading_style.eyebrow_font | Font | #737373 | |
| Eyebrow letter spacing | style.heading_style.eyebrow_tracking | Number | 0 | |
| Eyebrow in capitals | style.heading_style.eyebrow_caps | Toggle | off | |
| Heading | style.heading_style.headline_font | Font | #171717 | |
| Sub heading | style.heading_style.sub_font | Font | #737373 | |
| Space under the heading | style.heading_style.heading_gap | Number | 32 | |
| Search and filters | style.controls_style | Group | - | |
| Space under the controls | style.controls_style.controls_gap | Number | 28 | |
| Space between control rows | style.controls_style.control_row_gap | Number | 16 | |
| Search box height | style.controls_style.search_height | Number | 42 | |
| Search box radius | style.controls_style.search_radius | Number | 10 | |
| Search box border | style.controls_style.search_border | Number | 1 | |
| Search box background | style.controls_style.search_bg | Colour | #FFFFFF | |
| Search box text | style.controls_style.search_font | Font | #262626 | |
| Filter name | style.controls_style.facet_label_font | Font | #737373 | |
| Pill radius | style.controls_style.pill_radius | Number | 6 | |
| Pill padding sides | style.controls_style.pill_pad_x | Number | 10 | |
| Pill padding top and bottom | style.controls_style.pill_pad_y | Number | 3 | |
| Pill border | style.controls_style.pill_border | Number | 1 | |
| Pill background | style.controls_style.pill_bg | Colour | #FFFFFF | |
| Pill text | style.controls_style.pill_font | Font | #525252 | |
| Pill background, chosen | style.controls_style.pill_active_bg | Colour | #171717 | |
| Pill text, chosen | style.controls_style.pill_active_text | Colour | #FFFFFF | |
| Result count | style.controls_style.count_font | Font | #737373 | |
| Clear button | style.controls_style.clear_font | Font | #171717 | |
| Card | style.card_style | Group | - | |
| Space between cards | style.card_style.card_gap | Number | 20 | |
| Background | style.card_style.card_bg | Colour | #FFFFFF | |
| Border colour | style.card_style.card_border | Colour | #E5E5E5 | |
| Border | style.card_style.card_border_width | Number | 1 | |
| Corner radius | style.card_style.card_radius | Number | 10 | |
| Padding | style.card_style.card_pad | Number | 16 | |
| Padding, mobile | style.card_style.card_pad_mobile | Number | 14 | |
| Shadow size | style.card_style.card_shadow_size | Number | 0 | |
| Lift on hover | style.card_style.card_lift | Number | 0 | |
| Border colour, hover | style.card_style.card_hover_border | Colour | #171717 | |
| Shadow size, hover | style.card_style.card_hover_shadow | Number | 0 | |
| Picture radius | style.card_style.image_radius | Number | 8 | |
| Space between lines | style.card_style.card_text_gap | Number | 6 | |
| Eyebrow | style.card_style.card_eyebrow_font | Font | #737373 | |
| Title | style.card_style.card_title_font | Font | #171717 | |
| Summary | style.card_style.card_summary_font | Font | #737373 | |
| Value | style.card_style.card_value_font | Font | #171717 | |
| Details | style.card_style.card_spec_font | Font | #737373 | |
| Tag | style.card_style.card_tag_font | Font | #525252 | |
| Tag background | style.card_style.card_tag_bg | Colour | #F5F5F5 | |
| Tag radius | style.card_style.card_tag_radius | Number | 6 | |
| Badge background | style.card_style.card_badge_bg | Colour | #171717 | |
| Badge text colour | style.card_style.card_badge_text | Colour | #FFFFFF | |
| Badge radius | style.card_style.card_badge_radius | Number | 6 | |
| Entry link | style.card_style.card_link_font | Font | #171717 | |
| Modal, drawer and lightbox | style.panel_style | Group | - | |
| Overlay colour | style.panel_style.overlay | Colour | #171717 | |
| Panel background | style.panel_style.panel_bg | Colour | #FFFFFF | |
| Panel radius | style.panel_style.panel_radius | Number | 12 | |
| Panel padding | style.panel_style.panel_pad | Number | 28 | |
| Modal width | style.panel_style.panel_max_width | Number | 720 | |
| Drawer width | style.panel_style.drawer_width | Number | 460 | |
| Picture height | style.panel_style.panel_media_height | Number | 320 | |
| Title | style.panel_style.panel_title_font | Font | #171717 | |
| Write-up | style.panel_style.panel_body_font | Font | #525252 | |
| Block headings | style.panel_style.panel_meta_title_font | Font | #171717 | |
| Detail name | style.panel_style.panel_meta_label_font | Font | #737373 | |
| Detail value | style.panel_style.panel_meta_value_font | Font | #262626 | |
| Close button background | style.panel_style.close_bg | Colour | #F5F5F5 | |
| Close button colour | style.panel_style.close_color | Colour | #171717 | |
| Close button size | style.panel_style.close_size | Number | 36 | |
| Close button radius | style.panel_style.close_radius | Number | 10 | |
| Previous and next background | style.panel_style.nav_bg | Colour | #FFFFFF | |
| Previous and next colour | style.panel_style.nav_color | Colour | #171717 | |
| Entry link | style.panel_style.panel_cta_font | Font | #FFFFFF | |
| Entry link background | style.panel_style.panel_cta_bg | Colour | #171717 | |
| Entry link radius | style.panel_style.panel_cta_radius | Number | 8 | |
| Paging | style.pager_style | Group | - | |
| Space above the paging | style.pager_style.pager_gap | Number | 32 | |
| Button size | style.pager_style.pager_size | Number | 36 | |
| Button radius | style.pager_style.pager_radius | Number | 8 | |
| Button background | style.pager_style.pager_bg | Colour | #FFFFFF | |
| Button text | style.pager_style.pager_font | Font | #525252 | |
| Button background, current | style.pager_style.pager_active_bg | Colour | #171717 | |
| Button text, current | style.pager_style.pager_active_text | Colour | #FFFFFF | |
| Nothing found | style.blank_style | Group | - | |
| Heading | style.blank_style.blank_title_font | Font | #171717 | |
| Text | style.blank_style.blank_text_font | Font | #737373 | |
| Icon colour | style.blank_style.blank_icon | Colour | #D4D4D4 |
Pulls the latest posts from a blog and renders them as cards, with optional filters by author, tag or date range.
{% module 'd28_recent_blog_posts_1'
path='../../modules/Recent blog posts.module',
number_of_posts=3,
filter_by_author_=False,
filter_by_tag_=False,
filter_by_date_=False
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Blog | blog_field | Blog | - | |
| Number of posts | number_of_posts | Number | - | |
| Filter by author? | filter_by_author_ | Toggle | - | |
| Author name | author_name | Text | - | |
| Filter by tag? | filter_by_tag_ | Toggle | - | |
| Tag name | tag_name | Text | - | |
| Filter by date? | filter_by_date_ | Toggle | - | |
| Start date | start_date | Text | - | |
| End date | end_date | Text | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
Pricing, buttons, countdowns, modals, sticky CTAs and maps.
Plan cards with a price, a feature list, a call to action and an optional monthly and yearly toggle.
{% module 'd29_pricing_cards_1'
path='../../modules/Pricing Cards.module',
style={
'columns': '3',
'alignment': 'center',
'featured_accent': 'accent',
'card_style': 'elevated'
},
icon_style={
'check_color': 'success',
'cross_color': 'muted'
}
%}{% module 'd29_pricing_cards_2'
path='../../modules/Pricing Cards.module',
style={
'columns': '3',
'alignment': 'left',
'featured_accent': 'primary',
'card_style': 'bordered'
},
icon_style={
'check_color': 'accent',
'cross_color': 'muted'
}
%}{% module 'd29_pricing_cards_3'
path='../../modules/Pricing Cards.module',
style={
'columns': '2',
'alignment': 'center',
'featured_accent': 'gradient',
'card_style': 'flat'
},
icon_style={
'check_color': 'success',
'cross_color': 'text'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Enable billing toggle | enable_toggle | Toggle | - |
toggle_labels| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Monthly label | toggle_labels.monthly_label | Text | Monthly | |
| Yearly label | toggle_labels.yearly_label | Text | Yearly | |
| Yearly discount label | toggle_labels.yearly_discount_label | Text | Save 20% |
plans| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Plan name | plans.plan_name | Text | Starter | |
| Featured plan (highlight) | plans.is_featured | Toggle | off | |
| Badge text (e.g., Most Popular) | plans.badge_text | Text | - | |
| Monthly price | plans.price_monthly | Text | $29 | |
| Yearly price | plans.price_yearly | Text | $290 | |
| Price suffix | plans.price_suffix | Text | /month | |
| Description | plans.description | Text | Perfect for getting started | |
| Features | plans.features | Repeater | repeats | - |
| Feature | plans.features.text | Text | Feature item | |
| Included | plans.features.included | Toggle | on | |
| CTA button text | plans.cta_text | Text | Get Started | |
| CTA button link | plans.cta_link | URL | - | |
| CTA button style | plans.cta_style | Choice | primary, secondary, ghost | primary |
| Card Background (override) | plans.bg_override | Colour | - | |
| Text Color (override) | plans.text_override | Colour | - |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Columns | style.columns | Choice | 2, 3, 4, 5 | 3 |
| Text alignment | style.alignment | Choice | left, center | center |
| Featured card accent color | style.featured_accent | Choice | accent, primary, gradient | accent |
| Card style | style.card_style | Choice | flat, bordered, elevated | bordered |
| Gap between cards | style.gap | Choice | sm, md, lg, xl | md |
| Content spacing | style.content_spacing | Choice | xs, sm, md, lg | lg |
| Body line height | style.desc_leading | Number | 1.45 |
icon_names| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Check icon (Material Symbol) | icon_names.check_icon | Text | check | |
| Cross icon (Material Symbol) | icon_names.cross_icon | Text | close |
icon_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Check icon color | icon_style.check_color | Choice | success, accent, text | success |
| Cross icon color | icon_style.cross_color | Choice | error, muted, text | muted |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A standalone row of buttons. Five styles, an icon on either side, and three actions: follow a link, scroll to an anchor, or open a modal.
{% module 'd30_buttons_1'
path='../../modules/Buttons.module',
style={
'text_alignment': {
'text_align': 'LEFT'
}
},
button=[
{
'display_text': 'Primary',
'style': 'primary',
'action': 'link',
'link': {
'url': {
'href': '#modules',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'icon': '',
'icon_position': 'right'
},
{
'display_text': 'Secondary',
'style': 'secondary',
'action': 'link',
'link': {
'url': {
'href': '#modules',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'icon': '',
'icon_position': 'right'
},
{
'display_text': 'Tertiary',
'style': 'tertiary',
'action': 'link',
'link': {
'url': {
'href': '#modules',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'icon': '',
'icon_position': 'right'
},
{
'display_text': 'Ghost',
'style': 'ghost',
'action': 'link',
'link': {
'url': {
'href': '#modules',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'icon': '',
'icon_position': 'right'
},
{
'display_text': 'Link',
'style': 'link',
'action': 'link',
'link': {
'url': {
'href': '#modules',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'icon': 'arrow_forward',
'icon_position': 'right'
}
]
%}{% module 'd30_buttons_2'
path='../../modules/Buttons.module',
style={
'text_alignment': {
'text_align': 'CENTER'
}
},
button=[
{
'display_text': 'Download',
'style': 'primary',
'action': 'link',
'link': {
'url': {
'href': '#modules',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'icon': 'download',
'icon_position': 'left'
},
{
'display_text': 'Continue',
'style': 'secondary',
'action': 'link',
'link': {
'url': {
'href': '#modules',
'type': 'CONTENT'
},
'open_in_new_tab': False
},
'icon': 'arrow_forward',
'icon_position': 'right'
}
]
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Spacing | style.spacing_field | Spacing | - | |
| Text alignment | style.text_alignment | Text alignment | - |
button| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Display text | button.display_text | Text | Get started | |
| Link | button.link | Link | - | |
| Style | button.style | Choice | primary, secondary, tertiary, ghost, link | primary |
| Action | button.action | Choice | link, scroll_to_anchor, open_modal | link |
| Anchor name | button.anchor_name | Text | - | |
| Modal name | button.modal_name | Text | - | |
| Icon | button.icon | Text | - | |
| Icon Position | button.icon_position | Choice | left, right | right |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A live countdown to a date. Days, hours, minutes and seconds, updating in the browser.
{% module 'd31_countdown_1'
path='../../modules/Countdown.module',
style={
'color_scheme': 'light',
'alignment': 'left',
'size': 'regular'
},
heading='Doors close in'
%}{% module 'd31_countdown_2'
path='../../modules/Countdown.module',
style={
'color_scheme': 'light',
'alignment': 'center',
'size': 'large'
},
heading='Launching in'
%}{% module 'd31_countdown_3'
path='../../modules/Countdown.module',
style={
'color_scheme': 'light',
'alignment': 'right',
'size': 'small'
},
heading='Offer ends'
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Heading (optional) | heading | Text | - | |
| Target Date & Time | target_date | datetime | - |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Color Scheme | style.color_scheme | Choice | light, dark | light |
| Alignment | style.alignment | Choice | left, center, right | left |
| Size | style.size | Choice | small, regular, large | regular |
| Digit box size | style.box_size | Number | 70 | |
| Mobile scale | style.box_scale_mobile | Number | 0.8 | |
| Digit box corner radius | style.radius | Choice | none, sm, md, lg | md |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A dialog that other modules open by name. It holds either rich text or a HubSpot form.
Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Modal name | modal_name | Text | - | |
| Title | modal_title | Text | - | |
| Close button label | close_label | Text | - | |
| Modal type | modal_type | Choice | text, form | - |
| Modal text | modal_text | Rich text | - | |
| Form | form | Form | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
modal_style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Dialog width | modal_style.width | Choice | sm, md, lg | md |
| Corner radius | modal_style.radius | Choice | none, sm, md, lg | lg |
| Close button size | modal_style.close_size | Number | 40 |
A button pinned to the edge of the viewport, with per-template switches for where it appears.
Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Link | link | Link | - | |
| Icon | icon | Text | - | |
| Enable for wesite pages? | enable_for_wesite_pages_ | Toggle | - | |
| Enable for landing pages? | enable_for_landing_pages_ | Toggle | - | |
| Enable for system pages? | enable_for_system_pages_ | Toggle | - | |
| Enable for blog listing? | enable_for_blog_listing_ | Toggle | - | |
| Enable for blog posts? | enable_for_blog_posts_ | Toggle | - |
style_1| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Style | style_1.style | Choice | primary, secondary, tertiary, ghost | primary |
| Size | style_1.size | Number | 50 | |
| Vertical position | style_1.vertical_position | Choice | top, center, bottom | bottom |
| Horizontal position | style_1.horizontal_position | Choice | left, right | left |
| Spacing | style_1.spacing_field | Spacing | - | |
| Corner radius | style_1.radius | Choice | none, sm, md, lg, full | md |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
An embedded map centred on an address or a pair of coordinates, with a marker and a styled colour scheme.
{% module 'd34_google_map_1'
path='../../modules/Google Map.module',
settings={
'map_type': 'roadmap',
'zoom': 14,
'height': 320
},
controls={
'zoom_control': True,
'fullscreen': False,
'street_view': False,
'map_type_control': False,
'scroll_zoom': False,
'draggable': True
},
style_group={
'color_scheme': 'grayscale',
'border_radius': 'lg'
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
location| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Location Mode | location.mode | Choice | address, coordinates | address |
| Address | location.address | Text | San Francisco, CA | |
| Latitude | location.latitude | Text | 37.7749 | |
| Longitude | location.longitude | Text | -122.4194 |
marker| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show Marker | marker.show | Toggle | on | |
| Marker Title | marker.title | Text | Our Location | |
| Custom Marker Icon | marker.custom_icon | Image | - |
settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Zoom Level | settings.zoom | Number | 15 | |
| Map Height | settings.height | Number | 400 | |
| Map Type | settings.map_type | Choice | roadmap, satellite, hybrid, terrain | roadmap |
controls| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show Zoom Controls | controls.zoom_control | Toggle | on | |
| Allow Fullscreen | controls.fullscreen | Toggle | on | |
| Show Street View | controls.street_view | Toggle | off | |
| Show Map Type Selector | controls.map_type_control | Toggle | off | |
| Scroll to Zoom | controls.scroll_zoom | Toggle | off | |
| Draggable | controls.draggable | Toggle | on |
style_group| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Map Color Scheme | style_group.color_scheme | Choice | default, grayscale, dark, light | default |
| Border Radius | style_group.border_radius | Choice | none, sm, md, lg | none |
api| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Google Maps API Key | api.key_override | Text | - |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A searchable list of locations beside a map. Each location carries an address, a phone number, opening hours, a category and its coordinates; the list filters by search term, by category and by distance, and selecting either a card or a pin highlights the other.
{% module 'd35_store_locator_1'
path='../../modules/Store Locator.module',
heading={
'tag': 'h3'
},
layout_settings={
'layout': 'list_left',
'list_width': 38,
'list_columns': 1,
'map_height': 460,
'sticky_map': True,
'show_details': True,
'show_index': True,
'show_directions': True
},
map_setup={
'map_mode': 'street',
'tile_preset': 'carto_light',
'cluster_enabled': True,
'scroll_wheel_zoom': False
},
search_controls={
'show_search': True,
'show_category_filter': True,
'show_near_me': True,
'distance_unit': 'km'
}
%}{% module 'd35_store_locator_2'
path='../../modules/Store Locator.module',
heading={
'tag': 'h3'
},
layout_settings={
'layout': 'list_only',
'list_columns': 2,
'list_height_mode': 'natural',
'show_details': True,
'show_index': False,
'show_directions': True
},
search_controls={
'show_search': True,
'show_category_filter': True,
'show_near_me': False
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
367 fields across 8 groups - the groups below are collapsed. Click a group to open it.
heading| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show section heading | heading.show | Toggle | on | |
| Eyebrow | heading.eyebrow | Text | Where to find us | |
| Title | heading.title | Text | Find a store near you | |
| Subtitle | heading.subtitle | Text | Search by town or postcode, or use your own location to sort the list by distance. | |
| Heading tag | heading.tag | Choice | h2, h3, h4, div | h2 |
| Heading alignment | heading.alignment | Choice | left, center | left |
locations| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Location name | locations.location_name | Text | - | |
| Address | locations.address_text | Rich text | - | |
| Town or city | locations.city | Text | - | |
| Region, county or state | locations.region | Text | - | |
| Postcode or ZIP | locations.postcode | Text | - | |
| Country | locations.country_text | Text | - | |
| Latitude | locations.latitude | Number | 0 | |
| Longitude | locations.longitude | Number | 0 | |
| Phone | locations.phone | Text | - | |
locations.email_address | Text | - | ||
| Opening hours | locations.opening_hours | Rich text | - | |
| Category key | locations.category_key | Text | - | |
| Photograph | locations.location_image | Image | - | |
| Note | locations.location_note | Text | - | |
| Detail rows | locations.details | Repeater | repeats | - |
| Icon | locations.details.detail_icon | Icon | - | |
| Text | locations.details.detail_text | Text | - | |
| Link text | locations.link_text | Text | - | |
| Link | locations.link_url | Link | - |
categories| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Key | categories.cat_key | Text | - | |
| Shown as | categories.cat_text | Text | - | |
| Pin colour | categories.cat_color | Colour | - |
search_controls| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show the search box | search_controls.show_search | Toggle | on | |
| Search box placeholder | search_controls.search_placeholder | Text | Town, postcode or store name | |
| Show the category filter | search_controls.show_category_filter | Toggle | on | |
| Category filter — all option | search_controls.category_all_text | Text | All categories | |
| Show the near-me button | search_controls.show_near_me | Toggle | on | |
| Near-me button | search_controls.near_me_text | Text | Use my location | |
| Near-me button while it waits | search_controls.near_me_busy_text | Text | Finding you… | |
| Distance unit | search_controls.distance_unit | Choice | km, mi | km |
| Kilometres shown as | search_controls.distance_km_suffix | Text | km | |
| Miles shown as | search_controls.distance_mi_suffix | Text | mi | |
| Decimal places on a short distance | search_controls.distance_decimals | Number | 1 | |
| Show decimals below | search_controls.distance_decimal_below | Number | 10 | |
| How long to wait for a position | search_controls.geolocation_timeout | Number | 10 | |
| Radius options | search_controls.radii | Repeater | repeats | - |
| Radius | search_controls.radii.radius_value | Number | 10 | |
| Radius picked to begin with | search_controls.default_radius | Number | 25 | |
| Radius picker — no limit option | search_controls.radius_any_text | Text | Any distance | |
| Radius picker description | search_controls.radius_aria_text | Text | Limit results by distance | |
| How many nearest locations to fall back to | search_controls.nearest_count | Number | 3 | |
| Show the clear button | search_controls.show_clear | Toggle | on | |
| Clear button | search_controls.clear_text | Text | Clear | |
| When the browser refuses the location | search_controls.geolocation_denied_text | Text | Location was not shared, so the list is in its usual order. | |
| When the browser has no location to give | search_controls.geolocation_unavailable_text | Text | This browser cannot report a location. | |
| Let a search term be looked up as a place | search_controls.geocode_enabled | Toggle | off | |
| Contact address sent with the lookup | search_controls.geocode_email | Text | - | |
| When the lookup finds nothing | search_controls.geocode_failed_text | Text | That place was not found. | |
| Hint under the search box | search_controls.geocode_hint_text | Text | Press Enter to search by place name. |
labels| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Result count, more than one | labels.results_text | Text | {count} locations | |
| Result count, one | labels.results_one_text | Text | 1 location | |
| Result count when sorted by distance | labels.results_near_text | Text | {count} within {radius}{unit} | |
| No locations added — title | labels.empty_title | Text | No locations yet | |
| No locations added — text | labels.empty_text | Text | Add your first location in the editor and it appears here and on the map. | |
| Nothing matched — title | labels.no_results_title | Text | Nothing matched | |
| Nothing matched — text | labels.no_results_text | Text | Try a shorter search term, a wider radius, or clear the filters. | |
| When nothing is inside the radius | labels.nearest_text | Text | Nothing within {radius}{unit}. The closest is {name}, {distance} away. | |
| Phone label | labels.phone_text | Text | Phone | |
| Email label | labels.email_text | Text | ||
| Opening hours label | labels.hours_text | Text | Hours | |
| Directions link | labels.directions_text | Text | Directions | |
| Section description | labels.region_aria_text | Text | Store locator | |
| List description | labels.list_aria_text | Text | Locations | |
| Map description | labels.map_aria_text | Text | Map of locations | |
| Search box description | labels.search_aria_text | Text | Search locations | |
| Category filter description | labels.category_aria_text | Text | Filter by category | |
| Map pin description | labels.pin_aria_text | Text | Show {name} in the list | |
| Marker group description | labels.cluster_aria_text | Text | Zoom in to the {count} locations grouped here | |
| Card description | labels.card_aria_text | Text | Show {name} on the map | |
| Resize handle description | labels.resize_aria_text | Text | Map height |
map_setup| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Map | map_setup.map_mode | Choice | google, street | street |
| Which basemap | map_setup.tile_preset | Choice | osm, carto_voyager, carto_light, carto_dark, maptiler_streets, maptiler_outdoor, custom | osm |
| Tile provider key | map_setup.tile_key | Text | - | |
| Google Maps API key | map_setup.google_api_key | Text | - | |
| Google map ID | map_setup.google_map_id | Text | - | |
| Google map colours | map_setup.google_style_mode | Choice | google, custom | |
| How the map takes a scroll | map_setup.google_gestures | Choice | cooperative, greedy, none | cooperative |
| Show shops and places Google knows about | map_setup.google_poi | Toggle | off | |
| Tile address | map_setup.tile_url | Text | - | |
| Attribution line | map_setup.tile_attribution | Text | - | |
| Shown while the tile address is empty | map_setup.tile_missing_text | Text | Add a tile address in the module settings to show the street map. | |
| Furthest zoom in | map_setup.street_max_zoom | Number | 19 | |
| Furthest zoom out | map_setup.street_min_zoom | Number | 2 | |
| Starting zoom | map_setup.street_zoom | Number | 6 | |
| Starting latitude | map_setup.street_center_lat | Number | 54.0 | |
| Starting longitude | map_setup.street_center_lng | Number | -2.5 | |
| Frame the map on the locations | map_setup.street_fit_bounds | Toggle | on | |
| Zoom with the scroll wheel | map_setup.scroll_wheel_zoom | Toggle | off | |
| Show the zoom buttons | map_setup.show_zoom_controls | Toggle | on | |
| Group markers that sit on top of each other | map_setup.cluster_enabled | Toggle | on | |
| How close before they group | map_setup.cluster_radius | Number | 56 | |
| Open the details on the map when a card is chosen | map_setup.popup_on_select | Toggle | on | |
| Zoom level when a card is chosen | map_setup.focus_zoom | Number | 16 | |
| How long the map takes to get there | map_setup.focus_duration | Number | 700 |
layout_settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Layout | layout_settings.layout | Choice | list_left, list_right, list_above, map_above, map_only, list_only | list_left |
| List width | layout_settings.list_width | Number | 38 | |
| List columns | layout_settings.list_columns | Number | 1 | |
| Street map height | layout_settings.map_height | Number | 520 | |
| Street map height on small screens | layout_settings.map_height_mobile | Number | 320 | |
| Keep the map in view while the list scrolls | layout_settings.sticky_map | Toggle | on | |
| Gap above the held map | layout_settings.sticky_map_offset | Number | 16 | |
| Height of the held map | layout_settings.sticky_map_height | Number | 300 | |
| Height of the held map on small screens | layout_settings.sticky_map_height_mobile | Number | 220 | |
| Let visitors drag the map taller or shorter | layout_settings.allow_map_resize | Toggle | on | |
| Smallest height a visitor can drag to | layout_settings.resize_min_height | Number | 180 | |
| Largest height a visitor can drag to | layout_settings.resize_max_height | Number | 700 | |
| How far one arrow key press moves it | layout_settings.resize_step | Number | 24 | |
| How long the map takes to change height | layout_settings.map_height_transition | Number | 260 | |
| List height in the side-by-side layouts | layout_settings.list_height_mode | Choice | match_map, fixed, natural | match_map |
| List height in the side-by-side layouts | layout_settings.list_max_height | Number | 560 | |
| Show location photographs | layout_settings.show_images | Toggle | off | |
| Show the detail rows | layout_settings.show_details | Toggle | on | |
| Number the locations | layout_settings.show_index | Toggle | on | |
| Show phone numbers | layout_settings.show_phone | Toggle | on | |
| Show email addresses | layout_settings.show_email | Toggle | off | |
| Show opening hours | layout_settings.show_hours | Toggle | on | |
| Show the category on each card | layout_settings.show_category_chip | Toggle | on | |
| Show a directions link | layout_settings.show_directions | Toggle | on | |
| Directions open in | layout_settings.directions_provider | Choice | google, apple, waze, osm | |
| Wait before filtering | layout_settings.search_debounce | Number | 180 | |
| Most cards shown at once | layout_settings.max_visible | Number | 0 | |
| Small screen breakpoint | layout_settings.mobile_breakpoint | Number | 900 | |
| On small screens | layout_settings.mobile_order | Choice | list_first, map_first | map_first |
| Anchor | layout_settings.region_id | Text | - |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Typography | style.typography | Group | - | |
| Body font | style.typography.base_font | Font | #262626 | |
| Heading font | style.typography.heading_font | Font | #262626 | |
| Key Colours | style.colors | Group | - | |
| Accent | style.colors.accent_color | Colour | #262626 | |
| Link | style.colors.link_color | Colour | - | |
| Section | style.section | Group | - | |
| Section background | style.section.background_color | Colour | #ffffff | |
| Padding top | style.section.padding_top | Number | 64 | |
| Padding bottom | style.section.padding_bottom | Number | 64 | |
| Padding top on small screens | style.section.padding_top_mobile | Number | 40 | |
| Padding bottom on small screens | style.section.padding_bottom_mobile | Number | 40 | |
| Container | style.container | Group | - | |
| Maximum width | style.container.max_width | Number | 1200 | |
| Horizontal padding | style.container.padding_horizontal | Number | 24 | |
| Horizontal padding on small screens | style.container.padding_horizontal_mobile | Number | 16 | |
| Gap between the list and the map | style.container.column_gap | Number | 24 | |
| That gap on small screens | style.container.column_gap_mobile | Number | 16 | |
| Heading, Eyebrow & Subtitle | style.heading_style | Group | - | |
| Eyebrow font | style.heading_style.eyebrow_font | Font | - | |
| Eyebrow colour | style.heading_style.eyebrow_color | Colour | #737373 | |
| Eyebrow size | style.heading_style.eyebrow_font_size | Number | 11 | |
| Eyebrow weight | style.heading_style.eyebrow_font_weight | Choice | 100, 200, 300, 400, 500, 600, 700, 800 | 600 |
| Eyebrow letter spacing | style.heading_style.eyebrow_letter_spacing | Number | 0.08 | |
| Eyebrow case | style.heading_style.eyebrow_text_transform | Choice | none, uppercase, lowercase, capitalize | uppercase |
| Space below the eyebrow | style.heading_style.eyebrow_margin_bottom | Number | 8 | |
| Heading font | style.heading_style.title_font | Font | - | |
| Heading colour | style.heading_style.title_color | Colour | #262626 | |
| Heading size | style.heading_style.title_size | Number | 32 | |
| Heading size on small screens | style.heading_style.title_size_mobile | Number | 24 | |
| Heading weight | style.heading_style.title_weight | Choice | 100, 200, 300, 400, 500, 600, 700, 800 | 600 |
| Heading letter spacing | style.heading_style.title_letter_spacing | Number | -0.02 | |
| Title line height | style.heading_style.title_line_height | Number | 1.15 | |
| Space below the heading | style.heading_style.title_margin_bottom | Number | 10 | |
| Subtitle colour | style.heading_style.subtitle_color | Colour | #525252 | |
| Subtitle size | style.heading_style.subtitle_size | Number | 15 | |
| Subtitle size on small screens | style.heading_style.subtitle_size_mobile | Number | 14 | |
| Subtitle line height | style.heading_style.subtitle_line_height | Number | 1.6 | |
| Subtitle maximum width | style.heading_style.subtitle_max_width | Number | 680 | |
| Space below the whole block | style.heading_style.margin_bottom | Number | 28 | |
| That space on small screens | style.heading_style.margin_bottom_mobile | Number | 20 | |
| Search Controls | style.controls_style | Group | - | |
| Field background | style.controls_style.input_background | Colour | #ffffff | |
| Field border | style.controls_style.input_border | Colour | #d4d4d4 | |
| Field border width | style.controls_style.input_border_width | Number | 1 | |
| Field text | style.controls_style.input_text_color | Colour | #262626 | |
| Placeholder text | style.controls_style.input_placeholder_color | Colour | #a1a1a1 | |
| Field corner radius | style.controls_style.input_radius | Number | 10 | |
| Field height | style.controls_style.input_height | Number | 40 | |
| Field text size | style.controls_style.input_font_size | Number | 14 | |
| Field side padding | style.controls_style.input_padding_h | Number | 12 | |
| Focus ring | style.controls_style.focus_ring_color | Colour | - | |
| Focus ring width | style.controls_style.focus_ring_width | Number | 3 | |
| Space between the controls | style.controls_style.control_gap | Number | 8 | |
| Smallest search box width | style.controls_style.field_min_width | Number | 220 | |
| Smallest picker width | style.controls_style.control_min_width | Number | 170 | |
| Focus ring offset | style.controls_style.focus_ring_offset | Number | 2 | |
| Transition length | style.controls_style.transition_ms | Number | 150 | |
| Button background | style.controls_style.button_background | Colour | - | |
| Button text | style.controls_style.button_text_color | Colour | #fafafa | |
| Button border | style.controls_style.button_border | Colour | - | |
| Button corner radius | style.controls_style.button_radius | Number | 10 | |
| Button text size | style.controls_style.button_font_size | Number | 14 | |
| Button text weight | style.controls_style.button_weight | Choice | 100, 200, 300, 400, 500, 600, 700, 800 | 500 |
| Button side padding | style.controls_style.button_padding_h | Number | 16 | |
| Gap between button icon and label | style.controls_style.button_icon_gap | Number | 6 | |
| Button opacity while busy | style.controls_style.button_disabled_opacity | Number | 60 | |
| Quiet button background | style.controls_style.ghost_background | Colour | #ffffff | |
| Quiet button text | style.controls_style.ghost_text_color | Colour | #262626 | |
| Quiet button border | style.controls_style.ghost_border | Colour | #e5e5e5 | |
| Quiet button on hover | style.controls_style.ghost_hover_background | Colour | #f5f5f5 | |
| Result count colour | style.controls_style.status_color | Colour | #737373 | |
| Result count size | style.controls_style.status_size | Number | 13 | |
| Status line height | style.controls_style.status_line_height | Number | 1.4 | |
| Space below the controls | style.controls_style.controls_margin_bottom | Number | 16 | |
| Space below the result count | style.controls_style.status_margin_bottom | Number | 16 | |
| Dropdown background | style.controls_style.menu_background | Colour | #ffffff | |
| Dropdown border | style.controls_style.menu_border | Colour | #e5e5e5 | |
| Dropdown corner | style.controls_style.menu_radius | Number | 10 | |
| Dropdown shadow | style.controls_style.menu_shadow_color | Colour | #262626 | |
| Dropdown shadow blur | style.controls_style.menu_shadow_blur | Number | 24 | |
| Menu shadow drop | style.controls_style.menu_shadow_y | Number | 8 | |
| Dropdown option text | style.controls_style.menu_text_color | Colour | #262626 | |
| Dropdown option hover | style.controls_style.menu_hover_background | Colour | #fafafa | |
| Dropdown option chosen | style.controls_style.menu_selected_background | Colour | #f5f5f5 | |
| Dropdown option size | style.controls_style.menu_option_size | Number | 14 | |
| Dropdown height before it scrolls | style.controls_style.menu_max_height | Number | 280 | |
| Gap between picker and menu | style.controls_style.menu_offset | Number | 6 | |
| Menu inner padding | style.controls_style.menu_padding | Number | 4 | |
| Menu option padding, top and bottom | style.controls_style.menu_option_padding_v | Number | 8 | |
| Menu option padding, left and right | style.controls_style.menu_option_padding_h | Number | 10 | |
| Gap inside a menu option | style.controls_style.menu_option_gap | Number | 8 | |
| Category dot size in the menu | style.controls_style.menu_dot_size | Number | 8 | |
| Controls fill the width on small screens | style.controls_style.controls_full_width_mobile | Toggle | on | |
| Location Cards | style.card_style | Group | - | |
| Card background | style.card_style.card_background | Colour | #ffffff | |
| Card border | style.card_style.card_border | Colour | #e5e5e5 | |
| Card border width | style.card_style.card_border_width | Number | 0 | |
| Card corner radius | style.card_style.card_radius | Number | 10 | |
| Card padding | style.card_style.card_padding | Number | 16 | |
| Card padding on small screens | style.card_style.card_padding_mobile | Number | 14 | |
| Space between the cards | style.card_style.card_gap | Number | 8 | |
| Gap between name and distance | style.card_style.cardhead_gap | Number | 10 | |
| Card on hover | style.card_style.card_hover_background | Colour | #fafafa | |
| Card when it is the one on the map | style.card_style.card_active_background | Colour | #f5f5f5 | |
| Accent on the active card | style.card_style.card_accent_bar | Toggle | on | |
| Which edge the accent sits on | style.card_style.card_accent_side | Choice | top, right, bottom, left | left |
| Active card accent colour | style.card_style.card_accent_color | Colour | - | |
| Active card accent width | style.card_style.card_accent_width | Number | 2 | |
| Card shadow | style.card_style.card_shadow_color | Colour | #0a0a0a | |
| Card shadow blur | style.card_style.card_shadow_blur | Number | 8 | |
| Card shadow drop | style.card_style.card_shadow_y | Number | 2 | |
| Card shadow spread | style.card_style.card_shadow_spread | Number | 0 | |
| Photograph position | style.card_style.image_position | Choice | left, right, top | left |
| Photograph width | style.card_style.image_width | Number | 72 | |
| Photograph corner radius | style.card_style.image_radius | Number | 8 | |
| Photograph shape | style.card_style.image_ratio | Choice | 1 / 1, 4 / 3, 3 / 4, 16 / 9 | 1 / 1 |
| Number background | style.card_style.index_background | Colour | #f5f5f5 | |
| Number text | style.card_style.index_text_color | Colour | #525252 | |
| Number size | style.card_style.index_size | Number | 11 | |
| Number box size | style.card_style.index_box | Number | 22 | |
| Number corner radius | style.card_style.index_radius | Number | 6 | |
| Number weight | style.card_style.index_weight | Choice | 100, 200, 300, 400, 500, 600, 700, 800 | 600 |
| Category chip background | style.card_style.chip_background | Colour | #f5f5f5 | |
| Category chip text | style.card_style.chip_text_color | Colour | - | |
| Category chip size | style.card_style.chip_size | Number | 11 | |
| Category chip corner radius | style.card_style.chip_radius | Number | 6 | |
| Category chip padding, top and bottom | style.card_style.chip_padding_v | Number | 3 | |
| Category chip padding, left and right | style.card_style.chip_padding_h | Number | 8 | |
| Category chip line height | style.card_style.chip_line_height | Number | 1.3 | |
| List scrollbar | style.card_style.scrollbar_color | Colour | #d4d4d4 | |
| List scrollbar width | style.card_style.scrollbar_width | Number | 8 | |
| Gap between rows of card links | style.card_style.links_gap_row | Number | 4 | |
| Gap between card links | style.card_style.links_gap_col | Number | 14 | |
| Scrolling List | style.list_style | Group | - | |
| Room for card shadows | style.list_style.scroll_gutter | Number | 16 | |
| Fade the list where it carries on | style.list_style.scroll_fade | Toggle | on | |
| Fade height | style.list_style.scroll_fade_height | Number | 40 | |
| Fade colour | style.list_style.scroll_fade_color | Colour | #ffffff | |
| Border round the scrolling list | style.list_style.scroll_border | Toggle | off | |
| Scrolling list border colour | style.list_style.scroll_border_color | Colour | #e5e5e5 | |
| Scrolling list border width | style.list_style.scroll_border_width | Number | 1 | |
| Scrolling list corner radius | style.list_style.scroll_border_radius | Number | 10 | |
| Card Text | style.card_text | Group | - | |
| Location name colour | style.card_text.name_color | Colour | #262626 | |
| Location name size | style.card_text.name_size | Number | 15 | |
| Location name weight | style.card_text.name_weight | Choice | 100, 200, 300, 400, 500, 600, 700, 800 | 600 |
| Location name line height | style.card_text.name_line_height | Number | 1.3 | |
| Address and details colour | style.card_text.meta_color | Colour | #525252 | |
| Address and details size | style.card_text.meta_size | Number | 13 | |
| Address line height | style.card_text.meta_line_height | Number | 1.6 | |
| Note colour | style.card_text.note_color | Colour | #737373 | |
| Note size | style.card_text.note_size | Number | 12 | |
| Note line height | style.card_text.note_line_height | Number | 1.5 | |
| Distance colour | style.card_text.distance_color | Colour | #737373 | |
| Distance size | style.card_text.distance_size | Number | 12 | |
| Small labels colour | style.card_text.small_label_color | Colour | #a1a1a1 | |
| Small labels size | style.card_text.small_label_size | Number | 11 | |
| Small label line height | style.card_text.small_label_line_height | Number | 1.4 | |
| Space between the lines | style.card_text.text_gap | Number | 6 | |
| Card Detail Rows | style.detail_style | Group | - | |
| Icon colour | style.detail_style.detail_icon_color | Colour | #737373 | |
| Icon size | style.detail_style.detail_icon_size | Number | 14 | |
| Gap between the icon and the text | style.detail_style.detail_icon_gap | Number | 8 | |
| Gap between rows | style.detail_style.detail_row_gap | Number | 6 | |
| Gap above the rows | style.detail_style.detail_margin_top | Number | 2 | |
| Text colour | style.detail_style.detail_text_color | Colour | #525252 | |
| Text size | style.detail_style.detail_text_size | Number | 13 | |
| Text line height | style.detail_style.detail_text_line_height | Number | 1.5 | |
| Icon nudge down | style.detail_style.detail_icon_offset | Number | 1 | |
| Map | style.map_style | Group | - | |
| Map background | style.map_style.map_background | Colour | #ffffff | |
| Map border | style.map_style.map_border | Colour | #e5e5e5 | |
| Map border width | style.map_style.map_border_width | Number | 1 | |
| Map corner radius | style.map_style.map_radius | Number | 10 | |
| Padding inside the map frame | style.map_style.map_padding | Number | 0 | |
| Pin shape | style.map_style.pin_shape | Choice | pin, dot | pin |
| Pin | style.map_style.pin_color | Colour | #262626 | |
| Pin when it is the one selected | style.map_style.pin_active_color | Colour | - | |
| Pin outline | style.map_style.pin_stroke_color | Colour | #ffffff | |
| Pin outline width | style.map_style.pin_stroke_width | Number | 2 | |
| Pin size | style.map_style.pin_size | Number | 18 | |
| How far a pin lifts | style.map_style.pin_hover_lift | Number | 6 | |
| Number on the pin | style.map_style.pin_number_color | Colour | #ffffff | |
| Number on the pin — size | style.map_style.pin_number_size | Number | 10 | |
| Pin number weight | style.map_style.pin_number_weight | Choice | 100, 200, 300, 400, 500, 600, 700, 800 | 700 |
| Pin size on hover | style.map_style.pin_hover_scale | Number | 1.15 | |
| Pin size when chosen | style.map_style.pin_active_scale | Number | 1.25 | |
| Street map tint | style.map_style.tile_filter | Choice | none, grayscale, muted | none |
| Grey strength | style.map_style.tile_grayscale | Number | 100 | |
| Muted grey strength | style.map_style.tile_muted_grayscale | Number | 55 | |
| Muted colour strength | style.map_style.tile_muted_saturate | Number | 85 | |
| Attribution text | style.map_style.attribution_color | Colour | #a1a1a1 | |
| Attribution size | style.map_style.attribution_size | Number | 11 | |
| Margin kept when the map frames itself | style.map_style.fit_padding | Number | 40 | |
| Google map — land | style.map_style.g_land | Colour | #f5f5f5 | |
| Google map — water | style.map_style.g_water | Colour | #e5e5e5 | |
| Google map — roads | style.map_style.g_road | Colour | #ffffff | |
| Google map — road edges | style.map_style.g_road_stroke | Colour | #e5e5e5 | |
| Google map — place names | style.map_style.g_label | Colour | #737373 | |
| Google map — place name backing | style.map_style.g_label_halo | Colour | #ffffff | |
| Zoom button background | style.map_style.zoom_btn_background | Colour | #ffffff | |
| Zoom button symbol | style.map_style.zoom_btn_color | Colour | #262626 | |
| Zoom button border | style.map_style.zoom_btn_border | Colour | #e5e5e5 | |
| Zoom button on hover | style.map_style.zoom_btn_hover_background | Colour | #f5f5f5 | |
| Zoom button when it cannot go further | style.map_style.zoom_btn_disabled_color | Colour | #a1a1a1 | |
| Zoom button shadow | style.map_style.zoom_btn_shadow_color | Colour | #000000 | |
| Zoom button size | style.map_style.zoom_btn_size | Number | 30 | |
| Zoom button corner radius | style.map_style.zoom_btn_radius | Number | 8 | |
| Zoom button distance from the edge | style.map_style.zoom_btn_gap | Number | 10 | |
| Resize handle background | style.map_style.resize_handle_background | Colour | #ffffff | |
| Resize handle border | style.map_style.resize_handle_border | Colour | #e5e5e5 | |
| Resize handle grip | style.map_style.resize_handle_grip | Colour | #a1a1a1 | |
| Resize handle grip, pointer over it | style.map_style.resize_handle_grip_hover | Colour | #525252 | |
| Resize handle height | style.map_style.resize_handle_height | Number | 16 | |
| Resize handle corner radius | style.map_style.resize_handle_radius | Number | 8 | |
| Resize handle grip width | style.map_style.resize_handle_grip_width | Number | 40 | |
| Resize handle grip thickness | style.map_style.resize_handle_grip_thickness | Number | 2 | |
| Gap between the map and the handle | style.map_style.resize_handle_gap | Number | 6 | |
| Marker Groups | style.cluster_style | Group | - | |
| Group background | style.cluster_style.cluster_background | Colour | #262626 | |
| Group text | style.cluster_style.cluster_text_color | Colour | #fafafa | |
| Group outline | style.cluster_style.cluster_border | Colour | #ffffff | |
| Group outline width | style.cluster_style.cluster_border_width | Number | 2 | |
| Group size | style.cluster_style.cluster_size | Number | 34 | |
| Group corner radius | style.cluster_style.cluster_radius | Number | 17 | |
| Group text size | style.cluster_style.cluster_font_size | Number | 12 | |
| Marker group weight | style.cluster_style.cluster_weight | Choice | 100, 200, 300, 400, 500, 600, 700, 800 | 600 |
| Map Bubble | style.popup_style | Group | - | |
| Bubble background | style.popup_style.popup_background | Colour | #ffffff | |
| Bubble text | style.popup_style.popup_text_color | Colour | #262626 | |
| Bubble border | style.popup_style.popup_border | Colour | #e5e5e5 | |
| Bubble corner radius | style.popup_style.popup_radius | Number | 10 | |
| Bubble text size | style.popup_style.popup_size | Number | 13 | |
| Bubble line height | style.popup_style.popup_line_height | Number | 1.5 | |
| Bubble width | style.popup_style.popup_width | Number | 230 | |
| Bubble padding | style.popup_style.popup_padding | Number | 12 | |
| Bubble tip size | style.popup_style.popup_tip_size | Number | 12 | |
| Gap under the bubble title | style.popup_style.popup_title_margin_bottom | Number | 4 | |
| Room kept for the close button | style.popup_style.popup_close_gutter | Number | 34 | |
| Empty and No-Result States | style.empty_style | Group | - | |
| Background | style.empty_style.empty_background | Colour | #fafafa | |
| Border | style.empty_style.empty_border | Colour | #e5e5e5 | |
| Border width | style.empty_style.empty_border_width | Number | 1 | |
| Corner radius | style.empty_style.empty_radius | Number | 10 | |
| Padding | style.empty_style.empty_padding | Number | 32 | |
| Title colour | style.empty_style.empty_title_color | Colour | #262626 | |
| Title size | style.empty_style.empty_title_size | Number | 16 | |
| Message title weight | style.empty_style.empty_title_weight | Choice | 100, 200, 300, 400, 500, 600, 700, 800 | 600 |
| Gap under the message title | style.empty_style.empty_title_margin_bottom | Number | 6 | |
| Text colour | style.empty_style.empty_text_color | Colour | #737373 | |
| Text size | style.empty_style.empty_text_size | Number | 14 | |
| Message line height | style.empty_style.empty_text_line_height | Number | 1.6 |
Site chrome. These render in the header and footer partials, not in the page body.
Share buttons for the current page. Facebook, X, LinkedIn and email, each switched on separately.
{% module 'd40_social_media_sharing_1'
path='../../modules/Social media sharing.module',
facebook={
'enabled': True
},
twitter={
'enabled': True
},
linkedin={
'enabled': True
},
email={
'enabled': True
},
alignment='center',
settings={
'size': 40,
'space_between_icons': 12
}
%}Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Alignment | alignment | Choice | left, center, right | - |
facebook| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Enabled? | facebook.enabled | Toggle | off | |
| Link | facebook.custom_link_format | Text | http://www.facebook.com/share.php?u= |
twitter| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Enabled? | twitter.enabled | Toggle | off | |
| Link | twitter.custom_link_format | Text | https://twitter.com/intent/tweet?original_referer=&url=&source=tweetbutton&text= |
linkedin| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Enabled? | linkedin.enabled | Toggle | off | |
| Link | linkedin.custom_link_format | Text | http://www.linkedin.com/shareArticle?mini=true&url= |
email| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Enabled? | email.enabled | Toggle | off | |
| Link | email.custom_link_format | Text | mailto:?subject=Check out &body=Check out |
settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Icon size | settings.size | Number | 50 | |
| Space between icons | settings.space_between_icons | Number | 20 |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
Modules that build docs sites, and the wrapper that restyles the section around it.
A complete documentation site in one module: a category sidebar with search, article bodies, a table of contents generated from the headings, previous and next links, and a was-this-helpful control.
Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
63 fields across 9 groups - the groups below are collapsed. Click a group to open it.
settings| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Documentation Title | settings.docs_title | Text | Docs | |
| Default Article Slug | settings.default_article | Text | - |
getting_started| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show a getting started page | getting_started.enable | Toggle | on | |
| URL slug | getting_started.slug | Text | getting-started | |
| Sidebar label | getting_started.nav_label | Text | Getting started | |
| Sidebar group heading | getting_started.group_label | Text | Start here | |
| Page title | getting_started.gs_title | Text | Getting started | |
| Standfirst | getting_started.description | Text | Install the theme, set it up once, and build the first page. | |
| Opening copy | getting_started.intro | Rich text | - | |
| Steps | getting_started.steps | Repeater | repeats | - |
| Step title | getting_started.steps.step_title | Text | Upload the theme | |
| Step body | getting_started.steps.step_body | Rich text | <p>Describe the step.</p> | |
| Command or snippet | getting_started.steps.step_code | Text | - | |
| Next steps heading | getting_started.next_title | Text | Where to go next | |
| Next steps | getting_started.next_links | Repeater | repeats | - |
| Label | getting_started.next_links.next_label | Text | Theme settings | |
| Article slug | getting_started.next_links.next_slug | Text | - | |
| Note | getting_started.next_links.next_note | Text | - |
demos| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Mount live module demos | demos.enable | Toggle | on | |
| Stage bank selector | demos.bank_selector | Text | [data-docs-stage-bank] | |
| Show the width and corner controls | demos.show_controls | Toggle | on | |
| Full width label | demos.label_full | Text | Full width | |
| Contained label | demos.label_contained | Text | Contained | |
| Rounded label | demos.label_rounded | Text | Rounded | |
| Square label | demos.label_square | Text | Square | |
| Code toggle label | demos.label_code | Text | HubL for this variation | |
| Missing stage message | demos.label_missing | Text | This demo is not on the page yet. |
sidebar| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show Sidebar | sidebar.enable | Toggle | on | |
| Logo | sidebar.logo | Image | - | |
| Logo Link | sidebar.logo_link | Link | - | |
| Navigation Mode | sidebar.mode | Choice | nested, flat | nested |
| Show Search | sidebar.search | Toggle | on | |
| Search Placeholder | sidebar.search_placeholder | Text | Search docs... | |
| Categories | sidebar.categories | Repeater | repeats | - |
| Category Title | sidebar.categories.cat_title | Text | Category | |
| Icon Name | sidebar.categories.icon | Text | folder | |
| Expanded by Default | sidebar.categories.expanded_default | Toggle | on | |
| Articles | sidebar.categories.articles | Repeater | repeats | - |
| Article Title | sidebar.categories.articles.article_title | Text | Article | |
| URL Slug | sidebar.categories.articles.slug | Text | article | |
| Brief Description | sidebar.categories.articles.article_description | Text | - | |
| Article Content | sidebar.categories.articles.article_content | Rich text | <h2>Overview</h2><p>Article content goes here.</p> | |
| Badge | sidebar.categories.articles.badge | Text | - | |
| Last Updated | sidebar.categories.articles.last_updated | Text | - | |
| Subcategories | sidebar.categories.subcategories | Repeater | repeats | - |
| Subcategory Title | sidebar.categories.subcategories.sub_title | Text | Subcategory | |
| Articles | sidebar.categories.subcategories.articles | Repeater | repeats | - |
| Article Title | sidebar.categories.subcategories.articles.article_title | Text | Article | |
| URL Slug | sidebar.categories.subcategories.articles.slug | Text | article | |
| Brief Description | sidebar.categories.subcategories.articles.article_description | Text | - | |
| Article Content | sidebar.categories.subcategories.articles.article_content | Rich text | <h2>Overview</h2><p>Article content goes here.</p> | |
| Badge | sidebar.categories.subcategories.articles.badge | Text | - | |
| Last Updated | sidebar.categories.subcategories.articles.last_updated | Text | - |
toc| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show Table of Contents | toc.enable | Toggle | on | |
| TOC Title | toc.toc_title | Text | On this page | |
| Heading Levels | toc.levels | Choice | h2, h2h3, h2h3h4 | h2h3 |
pagination| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show Previous/Next Links | pagination.enable | Toggle | on |
feedback| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Show Feedback Prompt | feedback.enable | Toggle | on | |
| Feedback Title | feedback.feedback_title | Text | Was this page helpful? |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Sidebar Width | style.sidebar_width | Choice | narrow, default, wide | default |
| TOC Width | style.toc_width | Choice | narrow, default, wide | default |
| Content Max Width | style.content_max_width | Choice | narrow, default, wide | default |
| Sticky Sidebar & TOC | style.sticky_nav | Toggle | on | |
| Demo frame padding | style.demo_frame_padding | Number | 20 | |
| Demo frame corners | style.demo_frame_radius | Choice | none, sm, md, lg, xl | md |
| Contained demo width | style.demo_contained_width | Number | 880 | |
| Space around a demo | style.demo_gap | Number | 40 |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |
A utility that restyles the drag-and-drop section it is dropped into: background, padding, container width, corner radius, shadow and the seam between this section and the next.
Generated from this module fields.json, grouped the way the page editor groups them. The tab column tells you whether the group sits under Content or Style in the sidebar.
| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Anchor ID | anchor | Text | - |
background| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Background Type | background.type | Choice | none, color, gradient, image | none |
| Background Color | background.color | Colour | #ffffff | |
| Gradient Start | background.gradient_start | Colour | #262626 | |
| Gradient End | background.gradient_end | Colour | #8B5CF6 | |
| Gradient Angle | background.gradient_angle | Number | 135 | |
| Background Image | background.image | Image | - | |
| Overlay Opacity (%) | background.overlay_opacity | Number | 50 |
spacing| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Padding Top | spacing.padding_top | Choice | none, sm, md, lg, xl, 2xl, 3xl | lg |
| Padding Bottom | spacing.padding_bottom | Choice | none, sm, md, lg, xl, 2xl, 3xl | lg |
style| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Section seam | style.seam | Choice | auto, bond, step, chapter, flush | auto |
| Border Radius | style.border_radius | Choice | none, sm, md, lg, xl, 2xl | none |
| Shadow | style.shadow | Choice | none, sm, md, lg | none |
| Text Color Scheme | style.text_color | Choice | auto, light, dark | auto |
container| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Max Width | container.max_width | Choice | full, container, narrow, wide | container |
| Content Alignment | container.align | Choice | left, center, right | center |
mp_theme| Field | Name | Type | Options | Default |
|---|---|---|---|---|
| Accent colour | mp_theme.mp_module_accent | Colour | #171717 | |
| Base font | mp_theme.mp_module_font | Font | #262626 |