Alex Dunmow 4713787bbd initial: theme plugin corporate-modernist
Bootstrapped during the 2026-06-06 BlockNinja consolidation. Was previously
an unversioned directory inside ~/src/blockninja-themes/corporate-modernist.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-06 14:11:24 +08:00

57 lines
1.5 KiB
Plaintext

package main
// ctaStripComponent renders the corporate-modernist:cta_strip block.
templ ctaStripComponent(data CTAStripData) {
<section
class={ "cm-section", ctaStripVariantClass(data.Variant) }
data-block="corporate-modernist:cta_strip"
data-variant={ data.Variant }
>
<div class="cm-content-well">
<div style="display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem;">
if data.Headline != "" {
<h2 class="cm-display" style="font-size: 1.75rem; margin: 0; max-width: 36rem;">{ data.Headline }</h2>
} else {
<h2 class="cm-display" style="font-size: 1.75rem; margin: 0; max-width: 36rem;">Ready when you are.</h2>
}
if data.HasCTA {
<a class="cm-btn-primary" href={ templ.SafeURL(data.CTAHref) }>
{ ctaStripLabel(data) }
</a>
} else {
<a class="cm-btn-primary" href="#" aria-disabled="true">
{ ctaStripDefaultLabel(data.Variant) }
</a>
}
</div>
</div>
</section>
}
func ctaStripVariantClass(variant string) string {
switch variant {
case "quiet":
return "cm-cta-strip-quiet"
default:
return "cm-cta-strip-accent"
}
}
func ctaStripLabel(data CTAStripData) string {
if data.CTALabel != "" {
return data.CTALabel
}
return ctaStripDefaultLabel(data.Variant)
}
func ctaStripDefaultLabel(variant string) string {
switch variant {
case "download":
return "Download report"
case "quiet":
return "Learn more"
default:
return "Book a call"
}
}