Marketing page section components.
Provides reusable marketing page building blocks:
pricing_table/1— Tier comparison with optional billing togglecta_section/1— Full-width call-to-action bannernewsletter_cta/1— Email subscribe sectionlogo_cloud/1— Partner/client logo stripsite_footer/1— Website footer with link columns
Summary
Functions
Renders a full-width call-to-action banner.
Renders a partner/client logo strip.
Renders an email subscribe section with input and button.
Renders a pricing tier comparison layout.
Renders a website footer with link columns, logo, copyright, and social icons.
Functions
Renders a full-width call-to-action banner.
Examples
<.cta_section title="Ready to get started?">
<:actions>
<button>Sign Up Free</button>
</:actions>
</.cta_section>
<.cta_section title="Join us" variant={:filled} description="Start today.">
<:actions>
<button>Get Started</button>
</:actions>
</.cta_section>Attributes
title(:string) (required)description(:string) - Defaults tonil.variant(:atom) - Defaults to:default. Must be one of:default,:filled, or:gradient.align(:atom) - Defaults to:center. Must be one of:center,:start, or:split.class(:string) - Defaults tonil.- Global attributes are accepted.
Slots
actions- CTA buttons.media- Optional media content (for split layout).
Renders a partner/client logo strip.
Examples
<.logo_cloud title="Trusted by">
<img src="/logos/acme.svg" alt="Acme" class="h-8" />
<img src="/logos/globex.svg" alt="Globex" class="h-8" />
</.logo_cloud>
<.logo_cloud layout={:grid} columns={4} grayscale>
<img src="/logos/a.svg" alt="A" />
<img src="/logos/b.svg" alt="B" />
</.logo_cloud>Attributes
title(:string) - Defaults tonil.layout(:atom) - Defaults to:inline. Must be one of:grid, or:inline.columns(:integer) - Defaults to5.grayscale(:boolean) - Defaults tofalse.class(:string) - Defaults tonil.- Global attributes are accepted.
Slots
inner_block(required) - Logo images.
Renders an email subscribe section with input and button.
Examples
<.newsletter_cta
title="Stay updated"
description="Get the latest news."
on_submit="subscribe"
/>Attributes
title(:string) - Defaults tonil.description(:string) - Defaults tonil.placeholder(:string) - Defaults to"Enter your email".button_label(:string) - Defaults to"Subscribe".on_submit(:string) (required) - Phoenix event name for form submit.input_name(:string) - Defaults to"email".layout(:atom) - Defaults to:inline. Must be one of:stacked, or:inline.class(:string) - Defaults tonil.- Global attributes are accepted.
Slots
disclaimer- Legal text below the form.
Renders a pricing tier comparison layout.
Examples
<.pricing_table title="Pricing" description="Choose a plan." columns={3}>
<div>Free Tier</div>
<div>Pro Tier</div>
<div>Enterprise Tier</div>
</.pricing_table>Attributes
title(:string) - Defaults tonil.description(:string) - Defaults tonil.columns(:integer) - Defaults to3.class(:string) - Defaults tonil.- Global attributes are accepted.
Slots
toggle- Billing toggle (monthly/yearly switch).inner_block(required) - Pricing tier cards.footer- Footer content below tiers.