component SplitHero { props { eyebrow: string = "" eyebrowIcon: string = "icon-[lucide--sparkles]" title: string = "A better digital experience" highlight: string = "" description: string = "" primaryLabel: string = "" primaryHref: string = "" primaryIcon: string = "" secondaryLabel: string = "" secondaryHref: string = "" secondaryIcon: string = "" visualPosition: string = "right" reverse: boolean = false ratio: string = "balanced" align: string = "left" size: string = "default" color: string = "primary" variant: string = "default" maxWidth: string = "xl" fullBleed: boolean = true backgroundImage: string = "" visualImage: string = "" visualAlt: string = "" visualIcon: string = "" visualEyebrow: string = "" visualTitle: string = "" visualDescription: string = "" visualItems: unknown[] = [] visualStyle: string = "panel" trustItems: unknown[] = [] class: string = "" } view {
{#if backgroundImage} {/if}
{#if eyebrow}
{#if eyebrowIcon} {/if} {eyebrow}
{/if}

{title} {#if highlight} {highlight} {/if}

{#if description}

{description}

{/if} {#if primaryLabel || secondaryLabel} {:else}
{/if} {#if trustItems.length > 0}
{#each trustItems as item} {item.label || item.title || item} {/each}
{/if}
{#if visualImage || visualIcon || visualEyebrow || visualTitle || visualDescription || visualItems.length > 0}
{#if visualImage}
{visualAlt}
{/if} {#if visualIcon || visualEyebrow || visualTitle || visualDescription}
{#if visualIcon} {/if}
{#if visualEyebrow}

{visualEyebrow}

{/if} {#if visualTitle}

{visualTitle}

{/if} {#if visualDescription}

{visualDescription}

{/if}
{/if} {#if visualItems.length > 0}
{#each visualItems as item}
{#if item.icon} {/if}
{item.label || item.title} {#if item.value} {item.value} {/if}
{#if item.description}

{item.description}

{/if}
{/each}
{/if}
{/if}
} style { .wire-split-hero { --split-accent: var(--wire-color-primary); --split-accent-hover: var(--wire-color-primary-hover); --split-accent-soft: var(--wire-color-primary-soft); --split-accent-muted: var(--wire-color-primary-muted); --split-contrast: var(--wire-color-primary-contrast); --split-border: color-mix(in srgb, var(--split-accent) 14%, var(--wire-color-border)); position: relative; isolation: isolate; width: 100%; overflow: hidden; color: var(--wire-color-text); background: radial-gradient(circle at 88% 18%, color-mix(in srgb, var(--split-accent) 11%, transparent), transparent 28%), var(--wire-color-background); } .wire-split-hero[data-color="secondary"] { --split-accent: var(--wire-color-secondary); --split-accent-hover: var(--wire-color-secondary-hover); --split-accent-soft: var(--wire-color-secondary-soft); --split-accent-muted: var(--wire-color-secondary-muted); --split-contrast: var(--wire-color-secondary-contrast); } .wire-split-hero[data-color="info"] { --split-accent: var(--wire-color-info); --split-accent-hover: var(--wire-color-info-hover); --split-accent-soft: var(--wire-color-info-soft); --split-accent-muted: var(--wire-color-info-muted); --split-contrast: var(--wire-color-info-contrast); } .wire-split-hero[data-color="success"] { --split-accent: var(--wire-color-success); --split-accent-hover: var(--wire-color-success-hover); --split-accent-soft: var(--wire-color-success-soft); --split-accent-muted: var(--wire-color-success-muted); --split-contrast: var(--wire-color-success-contrast); } .wire-split-hero[data-color="warning"] { --split-accent: var(--wire-color-warning); --split-accent-hover: var(--wire-color-warning-hover); --split-accent-soft: var(--wire-color-warning-soft); --split-accent-muted: var(--wire-color-warning-muted); --split-contrast: var(--wire-color-warning-contrast); } .wire-split-hero[data-color="danger"] { --split-accent: var(--wire-color-danger); --split-accent-hover: var(--wire-color-danger-hover); --split-accent-soft: var(--wire-color-danger-soft); --split-accent-muted: var(--wire-color-danger-muted); --split-contrast: var(--wire-color-danger-contrast); } .wire-split-hero[data-variant="soft"] { background: radial-gradient(circle at 84% 18%, color-mix(in srgb, var(--split-accent) 16%, transparent), transparent 30%), linear-gradient(135deg, var(--split-accent-soft), transparent 64%), var(--wire-color-background); } .wire-split-hero[data-variant="raised"] { background: var(--wire-color-surface-raised); border-block: 1px solid var(--split-border); box-shadow: 0 22px 70px color-mix(in srgb, black 14%, transparent); } .wire-split-hero[data-variant="outline"] { background: transparent; border-block: 1px solid var(--split-border); } .wire-split-hero[data-variant="gradient"] { background: radial-gradient(circle at 82% 16%, color-mix(in srgb, var(--split-accent) 28%, transparent), transparent 32%), linear-gradient(135deg, color-mix(in srgb, var(--split-accent) 13%, var(--wire-color-background)), var(--wire-color-background) 58%); } .wire-split-hero[data-variant="solid"] { color: var(--split-contrast); background: radial-gradient(circle at 82% 16%, color-mix(in srgb, white 14%, transparent), transparent 32%), var(--split-accent); } .wire-split-hero[data-full-bleed="false"] { width: min(calc(100% - 2rem), 90rem); margin-inline: auto; border: 1px solid var(--split-border); border-radius: 1.75rem; } .wire-split-hero__background-image { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; opacity: 0.12; } .wire-split-hero__glow { position: absolute; z-index: -2; width: 24rem; height: 24rem; pointer-events: none; background: var(--split-accent); border-radius: 999px; filter: blur(110px); opacity: 0.08; } .wire-split-hero__glow--one { top: -11rem; right: -6rem; } .wire-split-hero__glow--two { bottom: -14rem; left: -7rem; opacity: 0.05; } .wire-split-hero__inner { width: min(calc(100% - 2rem), 80rem); margin-inline: auto; padding-block: 5rem; } .wire-split-hero[data-max-width="compact"] .wire-split-hero__inner { width: min(calc(100% - 2rem), 64rem); } .wire-split-hero[data-max-width="lg"] .wire-split-hero__inner { width: min(calc(100% - 2rem), 72rem); } .wire-split-hero[data-max-width="wide"] .wire-split-hero__inner, .wire-split-hero[data-max-width="2xl"] .wire-split-hero__inner { width: min(calc(100% - 2rem), 90rem); } .wire-split-hero[data-max-width="full"] .wire-split-hero__inner { width: 100%; max-width: none; padding-inline: 2rem; } .wire-split-hero[data-size="compact"] .wire-split-hero__inner, .wire-split-hero[data-size="sm"] .wire-split-hero__inner { padding-block: 3rem; } .wire-split-hero[data-size="lg"] .wire-split-hero__inner { padding-block: 6rem; } .wire-split-hero__layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 3rem; } .wire-split-hero__content, .wire-split-hero__visual-column { min-width: 0; } .wire-split-hero__content { max-width: 45rem; } .wire-split-hero[data-align="center"] .wire-split-hero__content { margin-inline: auto; text-align: center; } .wire-split-hero[data-align="right"] .wire-split-hero__content { margin-left: auto; text-align: right; } .wire-split-hero__eyebrow { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.25rem; padding: 0.45rem 0.8rem; color: var(--split-accent); background: var(--split-accent-soft); border: 1px solid color-mix(in srgb, var(--split-accent) 22%, transparent); border-radius: 999px; font-size: 0.76rem; font-weight: 600; line-height: 1; } .wire-split-hero[data-variant="solid"] .wire-split-hero__eyebrow { color: currentColor; background: color-mix(in srgb, white 14%, transparent); border-color: color-mix(in srgb, white 22%, transparent); } .wire-split-hero__eyebrow-icon { width: 0.95rem; height: 0.95rem; } .wire-split-hero__title { max-width: 15ch; margin: 1.45rem 0 0; color: var(--wire-color-text); font-size: clamp(2.35rem, 6vw, 4.8rem); font-weight: 650; line-height: 1.02; letter-spacing: -0.05em; } .wire-split-hero[data-size="compact"] .wire-split-hero__title, .wire-split-hero[data-size="sm"] .wire-split-hero__title { font-size: clamp(2rem, 5vw, 3.4rem); } .wire-split-hero[data-size="lg"] .wire-split-hero__title { font-size: clamp(2.75rem, 7vw, 5.5rem); } .wire-split-hero[data-align="center"] .wire-split-hero__title, .wire-split-hero[data-align="right"] .wire-split-hero__title { margin-inline: auto; } .wire-split-hero[data-align="right"] .wire-split-hero__title { margin-right: 0; } .wire-split-hero[data-variant="solid"] .wire-split-hero__title { color: currentColor; } .wire-split-hero__highlight { display: block; color: var(--split-accent); } .wire-split-hero[data-variant="solid"] .wire-split-hero__highlight { color: currentColor; opacity: 0.82; } .wire-split-hero__description { max-width: 42rem; margin: 1.4rem 0 0; color: var(--wire-color-text-muted); font-size: clamp(0.96rem, 1.8vw, 1.1rem); line-height: 1.8; } .wire-split-hero[data-align="center"] .wire-split-hero__description, .wire-split-hero[data-align="right"] .wire-split-hero__description { margin-inline: auto; } .wire-split-hero[data-align="right"] .wire-split-hero__description { margin-right: 0; } .wire-split-hero[data-variant="solid"] .wire-split-hero__description { color: color-mix(in srgb, currentColor 82%, transparent); } .wire-split-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-top: 2rem; } .wire-split-hero__actions--slot:empty { display: none; } .wire-split-hero[data-align="center"] .wire-split-hero__actions { justify-content: center; } .wire-split-hero[data-align="right"] .wire-split-hero__actions { justify-content: flex-end; } .wire-split-hero__action { display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem; min-height: 2.85rem; padding: 0.78rem 1.1rem; border-radius: 0.75rem; font-size: 0.84rem; font-weight: 700; line-height: 1; text-decoration: none; transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease; } .wire-split-hero__action:hover { transform: translateY(-2px); } .wire-split-hero__action--primary { color: var(--split-contrast); background: var(--split-accent); border: 1px solid transparent; box-shadow: 0 10px 26px color-mix(in srgb, var(--split-accent) 22%, transparent); } .wire-split-hero__action--primary:hover { background: var(--split-accent-hover); } .wire-split-hero__action--secondary { color: var(--split-accent); background: transparent; border: 1px solid color-mix(in srgb, var(--split-accent) 42%, var(--wire-color-border)); } .wire-split-hero__action--secondary:hover { background: var(--split-accent-soft); border-color: var(--split-accent); } .wire-split-hero[data-variant="solid"] .wire-split-hero__action--primary { color: var(--split-accent); background: var(--split-contrast); box-shadow: none; } .wire-split-hero[data-variant="solid"] .wire-split-hero__action--secondary { color: currentColor; border-color: color-mix(in srgb, white 46%, transparent); } .wire-split-hero[data-variant="solid"] .wire-split-hero__action--secondary:hover { background: color-mix(in srgb, white 12%, transparent); border-color: color-mix(in srgb, white 68%, transparent); } .wire-split-hero__action-icon { width: 1rem; height: 1rem; } .wire-split-hero__action:focus-visible { outline: 2px solid var(--wire-color-focus); outline-offset: 3px; } .wire-split-hero__trust { display: flex; flex-wrap: wrap; gap: 0.75rem 1.2rem; margin-top: 1.7rem; color: var(--wire-color-text-muted); font-size: 0.78rem; } .wire-split-hero[data-align="center"] .wire-split-hero__trust { justify-content: center; } .wire-split-hero[data-align="right"] .wire-split-hero__trust { justify-content: flex-end; } .wire-split-hero[data-variant="solid"] .wire-split-hero__trust { color: color-mix(in srgb, currentColor 80%, transparent); } .wire-split-hero__trust-item { display: inline-flex; align-items: center; gap: 0.42rem; } .wire-split-hero__trust-item > span:first-child { width: 0.95rem; height: 0.95rem; color: var(--split-accent); } .wire-split-hero[data-variant="solid"] .wire-split-hero__trust-item > span:first-child { color: currentColor; } .wire-split-hero__visual-column { position: relative; } .wire-split-hero__visual-column::before { content: ""; position: absolute; inset: 8% -5% -4% 8%; z-index: -1; background: var(--split-accent-soft); border-radius: 2rem; filter: blur(2px); transform: rotate(2deg); } .wire-split-hero__visual { overflow: hidden; background: linear-gradient(145deg, color-mix(in srgb, var(--split-accent) 7%, transparent), transparent 58%), var(--wire-color-surface-raised); border: 1px solid var(--split-border); border-radius: 1.5rem; box-shadow: 0 1px 0 color-mix(in srgb, white 5%, transparent) inset, 0 30px 76px color-mix(in srgb, black 18%, transparent); } .wire-split-hero[data-visual-style="plain"] .wire-split-hero__visual { overflow: visible; background: transparent; border-color: transparent; border-radius: 0; box-shadow: none; } .wire-split-hero[data-visual-style="soft"] .wire-split-hero__visual { background: linear-gradient(145deg, var(--split-accent-soft), transparent 72%), var(--wire-color-surface-raised); box-shadow: none; } .wire-split-hero[data-variant="solid"] .wire-split-hero__visual { color: var(--wire-color-text); background: var(--wire-color-surface-raised); border-color: color-mix(in srgb, white 24%, transparent); } .wire-split-hero__visual-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--wire-color-surface-soft); } .wire-split-hero__visual-image { display: block; width: 100%; height: 100%; object-fit: cover; } .wire-split-hero__visual-header { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; padding: 1.5rem; } .wire-split-hero__visual-icon, .wire-split-hero__visual-item-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 2.8rem; height: 2.8rem; color: var(--split-accent); background: var(--split-accent-soft); border: 1px solid color-mix(in srgb, var(--split-accent) 20%, transparent); border-radius: 0.9rem; font-size: 1.2rem; } .wire-split-hero__visual-copy, .wire-split-hero__visual-item-copy { min-width: 0; } .wire-split-hero__visual-eyebrow { margin: 0 0 0.35rem; color: var(--split-accent); font-size: 0.69rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; } .wire-split-hero__visual-title { margin: 0; color: var(--wire-color-text); font-size: 1.15rem; font-weight: 650; line-height: 1.35; } .wire-split-hero__visual-description { margin: 0.5rem 0 0; color: var(--wire-color-text-muted); font-size: 0.82rem; line-height: 1.65; } .wire-split-hero__visual-list { display: grid; gap: 0; border-top: 1px solid var(--wire-color-border); } .wire-split-hero__visual-item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.85rem; padding: 1.1rem 1.5rem; } .wire-split-hero__visual-item + .wire-split-hero__visual-item { border-top: 1px solid var(--wire-color-border); } .wire-split-hero__visual-item-icon { width: 2.25rem; height: 2.25rem; border-radius: 0.72rem; font-size: 1rem; } .wire-split-hero__visual-item-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--wire-color-text); font-size: 0.82rem; } .wire-split-hero__visual-item-heading > span { color: var(--split-accent); font-weight: 700; } .wire-split-hero__visual-item p { margin: 0.35rem 0 0; color: var(--wire-color-text-muted); font-size: 0.75rem; line-height: 1.55; } @media (min-width: 960px) { .wire-split-hero__layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4.5rem; } .wire-split-hero[data-ratio="content"] .wire-split-hero__layout { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); } .wire-split-hero[data-ratio="visual"] .wire-split-hero__layout { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); } .wire-split-hero[data-position="left"] .wire-split-hero__content { order: 2; } .wire-split-hero[data-position="left"] .wire-split-hero__visual-column { order: 1; } } @media (max-width: 639px) { .wire-split-hero__inner { padding-block: 3.25rem; } .wire-split-hero__actions { align-items: stretch; } .wire-split-hero__action { width: 100%; } .wire-split-hero__visual-header, .wire-split-hero__visual-item { padding-inline: 1.15rem; } } @media (prefers-reduced-motion: reduce) { .wire-split-hero__action { transition: none; } .wire-split-hero__action:hover { transform: none; } } } }