Skip to content

Marketing and interaction sections

This chapter covers sections that drive engagement, capture leads, and create promotional moments. Less narrative than the hero/storytelling sections (chapter 6), more interactive than the product sections (chapter 7).

A thin strip at the top of every page for site-wide announcements (“Free shipping over €50”, “Sale ends Friday”). Lives in the header group, renders above the main header section. Add as many message blocks as you want — in static mode they sit side-by-side; in marquee mode they scroll continuously.

SettingWhat it does
🔧 Display modeStatic (messages sit side-by-side) or Marquee (✅ default — messages scroll horizontally like an LED ticker).
🔧 Marquee directionVisible in marquee mode. Left-to-right or Right-to-left (✅ default ltr).
🔧 Marquee speedRange 10–60s, step 5. ✅ Default 30s. Seconds for one full loop — higher = slower, not faster. (Tip: think of it as “duration”, not “speed”.)
🔧 Enable edge fade✅ Default on. Fade the marquee edges to transparent so messages appear from / disappear into the sides instead of hard-cutting.
🔧 Fade widthRange 0–25%, step 1. ✅ Default 6%. Visible when edge fade is on. Width of the fade gradient as a percentage of the bar.

Standard v7 chrome. See chapter §2 and §3 for the canonical descriptions.

message only.

  • One message, static — simple banner (“Free shipping over €50”)
  • 2–3 messages, marquee, left-to-right — rotating promo strip (“Sale 30% off” → “Free returns” → “Fast delivery”)
  • Holiday banner — single static message wrapped in a Liquid date-check so it auto-deactivates after the date

Each block is one piece of content. In static mode all blocks render side-by-side; in marquee mode they’re concatenated into the scrolling track.

Content:

SettingWhat it does
🔧 TextThe message (supports Liquid for dynamic values)
🔧 LinkOptional URL — clicking the message navigates

Icon (left of text):

SettingWhat it does
🔧 Library iconPick from the built-in set: arrow-right / chevron-right / star / heart / check / info / alert / clock / mail / phone / map-pin / calendar / globe / external-link. Use “None” to skip the library and use a custom icon instead.
🔧 Custom iconUpload your own icon (PNG / SVG). Overrides the library icon when set.
🔧 Recolor custom iconMask-paint the custom icon with currentColor — single-color SVG / PNG only. Useful for SVG icons that should follow the message text color.
🔧 Icon colorPick a color explicitly; leave blank to inherit from text.
🔧 Icon-to-text spacingGap between icon and text (0–24 px).
🔧 Icon positionLeft of text / Right of text — only available when the second icon (below) is OFF.

Second icon (right side):

SettingWhat it does
🔧 Enable second iconMaster toggle. Off by default. When on, you can show a second icon on the right side of the message (e.g., arrow on the right to imply “click for more”).
🔧 Second library icon / Custom icon / Recolor / Color / SpacingSame settings as the primary icon, but for the right-side slot.

Text style:

SettingWhat it does
🔧 FontDefault (body) / Body / Subheading / Heading / Accent — which of the 4 theme font roles to use
🔧 BoldForce font-weight: 700
🔧 ItalicForce font-style: italic

10.2 Scrolling Text / Marquee (scrolling-text)

Section titled “10.2 Scrolling Text / Marquee (scrolling-text)”

A horizontally-scrolling marquee — like a digital LED ticker. Used for “AS SEEN IN” press strips, brand value-prop rotations, fashion-week-style scrolling text strips. The actual text content lives on text blocks dropped inside the section; the section controls the marquee motion.

SettingWhat it does
🔧 SpeedRange 10–60s, step 5. ✅ Default 30s. Seconds for one full marquee loop — higher = slower.
🔧 DirectionLeft (✅ default) or Right — direction of scroll.
🔧 SeparatorFree text. ✅ Default (bullet). Inserted between repeated text instances in the marquee track.
🔧 Font sizeRange 12–48px, step 2. ✅ Default 16px.
🔧 Enable edge fade✅ Default on.
🔧 Fade widthRange 0–25%, step 1. ✅ Default 6%. Visible when edge fade is on.

