1/1
Compatible templates clearing the recipe-aware polish audit.
Theme recipe
Soft raised panels with lower visual noise for guided tools and onboarding flows.
form-template1hero1metric-grid1step-list1convert1educate1hook1prove1A guided conversion page with page-level funnel configuration and CMS-editable step content.
{
"schema_version": "ensemble.template-review.clone.v0",
"clone_group": "common-page-templates-v1",
"template_id": "common-funnel",
"route": "/demo-sites/page-templates/funnel",
"api_href": "/api/ensemble/templates/pages/common-funnel?include_page=true",
"title": "Funnel Template",
"description": "A guided conversion page with page-level funnel configuration and CMS-editable step content.",
"primary_goal": "funnel_completion",
"layout": {
"template": "common-funnel",
"theme": "ensemble-minimal-ink",
"variant": "neumorphic"
},
"page_config": {
"surface": {
"mode": "funnel",
"chrome": "theme",
"width": "content",
"min_height": "content"
},
"appearance": {
"preset": "neumorphic",
"allowed_presets": [
"shadcn",
"bento",
"glassmorphic",
"elevated",
"block",
"dashboard",
"neumorphic"
],
"density": "comfortable",
"motion": "subtle"
},
"funnel": {
"id": "common-funnel-template",
"kind": "funnel",
"layout": "fullscreen",
"panel_width": "comfortable",
"navigation": "stepper",
"progress": "percent",
"persist_progress": "session",
"start_step": "orient",
"completion_event": "funnel.completed",
"allow_backward": true,
"allow_step_jump": false,
"validation": "native",
"metadata": {
"conversion_surface": "customer-facing-fullscreen",
"control_ergonomics": "high-touch",
"ergonomic_controls": true,
"recipe_driven": true,
"aesthetic": "customer-conversion-app",
"eyebrow": "Guided conversion",
"visual_card": true,
"visual_label": "Conversion preview",
"visual_caption": "A focused visual keeps the flow branded while visitors move through each step.",
"visual": {
"image": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3ELaunch%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt_text": "Guided conversion placeholder visual",
"provider": "generated-placeholder"
},
"media_opacity": 0.24,
"summary_label": "Customer path",
"summary_title": "Launch plan handoff",
"summary_description": "The flow keeps the visitor oriented while collecting only the details needed for a confident follow-up.",
"action_note": "Required fields are marked. Answers stay attached to this handoff.",
"completion_title": "Your launch plan is queued.",
"completion_description": "You leave with a clear next step, and the team has the details needed to follow up well.",
"completion_actions": [
{
"label": "Explore templates",
"href": "/demo-sites/page-templates"
},
{
"label": "Compare colorways",
"href": "/demo-sites/page-templates/colorways"
}
],
"proof_points": [
{
"label": "Average time",
"value": "2 min"
},
{
"label": "Guided steps",
"value": "4"
},
{
"label": "Form steps",
"value": "3"
}
],
"assurance_badges": [
"2 minute plan",
"Private handoff",
"Tailored next step"
]
},
"steps": [
{
"id": "orient",
"title": "Start your plan",
"description": "Personalize the path with a lightweight first step.",
"cta_label": "Continue",
"metadata": {
"role": "identify",
"estimate": "30 sec",
"outcome": "Start with just enough identity to personalize the handoff."
},
"blocks": [
{
"id": "common-funnel-step-orient-funnel_step_orient",
"block_type": "form-template",
"block_order": 1,
"metadata": {
"block_role": "convert",
"template_slot": "funnel_step_orient",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-funnel-orient",
"title": "Where should we send the plan?",
"description": "A quick identity check keeps the recommendations personal without slowing visitors down.",
"event_name": "funnel.orient_updated",
"fields": [
{
"id": "first_name",
"type": "text",
"label": "First name",
"required": true,
"autocomplete": "given-name",
"placeholder": "Ada"
},
{
"id": "work_email",
"type": "email",
"label": "Work email",
"required": true,
"autocomplete": "email",
"placeholder": "ada@company.com",
"pii": true
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Continue",
"aria_label": "Continue to fit questions",
"trackAnalytics": true,
"submitMode": "external"
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
}
]
},
{
"id": "capture",
"title": "Find the fit",
"description": "Route the visitor with structured intent answers.",
"cta_label": "Review fit",
"back_label": "Back",
"completion_event": "funnel.capture_completed",
"metadata": {
"role": "qualify",
"estimate": "45 sec",
"outcome": "Capture intent in structured fields that route cleanly into CRM and automation."
},
"blocks": [
{
"id": "common-funnel-step-capture-funnel_step_capture",
"block_type": "form-template",
"block_order": 1,
"metadata": {
"block_role": "convert",
"template_slot": "funnel_step_capture",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-funnel-fit",
"title": "What outcome matters most?",
"description": "Structured answers help the team tailor the recommendation before follow-up.",
"event_name": "funnel.fit_updated",
"fields": [
{
"id": "primary_goal",
"type": "radio-group",
"label": "Primary goal",
"required": true,
"options": [
"Launch faster",
"Improve conversion",
"Modernize CMS workflows"
]
},
{
"id": "team_size",
"type": "select",
"label": "Team size",
"required": true,
"placeholder": "Choose team size",
"options": [
"1-5",
"6-20",
"21-100",
"100+"
]
},
{
"id": "urgency",
"type": "slider",
"label": "Launch urgency",
"min": 1,
"max": 5,
"step": 1
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Review fit",
"aria_label": "Review funnel fit answers",
"trackAnalytics": true,
"submitMode": "external"
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
}
]
},
{
"id": "schedule",
"title": "Choose timing",
"description": "Capture timing and handoff preferences.",
"cta_label": "Prepare summary",
"back_label": "Back",
"completion_event": "funnel.schedule_completed",
"metadata": {
"role": "handoff",
"estimate": "45 sec",
"outcome": "Collect timing only after the visitor has already built momentum."
},
"blocks": [
{
"id": "common-funnel-step-schedule-funnel_step_schedule",
"block_type": "form-template",
"block_order": 1,
"metadata": {
"block_role": "convert",
"template_slot": "funnel_step_schedule",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-funnel-schedule",
"title": "When should the team follow up?",
"description": "Collect timing details after the visitor has already seen value.",
"event_name": "funnel.schedule_updated",
"fields": [
{
"id": "preferred_date",
"type": "date",
"label": "Preferred date"
},
{
"id": "phone",
"type": "tel",
"label": "Phone",
"autocomplete": "tel",
"placeholder": "(555) 014-2201",
"pii": true
},
{
"id": "notes",
"type": "textarea",
"label": "Anything the team should know?",
"placeholder": "Share context, constraints, or launch goals.",
"pii": true
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Prepare summary",
"aria_label": "Prepare funnel summary",
"trackAnalytics": true,
"submitMode": "external"
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
}
]
},
{
"id": "convert",
"title": "Confirm next step",
"description": "Confirm the path and route the next move.",
"cta_label": "Finish",
"back_label": "Back",
"metadata": {
"role": "convert",
"estimate": "15 sec",
"outcome": "End with a clear summary instead of a generic thank-you state."
},
"blocks": [
{
"id": "common-funnel-step-convert-funnel_step_convert",
"block_type": "metric-grid",
"block_order": 1,
"metadata": {
"block_role": "convert",
"template_slot": "funnel_step_convert",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"title",
"description",
"metrics"
]
},
"props": {
"title": "Your launch path is ready.",
"description": "The answers are organized into a focused brief so the next step feels clear, personal, and easy to act on.",
"metrics": [
{
"label": "Fit",
"value": "Mapped",
"description": "Primary outcome and team context are captured."
},
{
"label": "Timing",
"value": "Queued",
"description": "Follow-up preferences are ready for handoff."
},
{
"label": "Next",
"value": "Clear",
"description": "Finish the flow to route the plan."
}
],
"appearance": {
"preset": "dashboard"
}
}
}
]
}
]
}
},
"slot_model": [
{
"slot": "funnel_intro",
"label": "Funnel Intro",
"block_id": "common-funnel-hero",
"block_type": "hero",
"required": true,
"editable_fields": [
"eyebrow",
"title",
"subtitle",
"cta",
"visual",
"background",
"metrics"
],
"editable_field_count": 7,
"role": "hook",
"clone_priority": 1,
"summary": "7 editable fields on hero for hook."
},
{
"slot": "funnel_steps",
"label": "Funnel Steps",
"block_id": "common-funnel-funnel_steps",
"block_type": "step-list",
"required": true,
"editable_fields": [
"title",
"subtitle",
"steps",
"status",
"estimate",
"outcome"
],
"editable_field_count": 6,
"role": "educate",
"clone_priority": 2,
"summary": "6 editable fields on step-list for educate."
},
{
"slot": "funnel_confidence",
"label": "Funnel Confidence",
"block_id": "common-funnel-funnel_confidence",
"block_type": "metric-grid",
"required": true,
"editable_fields": [
"title",
"description",
"metrics"
],
"editable_field_count": 3,
"role": "prove",
"clone_priority": 3,
"summary": "3 editable fields on metric-grid for prove."
},
{
"slot": "funnel_capture",
"label": "Funnel Capture",
"block_id": "common-funnel-funnel_capture",
"block_type": "form-template",
"required": true,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
],
"editable_field_count": 6,
"role": "convert",
"clone_priority": 4,
"summary": "6 editable fields on form-template for convert."
}
],
"slot_summary": {
"slot_count": 4,
"editable_field_count": 22,
"roles": [
"hook",
"educate",
"prove",
"convert"
]
},
"compatible_recipes": [
"soft-neumorphic",
"compact-ops",
"polished-saas-growth",
"tactile-service-ledger",
"operator-product"
],
"compatible_themes": [
"ensemble-daylight",
"ensemble-minimal-ink",
"ensemble-ops-dark",
"ensemble-foundry-lab",
"cloud-elephants-deep-sky",
"cloud-elephants-aqua-operator",
"cloud-elephants-coral-launch",
"cloud-elephants-ink-mist"
],
"seo_model": {
"required_fields": [
"title",
"description",
"canonical_url",
"open_graph.title",
"open_graph.description",
"open_graph.image"
],
"social_preview_fields": [
"title",
"description",
"image",
"image_alt",
"site_name",
"locale",
"twitter_card"
],
"structured_data_policy": "explicit-json-ld-only",
"suggested_json_ld_types": [
"WebPage"
]
},
"cms_usage": {
"replace_placeholders": true,
"review_required_before_publish": true,
"safe_for_static_export": true,
"safe_for_wordpress_snapshot": true
},
"polish_audit": {
"protocol": "ensemble.template-polish.v0",
"status": "ready",
"score": 100,
"ready_count": 7,
"dimension_count": 7,
"dimensions": [
{
"id": "composition-ready",
"label": "CMS composition",
"status": "ready",
"evidence": [
"4 editable slots",
"4 cloneable blocks"
]
},
{
"id": "recipe-alignment",
"label": "Recipe alignment",
"status": "ready",
"evidence": [
"5 compatible recipes",
"8 compatible themes",
"default neumorphic"
]
},
{
"id": "visual-assets",
"label": "Visual assets",
"status": "ready",
"evidence": [
"replaceable image or media fields are present"
]
},
{
"id": "action-clarity",
"label": "Action clarity",
"status": "ready",
"evidence": [
"primary actions, links, or conversion role detected"
]
},
{
"id": "proof-and-trust",
"label": "Proof and trust",
"status": "ready",
"evidence": [
"proof role, metrics, FAQs, testimonials, or evidence cards detected"
]
},
{
"id": "seo-social-ready",
"label": "SEO and social",
"status": "ready",
"evidence": [
"Open Graph fields required",
"JSON-LD remains explicit-only"
]
},
{
"id": "responsive-surface",
"label": "Responsive surface",
"status": "ready",
"evidence": [
"surface funnel",
"density comfortable"
]
}
],
"next_actions": []
},
"blocks": [
{
"id": "common-funnel-hero",
"block_type": "hero",
"block_order": 1,
"metadata": {
"block_role": "hook",
"template_slot": "funnel_intro",
"cloneable": true,
"clone_priority": 1,
"editable_fields": [
"eyebrow",
"title",
"subtitle",
"cta",
"visual",
"background",
"metrics"
]
},
"props": {
"eyebrow": "Funnel",
"title": "Build a tailored launch plan in minutes.",
"subtitle": "Answer a few focused questions and move from interest to a clear next step without leaving the flow.",
"background": {
"image": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3ELaunch%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt_text": "Build a tailored launch plan in minutes. visual",
"overlay": "dark"
},
"visual": {
"image": "data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%22720%22%20viewBox%3D%220%200%201200%20720%22%3E%3Crect%20width%3D%221200%22%20height%3D%22720%22%20fill%3D%22%23f7fbff%22%2F%3E%3Crect%20x%3D%2296%22%20y%3D%2288%22%20width%3D%221008%22%20height%3D%22544%22%20rx%3D%2242%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.18%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22288%22%20r%3D%2294%22%20fill%3D%22%238ff7cf%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22244%22%20width%3D%22392%22%20height%3D%2234%22%20rx%3D%2217%22%20fill%3D%22%23142033%22%20opacity%3D%220.82%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22306%22%20width%3D%22510%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.52%22%2F%3E%3Crect%20x%3D%22446%22%20y%3D%22352%22%20width%3D%22328%22%20height%3D%2222%22%20rx%3D%2211%22%20fill%3D%22%23526174%22%20opacity%3D%220.34%22%2F%3E%3Ctext%20x%3D%2296%22%20y%3D%22675%22%20font-family%3D%22Inter%2CArial%2Csans-serif%22%20font-size%3D%2232%22%20font-weight%3D%22800%22%20fill%3D%22%23142033%22%3ELaunch%20placeholder%3C%2Ftext%3E%3C%2Fsvg%3E",
"alt_text": "Build a tailored launch plan in minutes. visual",
"title": "Replaceable hero media"
},
"cta": {
"text": "Start the plan",
"href": "#primary-action",
"aria_label": "Build a tailored launch plan in minutes.: Start the plan"
},
"appearance": {
"preset": "neumorphic"
}
}
},
{
"id": "common-funnel-funnel_steps",
"block_type": "step-list",
"block_order": 2,
"metadata": {
"block_role": "educate",
"template_slot": "funnel_steps",
"cloneable": true,
"clone_priority": 2,
"editable_fields": [
"title",
"subtitle",
"steps",
"status",
"estimate",
"outcome"
]
},
"props": {
"title": "A confident path from intent to action",
"subtitle": "Use these steps to make the page path concrete.",
"variant": "numbered",
"steps": [
{
"title": "Start",
"description": "Collect identity only after the outcome is clear.",
"status": "Start here",
"estimate": "15 min",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#funnel_steps-step-1",
"ctaLabel": "Review step"
},
{
"title": "Fit",
"description": "Use structured answers for scoring and routing.",
"status": "Planned",
"estimate": "30 min",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#funnel_steps-step-2",
"ctaLabel": "Review step"
},
{
"title": "Timing",
"description": "Ask for follow-up details once fit is established.",
"status": "Planned",
"estimate": "45 min",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#funnel_steps-step-3",
"ctaLabel": "Review step"
},
{
"title": "Summary",
"description": "End with an explicit, measurable completion.",
"status": "Planned",
"estimate": "1 day",
"outcome": "Visitor knows what happens next and why this step matters.",
"href": "#funnel_steps-step-4",
"ctaLabel": "Review step"
}
],
"appearance": {
"preset": "shadcn"
}
}
},
{
"id": "common-funnel-funnel_confidence",
"block_type": "metric-grid",
"block_order": 3,
"metadata": {
"block_role": "prove",
"template_slot": "funnel_confidence",
"cloneable": true,
"clone_priority": 3,
"editable_fields": [
"title",
"description",
"metrics"
]
},
"props": {
"title": "Conversion confidence signals",
"metrics": [
{
"label": "Steps",
"value": "4",
"description": "A short path keeps visitors oriented.",
"progress": 100
},
{
"label": "Time",
"value": "2 min",
"description": "The flow asks only for useful handoff detail.",
"progress": 82
},
{
"label": "Routing",
"value": "Ready",
"description": "Answers can feed CRM, automation, and follow-up.",
"progress": 90
}
],
"appearance": {
"preset": "dashboard"
}
}
},
{
"id": "common-funnel-funnel_capture",
"block_type": "form-template",
"block_order": 4,
"metadata": {
"block_role": "convert",
"template_slot": "funnel_capture",
"cloneable": true,
"clone_priority": 4,
"editable_fields": [
"formTemplateId",
"title",
"description",
"fields",
"event_name",
"settings"
]
},
"props": {
"formTemplateId": "common-funnel-intake",
"title": "Plan intake",
"description": "Share a few details and the team will follow up with a useful next step.",
"event_name": "funnel.intake_submitted",
"fields": [
{
"id": "work_email",
"type": "email",
"label": "Work email",
"required": true,
"pii": true
},
{
"id": "message",
"type": "textarea",
"label": "What should the team know?",
"required": false,
"pii": true
}
],
"settings": {
"layout": "conversion",
"intent": "lead",
"assurance_badges": [
"Fast handoff",
"Private by design",
"Clear next step"
],
"privacy_note": "Required fields are marked. We use answers to prepare the next step.",
"submitLabel": "Send details",
"aria_label": "Plan intake: Send details",
"trackAnalytics": true
},
"submission_policy": {
"require_consent": true,
"retention_days": 365
},
"appearance": {
"preset": "shadcn"
}
}
}
]
}
The page remains useful as a recipe coverage gap for future theme variants.