Section Components
Complete catalog of all 17 native sections available in the WooNooW Visual Page Editor.
Overview
WooNooW pages are constructed from modular, responsive Sections. Each section is backed by a strict schema defined in the core engine (admin-spa/src/routes/Appearance/Pages/schema/sectionSchema.ts), providing live previewing, style controls, and real-time WooCommerce data binding. The 17 canonical section types include specialized storefront components and html-embed as the canonical raw HTML escape hatch.
The 17 Native Sections
1. Hero (hero)
High-impact headline banner with supporting copy, media backgrounds, and call-to-action buttons.
- Props:
title(text): Primary headline.subtitle(text): Subheadline copy.image(image URL): Background or featured image.cta_text(text): Primary button label.cta_url(url): Button destination URL.
- Layouts:
default(Centered),hero-left-image(Image Left),hero-right-image(Image Right). - Default Width:
full.
2. Content Block (content)
Versatile container for long-form editorial copy, rich text, about sections, or policy text.
- Props:
content(rte): Rich text / HTML content.cta_text(text): Optional button text.cta_url(url): Optional button link.
- Layouts:
default(Full Width),narrow,medium. - Default Width:
full.
3. Image + Text (image-text)
Alternating two-column block pairing visual media with structured text.
- Props:
title(text): Section heading.text(textarea): Body description.image(image URL): Image asset.cta_text(text): Button text.cta_url(url): Button URL.
- Layouts:
image-left,image-right. - Default Width:
contained.
4. Feature Grid (feature-grid)
Structured column grid for highlighting product capabilities, guarantees, or services.
- Props:
heading(text): Section header.subtitle(text): Subtitle description.items(array of objects): Repeater cards.
- Repeater Item Shape:
- Layouts:
grid-2(2 Columns),grid-3(3 Columns),grid-4(4 Columns). - Default Width:
contained.
5. CTA Banner (cta-banner)
High-converting horizontal banner designed for action prompts and promotions.
- Props:
title(text): Main banner title.text(text): Secondary description.button_text(text): Button label (CRITICAL: usebutton_text, notcta_text).button_url(url): Button target URL (CRITICAL: usebutton_url, notcta_url).
- Default Width:
full.
6. Contact Form (contact-form)
Integrated inquiry and lead capture form submitting directly to store settings or external webhooks.
- Props:
title(text): Form heading.webhook_url(url): Optional endpoint URL.redirect_url(url): Optional destination URL after successful submission.fields(array of objects): Array of form input descriptors.
- Repeater Item Shape:
- Default Width:
contained.
7. Bento Grid (bento-category-grid)
Asymmetrical bento-box grid for highlighting categories, featured collections, or key landing URLs.
- Props:
title(text): Section title.subtitle(text): Subtitle.items(array of objects): Array of bento cards (CRITICAL: useitems, notcategories).
- Repeater Item Shape:
- Default Width:
full.
8. Product Carousel (product-carousel)
Dynamic horizontal slider fetching live products from your WooCommerce catalog.
- Props:
title(text): Section title.subtitle(text): Subtitle.cta_text(text): Trailing link text.cta_url(url): Trailing link URL.source(text): Query filter (trending,new,on_sale,featured).limit(text): Maximum products to fetch (e.g."8").
- Layouts:
trending,new,on_sale,featured. - Default Width:
full.
9. Shoppable Image (shoppable-image)
Interactive lifestyle image with clickable hotspot pins linking directly to products.
- Props:
title(text): Section title.subtitle(text): Subtitle.image(image URL): Primary photography.alt(text): Alt text.hotspots(array of objects): Hotspot pin positions.
- Repeater Item Shape:
- Default Width:
full.
10. Testimonials (testimonials)
Social proof card grid or slider presenting customer reviews and star ratings.
- Props:
heading(text): Title.subtitle(text): Subtitle.items(array of objects): Review cards.
- Repeater Item Shape:
- Layouts:
grid-3(3 Columns),grid-2(2 Columns),carousel(Slider). - Default Width:
contained.
11. Pricing Table (pricing-table)
Side-by-side plan comparison cards with feature checkmarks and highlight badges.
- Props:
heading(text): Title.subtitle(text): Subtitle.items(array of objects): Plan cards.
- Repeater Item Shape:
- Layouts:
grid-3(3 Columns),grid-2(2 Columns). - Default Width:
contained.
12. FAQ Accordion (faq)
Collapsible accordion list resolving customer questions and objections.
- Props:
heading(text): Section title.subtitle(text): Subtitle.items(array of objects): Question and answer pairs.
- Repeater Item Shape:
- Layouts:
single-column,two-column. - Default Width:
contained.
13. Logo Bar (logo-bar)
Horizontal bar displaying client logos, media mentions, or trust seals.
- Props:
heading(text): Optional title.items(array of objects): Logo entries.
- Repeater Item Shape:
- Layouts:
static-row,scrolling-marquee. - Default Width:
full.
14. Stats Counter (stats-counter)
High-impact metric display showcasing key business metrics and figures.
- Props:
heading(text): Section title.items(array of objects): Metric entries.
- Repeater Item Shape:
- Layouts:
grid-4(4 Columns),grid-3(3 Columns). - Default Width:
contained.
15. Marquee Banner (marquee-banner)
Continuous ticker tape scrolling announcements across the screen.
- Props:
text(text): Banner copy.separator(text): Divider symbol (e.g.*or•).speed(text): Scroll duration in seconds (e.g."20").
- Default Width:
full.
16. Custom HTML (html-embed)
Fallback container for custom markup when native components cannot fulfill a specialized requirement.
- Props:
html(textarea): Valid HTML markup.
- Validation Rules: Must start with a block container (
<div>or<section>). All tags must be closed. Do not include<html>or<body>wrapper tags. - Default Width:
full.
17. Purchase Offer (purchase-offer)
Direct-to-checkout purchasing block for a live WooCommerce product or variation.
- Props:
product_id(integer, REQUIRED): Live WooCommerce product ID (positive integer $> 0$).variation_id(integer, optional): Specific variation ID (default0).quantity(integer, optional): Units added to order (minimum1, default1).cart_policy(enum, optional):'replace'(replaces cart items for direct checkout) or'append'(adds to existing cart).button_text(text, optional): Action button text (default'Buy now').heading(text, optional): Custom title above the offer.
- Layout Variants (
layoutVariantin JSON):default,card,split. - Default Width:
contained. - Authoritative Binding: Real-time prices, sale badges, currency symbols, and stock checks are queried live from WooCommerce REST APIs. In the editor canvas, an illustrative preview is displayed when no live product is preloaded, and the purchase button runs in read-only preview mode.
Related Guides
- Two-Product Sales Funnel — Build high-converting landing pages using the
purchase-offersection. - AI Frontpage Guide — Generate and import section layouts with AI.
- Visual Editor Interface — How to edit props, reorder blocks, and configure responsiveness.
Last updated Sep 14, 2026