Standard v7 chrome.

text only.

The text content (including font role + bold/italic styling + color override) is configured on each text block. The text repeats internally for seamless looping (the standard marquee duplication pattern).

✅ Use sparingly — one well-placed scrolling text adds energy; multiple feel cluttered.

A logo-strip showing brand partnerships, press features, certifications. The section is a thin @theme wrapper — the auto-scroll mechanics, logo styling, and slide composition live on the slider BLOCK (the rotation engine) and brand BLOCKS (individual logos) inside.

SettingWhat it does
🔧 Content gapRange 0–80px, step 4. ✅ Default 24px. Gap between stacked blocks inside the section.

Standard v7 chrome.

slider (the rotation engine — controls auto-scroll, speed, default logo height) · heading · text · button · image · video · icon · group · spacer · divider · recently-viewed-grid · wishlist-grid

The slider block in turn accepts brand child blocks (one per logo) — see §10.14.2 for the brand block reference and §5a.9 for the slider block.

  • “As seen in” press strip — 5–8 brand logos with greyscale recolor
  • Partner row — 4–6 partner logos with hover-tint
  • Certification badges — Trustpilot, BBB, eco-certifications

A standalone newsletter signup section. Wider and more attention-grabbing than the footer newsletter form. The section is a thin @theme wrapper — heading, description, form, and disclaimer are all composed from blocks.

SettingWhat it does
🔧 Content alignmentLeft / Center (✅ default) / Right.
🔧 Content widthRange 400–1200px, step 20. ✅ Default 600px. Max width of the content column.
🔧 Content gapRange 0–64px, step 2. ✅ Default 16px.

Standard v7 chrome.

newsletter-form · heading · text · button · image · video · icon · group · spacer · divider · recently-viewed-grid · wishlist-grid

The newsletter-form block carries the input + submit button + layout (inline / stacked) + success message settings — see §10.14.3. Wrap with heading + text blocks for the section title and value-prop; add a text block below for the privacy disclaimer.

✅ Best as a dedicated section on the home page or a “subscribe” page. The footer newsletter is for visitors who want to subscribe at the end of the journey; this section is for prominent placement.

A carousel or grid of customer testimonials. The section is a thin @theme wrapper — the carousel/grid mechanics and per-testimonial cards live on the testimonial-list BLOCK (which itself contains testimonial child blocks).

SettingWhat it does
🔧 Content alignmentLeft / Center (✅ default) / Right.
🔧 Content gapRange 0–80px, step 4. ✅ Default 32px.
🔧 Side padding (section_padding_x)Range 0–80px, step 4. ✅ Default 24px. Horizontal inner padding.

Standard v7 chrome.

testimonial-list (the carousel/grid engine) · heading · text · button · image · video · icon · group · spacer · divider · recently-viewed-grid · wishlist-grid

All testimonial-display settings (carousel vs grid / columns / arrows / dots / card surface / quotation style / autoplay) live on the testimonial-list block — see §10.14.4.

10.6 Countdown (countdown + countdown-timer block)

Section titled “10.6 Countdown (countdown + countdown-timer block)”

A countdown timer to a target date/time. Used for sale-ends-in, flash-sale urgency, product-launch hype. The Countdown section is an @theme container — the actual timer lives in a countdown-timer block, and you compose the section with a heading + timer + CTA button + text in any order.

The Countdown section is a thin @theme container — the timer-specific settings live on the timer block (next subsection).

SettingWhat it does
🔧 Max widthRange 400–1200px, step 20. ✅ Default 800px.
🔧 Content gapRange 0–80px, step 4. ✅ Default 24px.
🔧 Content alignmentLeft / Center (✅ default) / Right. Drives --ne-bw-justify for button-blocks too.

Standard v7 chrome.

Countdown-timer block settings (countdown-timer)

