themes-cyberpunk/cta_terminal.templ
Alex Dunmow 313ebaf296 initial: theme plugin cyberpunk
Bootstrapped during the 2026-06-06 BlockNinja consolidation. Was previously
an unversioned directory inside ~/src/blockninja-themes/cyberpunk.

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

38 lines
1.4 KiB
Plaintext

package main
// ctaTerminalComponent renders the cyberpunk:cta_terminal block as a faux terminal prompt.
templ ctaTerminalComponent(data CTATerminalData) {
<section
data-block="cyberpunk:cta_terminal"
class="cyberpunk-cta-terminal w-full py-16"
style="background-color: hsl(var(--card));"
>
<div class="max-w-4xl mx-auto px-4">
<div
class="cyberpunk-mono rounded-lg p-6 md:p-8 flex flex-col md:flex-row items-stretch md:items-center gap-4"
style="background-color: hsl(var(--background)); border: 1px dashed hsl(var(--primary));"
>
<div class="flex-1 flex items-center gap-2 text-base md:text-lg overflow-hidden">
<span aria-hidden="true" style="color: hsl(var(--accent));">$</span>
<code class="cyberpunk-mono whitespace-pre-wrap break-all" style="color: hsl(var(--foreground));" data-caret-blink>
{ data.Prompt }
</code>
<span aria-hidden="true" class="caret-blink" data-caret-blink style="color: hsl(var(--primary));">▍</span>
</div>
if data.Button != "" {
<a
href={ templ.SafeURL(safeHref(data.Href)) }
class="cyberpunk-btn rgb-split cyberpunk-mono inline-flex items-center justify-center gap-2 px-4 py-2 rounded-md font-semibold uppercase tracking-wider"
style="background-color: hsl(var(--primary)); color: hsl(var(--primary-foreground));"
if data.Copyable {
data-copy={ data.Prompt }
}
>
{ data.Button }
</a>
}
</div>
</div>
</section>
}