Section titled “Countdown-timer block settings (countdown-timer)”

The timer is a block you drop into the Countdown section (or any @theme container that allows it). Has its own surface + scheme settings so the digit-cards can have a different look than the surrounding section.

Target date/time (5 dropdowns):

SettingWhat it does
🔧 Target year2025 – 2030
🔧 Target month01 – 12
🔧 Target day01 – 31 (Hyprism auto-clamps invalid combos like Feb 31 → Feb 28/29, see Day-clamping below)
🔧 Target hour00 – 23 (24-hour clock)
🔧 Target minute00 / 05 / 10 / 15 / 20 / 25 / 30 / 35 / 40 / 45 / 50 / 55 / 59
🔧 Expired messageCustom text shown after the target moment passes. ✅ Default: “This event has ended”.

Digit appearance:

SettingWhat it does
🔧 Digit fontBody / Subheading / Heading / Accent — picks one of the 4 theme typography roles for the numerals. ✅ Default: Heading.
🔧 Digit surfaceSolid (scheme bg) / Transparent (no card) / Glass (blur + tint)
🔧 Tint glass with accentWhen digit-surface = glass, tints the glass with the scheme accent for a branded look
🔧 Digit radiusRange 0–32px, step 2. ✅ Default 12px. Corner radius of each digit card.
🔧 Drop shadowAdds a soft shadow under each digit card
🔧 Accent glowAdds the accent-colored glow around each digit card

Color scheme (per-block override):

SettingWhat it does
🔧 Custom color schemeMaster toggle. When on, the timer uses its own scheme instead of inheriting from the parent section.
🔧 Color scheme(Single-mode) The scheme to apply when Custom color scheme = on and dark/light pair is off
🔧 Color scheme (dark) / (light)(Pair-mode) Separate schemes for dark and light states when the theme-wide dark/light pair is active

The day dropdown lets visitors set Feb 31 or Apr 31 (invalid dates). Hyprism’s Liquid auto-clamps these on the server-side ISO-string build:

  • Feb 31 → Feb 28 (or Feb 29 if leap year)
  • Apr 31 → Apr 30
  • Jun 31 → Jun 30
  • Sep 31 → Sep 30
  • Nov 31 → Nov 30

The dropdown display still shows the user’s chosen value (Shopify can’t write-back to settings from Liquid), but the actual countdown calculation uses the clamped valid date. No broken timers ever, even with sloppy date input.

Countdown section (color scheme: accent-themed, glass)
├─ Heading block ("Sale ends in")
├─ Countdown-timer block (digit-surface: solid, digit-radius: 16)
├─ Text block ("Use code SAVE20 at checkout")
└─ Button block ("Shop the sale") — primary, full-width-on-mobile
Countdown section (transparent, no chrome)
├─ Countdown-timer block (digit-surface: glass, tinted with accent, glow on)

A horizontal tabbed content area. Tabs at the top, content panel below.

SettingWhat it does
🔧 Max widthRange 400–1400px, step 50. ✅ Default 900px.
🔧 Gap between tabs and contentRange 0–80px, step 4. ✅ Default 24px.
🔧 Tab styleUnderline (✅ default) / Button / Pill / Minimal.
🔧 Tab alignmentLeft (✅ default) / Center / Right.
🔧 Gap between tab buttonsRange 0–32px, step 2. ✅ Default 4px.

Standard v7 chrome.

tab · heading · text · button · group · image · icon · divider · spacer

Each tab block becomes one tab button at the top + one content panel. Per-tab icon and title are on the tab block. There is no “default open tab” setting at section level — the first tab block opens by default.

✅ Used for: FAQ-style sections, product specs broken down by category, comparison grids.

10.8 Collapsible Content / Accordion (collapsible-content)

Section titled “10.8 Collapsible Content / Accordion (collapsible-content)”

A stacked accordion (multiple expandable rows). Perfect for FAQ, terms, return policy, shipping info. The section is a thin @theme wrapper — all item-level settings (icon, surface, schemes, header/content separation) live on the accordion-item BLOCK.

SettingWhat it does
🔧 Content widthRange 400–1200px, step 40. ✅ Default 800px.
🔧 Gap between itemsRange 0–40px, step 2. ✅ Default 8px.
🔧 Item corner radiusRange 0–24px, step 2. ✅ Default 8px. Applied to each accordion-item card.

Standard v7 chrome.

accordion-item · heading · text · button · group · image · icon · divider · spacer

All per-item settings (heading text, content, initial-open state, icon picker, custom icon, item surface, separate header/content schemes, connected/separate visual mode) are on the accordion-item block — covered in Phase 3 block audit.

If Theme settings → SEO/GEO → FAQ schema is on (✅ default on — see §1.15), the Collapsible Content section emits an FAQPage JSON-LD schema, built client-side from the rendered accordion items. Note: Google now shows the FAQ rich-result only for authoritative health/government sites, but the markup stays valid and helps AI-search engines understand your FAQs.

A modal overlay that triggers based on visitor behaviour (timer, exit-intent, scroll-threshold). Used for newsletter capture, age verification, special offers. Renders as a native <dialog> element body-mounted at runtime so it always sits in the top layer regardless of where the section is placed on the page.

SettingWhat it does
🔧 Enable popup✅ Default on. Master kill-switch — turn off to suppress this popup instance without removing the section.
🔧 Trigger typeDelay (✅ default — open after N seconds) / Scroll (open at % page scrolled) / Exit (open on mouse-leave at top of viewport — desktop only).
🔧 Trigger delayRange 0–60s, step 1. ✅ Default 5s. Visible for the Delay trigger.
🔧 Scroll thresholdRange 10–200%, step 10. ✅ Default 50%. Visible for the Scroll trigger. Values above 100% are allowed because some pages are very long and trigger should fire after the visitor has scrolled into a specific deep section.
🔧 FrequencyAlways (show every page-load) / Once (✅ default — lifetime) / Daily / Weekly. State is stored in localStorage.
SettingWhat it does
🔧 Max widthRange 280–800px, step 20. ✅ Default 500px.
🔧 Inner paddingRange 12–64px, step 2. ✅ Default 32px.
🔧 Gap between blocksRange 0–48px, step 4. ✅ Default 16px.
🔧 Content alignmentLeft / Center (✅ default) / Right. Drives --ne-bw-justify for nested button-blocks too.
🔧 Border radiusRange 0–32px, step 2. ✅ Default 12px.
🔧 Backdrop blurRange 0–24px, step 1. ✅ Default 6px.
SettingWhat it does
🔧 Transparent backgroundDrops the solid scheme background, useful when the popup card has its own image.
🔧 GlassmorphismGlass surface for the popup card.
🔧 Tint glass with accentWhen glass is on, tints with the scheme accent.
🔧 Accent glow / Drop shadowSurface effects (see §2 Foundation).
🔧 Color scheme + dark/light pairPer-section scheme override.
🔧 Hide on mobile / desktopVisibility.

Block container — drop in heading + image + text + button + form (for newsletter capture) blocks. Close-on-Escape and close-on-backdrop-click are built into the native <dialog> and always on (Shopify Theme Store accessibility requirement); the close button at top-right is always rendered.

The dismissed state is stored in a per-section localStorage key so the visitor doesn’t see it again until the frequency window expires.

⚠️ Use sparingly. Aggressive popups (exit-intent + immediate delay) frustrate visitors. Best practice: one popup per session, with a clear value proposition.

10.10 Before-After Comparison (before-after)

Section titled “10.10 Before-After Comparison (before-after)”

An interactive image-comparison slider. Drag a handle to reveal more of one image vs. the other. Classic “before” / “after” or “with” / “without” comparisons. The section is a thin @theme wrapper — the actual comparison mechanism lives on the before-after-comparison BLOCK.

SettingWhat it does
🔧 Max widthRange 400–1400px, step 20. ✅ Default 1000px.
🔧 Content gapRange 0–80px, step 4. ✅ Default 24px.
🔧 Content alignmentLeft / Center (✅ default) / Right.

Standard v7 chrome.

before-after-comparison · heading · text · button · group · image · icon · divider · spacer

For multiple comparisons in one section, add multiple before-after-comparison blocks. Before/After images, labels, handle style, start position, divider settings all live on the block — see §10.14.1.

  • Mouse: Click and drag the handle.
  • Touch: Swipe left/right.
  • Keyboard: Arrow keys to nudge, Home/End to jump to extremes.

A11y: includes ARIA role + value-now + value-min + value-max for screen-readers.

✅ Common uses: filter / preset comparison, skin-care before/after, design renovations, product without/with-feature.

A contact form with configurable fields. Submissions arrive at the shop’s contact email (configured in Shopify Admin → Settings → General). The section is a thin @theme wrapper — the form itself (fields, layout, labels, success message) lives on the contact-form BLOCK.

SettingWhat it does
🔧 Max widthRange 400–1200px, step 20. ✅ Default 720px.
🔧 Content gapRange 0–80px, step 4. ✅ Default 24px.
🔧 Content alignmentLeft / Center (✅ default) / Right.

Standard v7 chrome.

contact-form · heading · text · button · group · image · icon · divider · spacer

All form field toggles (name / email / phone / subject / message — each as on/off/required), form layout, submit button text, success message, privacy disclaimer live on the contact-form block — covered in Phase 3 block audit. Wrap with heading + text blocks for the section title and intro paragraph.

The form uses Shopify’s native {% form 'contact' %} Liquid tag. Submissions follow Shopify’s spam-prevention rules; spammy submissions go to the spam folder.

10.12 Section Grid / Section Stack (section-grid, section-stack)

Section titled “10.12 Section Grid / Section Stack (section-grid, section-stack)”

These are layout containers that hold atom blocks — they let you compose advanced layouts where multiple atoms sit in a grid or vertical stack.

SettingWhat it does
🔧 Columns (desktop)Range 2–6, step 1. ✅ Default 3.
🔧 Columns (tablet)Range 1–4, step 1. ✅ Default 2.
🔧 Column gapRange 0–120px, step 4. ✅ Default 24px.
🔧 Row gapRange 0–120px, step 4. ✅ Default 24px.
🔧 Content widthRange 400–2400px, step 40. ✅ Default 1200px. Max width of the grid.

There is no “Columns (mobile)” setting and no “Equal heights” toggle — mobile auto-stacks to 1 column, and children stretch to the row height by default.

Blocks accepted: heading · text · button · image · video · icon · group · spacer · divider · recently-viewed-grid · wishlist-grid

A vertical stacker where blocks sit with controllable gap between them.

SettingWhat it does
🔧 AlignmentLeft / Center (✅ default) / Right / Stretch — horizontal alignment of stacked children.
🔧 GapRange 0–120px, step 4. ✅ Default 24px. Vertical gap between blocks.
🔧 Content widthRange 400–2400px, step 40. ✅ Default 1200px.

There is no section-level “Background” toggle in addition to standard v7 chrome — use the section’s transparent_bg / enable_glass settings if you want a background treatment, or wrap children in a group block.

Blocks accepted: heading · text · button · image · video · icon · group · spacer · divider · recently-viewed-grid · wishlist-grid

Use for: nested layouts where a “block” of related content (e.g., “Heading + 3 buttons stacked”) should have its own padding, scheme, and surface.

10.13 Custom Section + Custom Liquid (custom-section, custom-liquid)

Section titled “10.13 Custom Section + Custom Liquid (custom-section, custom-liquid)”

The escape hatches. Detailed walkthrough in chapter 17 — Customization.

Free-form layout container — drop in any combination of atom blocks. Adds a background image and overlay on top of standard v7 chrome.

SettingWhat it does
🔧 Max widthRange 400–1800px, step 20. ✅ Default 1200px.
🔧 Content gapRange 0–80px, step 4. ✅ Default 24px.
🔧 Content alignmentLeft (✅ default) / Center / Right.
🔧 Background imageOptional image. Tiles at cover.
🔧 Background overlayRange 0–100%, step 5. ✅ Default 0%. Dim the background image.

Blocks accepted: heading · text · button · image · video · icon · group · spacer · divider · recently-viewed-grid · wishlist-grid

Drop-in raw Liquid + HTML for snippets or apps that need raw markup.

SettingWhat it does
🔧 Custom LiquidThe Liquid / HTML source.
🔧 Max widthRange 400–1800px, step 20. ✅ Default 1200px.

Blocks accepted: None — pure Liquid output. Use for App snippets, custom embeds, or anything Liquid-extensible.

10.14 Block reference — interaction-section sub-blocks

Section titled “10.14 Block reference — interaction-section sub-blocks”

The sections in this chapter use a handful of dedicated blocks for their internal layout. Most are auto-configured by their parent section, but each has its own settings worth knowing.

10.14.1 Before-After Comparison block (before-after-comparison)

Section titled “10.14.1 Before-After Comparison block (before-after-comparison)”

The slider mechanism inside the Before-After section (10.10). For “multiple comparisons in one section” you can add multiple Before-After Comparison blocks.

Settings — images

SettingWhat it does
🔧 Before imageImage shown initially.
🔧 After imageImage revealed when slider drags.
🔧 Before label✅ Default Before. Overlay label on the “before” half.
🔧 After label✅ Default After. Overlay label on the “after” half.

Settings — layout + handle

SettingWhat it does
🔧 Aspect ratio16/9 (✅ default) / 4/3 / 3/2 / 1/1 / 3/4 / 21/9. Note: no 9/16 portrait option — the slider needs horizontal space for the divider.
🔧 Start positionRange 0–100%, step 5. ✅ Default 50%. Where the divider sits at page-load.
🔧 Card radiusRange 0–32px, step 2. ✅ Default 12px.
🔧 Handle styleCircle (✅ default) / Pill / Square — shape of the draggable knob.
🔧 Handle surfaceSolid (✅ default) / Glass / Transparent.
🔧 Handle sizeRange 28–80px, step 4. ✅ Default 44px.
🔧 Divider widthRange 0–8px, step 1. ✅ Default 2px. Line separating before/after. Set to 0 to hide.

Settings — effects + scheme

SettingWhat it does
🔧 Transparent bg✅ Default off.
🔧 Glass✅ Default off.
🔧 Drop shadow✅ Default off.
🔧 Accent glow✅ Default off.
🔧 Custom color scheme✅ Default off. When on, exposes scheme picker + dark/light pair.

⚠️ Inverse-clip pattern (Rule 187): for transparent PNGs, both images need to be the same size — otherwise transparent pixels reveal the wrong image through the divider. Use full-frame photos (no transparent backgrounds).

A single logo + name inside the Brand Slider section (10.3). One block per brand.

Settings

SettingWhat it does
🔧 LogoImage upload — preferred SVG for sharp rendering at any size
🔧 NameBrand name (shown as fallback if no logo, and for accessibility)
🔧 LinkOptional URL to the brand’s page or collection
🔧 RecolorWhen on, applies CSS mask to inherit the active text color — gives uniform grayscale brand row look
🔧 Use slider default logo heightInherit height from the Brand Slider’s “Default logo height” setting (recommended on)
🔧 Logo heightOverride per-block when needed (visible when above toggle is off)
🔧 Name font roleBody / Subheading / Heading / Accent
🔧 Name bold / italicForce weight

💡 For a clean uniform “Our partners” or “As featured in” row, set Recolor on for all brands — they all become monochrome at the same color (typically muted gray), creating a tidy editorial row.

10.14.3 Newsletter Form block (newsletter-form)

Section titled “10.14.3 Newsletter Form block (newsletter-form)”

The form inside the Newsletter section (10.4). The form submits to Shopify’s built-in customer-signup endpoint.

Content

SettingWhat it does
🔧 Placeholder✅ Default Enter your email.
🔧 Button label✅ Default Subscribe.
🔧 Button stylePrimary (✅ default) or Secondary. No third “Link” style.
🔧 Success message✅ Default Thanks! Check ….

Layout

SettingWhat it does
🔧 LayoutInline (✅ default — email + button on one row) or Stacked (button below input).
🔧 Merge input + button (merge_input_button)When on (inline layout only), the email field and submit button render as one joined control. ✅ Default off.
🔧 AlignmentInherit (✅ default) / Left / Center / Right.
🔧 Full width✅ Default off. Stretches form to fill container.
🔧 Max widthRange 280–900px, step 20. ✅ Default 480px. Cap on form width.
🔧 Margin topRange 0–120px, step 4. ✅ Default 0.
🔧 Margin bottomRange 0–120px, step 4. ✅ Default 0.

⚠️ GDPR consent: if your store is subject to GDPR, install a consent management app (Pandectes GDPR works well — see chapter 16). Hyprism’s newsletter-form does NOT include a built-in checkbox.

10.14.4 Testimonial List block (testimonial-list)

Section titled “10.14.4 Testimonial List block (testimonial-list)”

The carousel/grid/stack wrapper inside the Testimonials section (10.5). Contains multiple Testimonial child-blocks.

Layout

SettingWhat it does
🔧 LayoutGrid (✅ default — N columns, all visible) / Slider (horizontal scroll with arrows) / Stack (vertical column).
🔧 Enable loop✅ Default off. Slider cycles infinitely.
🔧 Autoplay✅ Default off. Auto-advance in slider mode.
🔧 Autoplay intervalRange 3–15s, step 1. ✅ Default 6s.
🔧 Arrow iconChevron (✅ default) / Arrow / Caret.
🔧 Arrow shapeCircle (✅ default) / Rounded / Square / Plain.
🔧 ColumnsRange 1–4, step 1. ✅ Default 3. Applies in grid mode.
🔧 GapRange 0–64px, step 4. ✅ Default 20px.

Card style

SettingWhat it does
🔧 Card radiusRange 0–48px, step 2. ✅ Default 16px.
🔧 Card paddingRange 8–64px, step 4. ✅ Default 24px.
🔧 Card glass✅ Default off.
🔧 Tint glass with accent (card_glass_tint)✅ Default off. Tints the glass cards with the scheme accent (strength = Effects → Glass tint intensity). Only visible when Card glass is on.
🔧 Card glow✅ Default off.
🔧 Card shadow✅ Default off.
🔧 Card schemeColor-scheme picker. Plus separate Card scheme dark + Card scheme light for pair-mode.
🔧 Quote decoration✅ Default on. Show a large quote-mark glyph as background decoration.

Avatar

SettingWhat it does
🔧 Avatar sizeRange 32–96px, step 4. ✅ Default 48px.
🔧 Avatar shapeCircle (✅ default) / Rounded / Square.

Accepted child blocks: testimonial (one block per testimonial card).

💡 For desktop-focus stores, use Grid mode with 3 columns and short testimonials. For mobile-first stores, use Slider mode with autoplay-on and longer testimonials.

A single testimonial card inside the testimonial-list (10.14.4).

SettingWhat it does
🔧 QuoteRich-text content of the testimonial.
🔧 RatingRange 0–5, step 1. ✅ Default 5. Star rating displayed above the quote.
🔧 Author✅ Default Customer Name.
🔧 Title✅ Default Verified Buyer. Role / job-title / context.
🔧 AvatarOptional image.
🔧 Custom color scheme✅ Default off. When on, exposes color_scheme + dark/light pair.

10.14.6 Accordion Item block (accordion-item)

Section titled “10.14.6 Accordion Item block (accordion-item)”

A single expandable row inside Collapsible Content (§10.8).

Content

SettingWhat it does
🔧 Heading✅ Default Question. The summary text shown collapsed.
🔧 TextRich-text content of the expanded panel.
🔧 Heading font roleBody / Subheading / Heading (✅ default) / Accent.

Icon

SettingWhat it does
🔧 IconNone (✅ default) / Question / Info / Star / Plus / Check / Custom. The icon next to the heading.
🔧 Custom iconImage picker (visible when icon = Custom).
🔧 Icon colorOptional color override.

Header style

SettingWhat it does
🔧 Pill-shaped header✅ Default off. Rounds header into a pill.
🔧 Header surfaceScheme (✅ default) / Glass / Transparent.

Content panel

SettingWhat it does
🔧 Connected to header✅ Default off. When on, content panel visually merges with header (no gap, flat-edges between them). Pill+connected auto-applies min-inset (Rule 174).
🔧 Content insetRange 0–80px, step 4. ✅ Default 0. Inner padding of the content panel.
🔧 Content radiusRange 0–32px, step 2. ✅ Default 8px.
🔧 Content surfaceScheme (✅ default) / Glass / Transparent.
🔧 Tint glass with accent (glass_tint)✅ Default off. Tints the header/content glass with the scheme accent (strength = Effects → Glass tint intensity). Only visible when header or content surface = Glass.

Color schemes

SettingWhat it does
🔧 Use separate header/content schemes✅ Default off. When on, header and content can use different color schemes (e.g., dark header + light content). Exposes 2× (single + dark + light) scheme pickers.

Effects + behavior

SettingWhat it does
🔧 Drop shadow✅ Default off.
🔧 Accent glow✅ Default off.
🔧 Open by default✅ Default off. Item starts expanded on page-load.

A single tab inside the Tabs section (§10.7). The tab button at the top + content panel below.

SettingWhat it does
🔧 Title✅ Default Tab. The tab label. Empty title renders an icon-only tab (with auto aria-label “Tab N”).
🔧 Heading fontBody / Subheading / Heading (✅ default) / Accent.
🔧 IconNone (✅ default) / Info / Star / Heart / Package / Truck / Refresh / Check / Custom.
🔧 Custom iconImage picker (visible when icon = Custom).
🔧 Icon colorOptional color override.

Accepted nested blocks: heading · text · button · group · image · icon · divider · spacer — drop these inside the tab to compose the panel content.

The form inside the Contact Form section (§10.11). All form-field toggles + button + scheme live here.

Fields

SettingWhat it does
🔧 Show phone✅ Default off. Add a phone-number field.
🔧 Require phone✅ Default off. Visible when Show phone is on.
🔧 Show subject✅ Default off. Add a subject line field.

The form always shows Name, Email, and Message fields (these are required by Shopify’s {% form 'contact' %} API and cannot be hidden).

Layout

SettingWhat it does
🔧 Field label alignInherit (✅ default) / Left / Center / Right.

Submit button

SettingWhat it does
🔧 Submit button label✅ Default Send message.
🔧 Button stylePrimary (✅ default) / Secondary / Ghost / Outline.
🔧 Button alignmentInherit (✅ default) / Left / Center / Right. Visible when Button full width is off.
🔧 Button full width✅ Default on.

Success message

SettingWhat it does
🔧 Success message✅ Default Thanks for con…. Shown after a successful submission.

Surface

SettingWhat it does
🔧 SurfaceSolid (✅ default) / Glass / Transparent.
🔧 Tint glass with accent (glass_tint)✅ Default off. Tints the form’s glass with the scheme accent (strength = Effects → Glass tint intensity). Only visible when Surface = Glass.
🔧 Card radiusRange 0–32px, step 2. ✅ Default 16px.
🔧 Drop shadow✅ Default off.
🔧 Accent glow✅ Default off.
🔧 Custom color scheme✅ Default off. When on, exposes scheme + dark/light pair.

Chapter 11 — Templates and 12 — Cart — page templates and the cart experience.