1029 lines
29 KiB
Plaintext
1029 lines
29 KiB
Plaintext
component Hero {
|
|
props {
|
|
eyebrow: string = ""
|
|
eyebrowIcon: string = ""
|
|
icon: string = ""
|
|
title: string = "Build something remarkable"
|
|
highlight: string = ""
|
|
description: string = ""
|
|
|
|
align: string = "left"
|
|
size: string = "default"
|
|
color: string = "primary"
|
|
variant: string = "default"
|
|
layout: string = "split"
|
|
visualPosition: string = "right"
|
|
visualStyle: string = "plain"
|
|
showDecorations: boolean = true
|
|
fullBleed: boolean = true
|
|
|
|
visualEyebrow: string = ""
|
|
visualTitle: string = ""
|
|
visualDescription: string = ""
|
|
visualIcon: string = ""
|
|
visualImage: string = ""
|
|
visualAlt: string = ""
|
|
visualItems: unknown[] = []
|
|
|
|
primaryLabel: string = ""
|
|
primaryHref: string = ""
|
|
primaryIcon: string = ""
|
|
primaryTarget: string = ""
|
|
|
|
secondaryLabel: string = ""
|
|
secondaryHref: string = ""
|
|
secondaryIcon: string = ""
|
|
secondaryTarget: string = ""
|
|
|
|
tertiaryLabel: string = ""
|
|
tertiaryHref: string = ""
|
|
tertiaryIcon: string = ""
|
|
tertiaryTarget: string = ""
|
|
|
|
badges: unknown[] = []
|
|
trustItems: unknown[] = []
|
|
maxWidth: string = "xl"
|
|
class: string = ""
|
|
}
|
|
|
|
view {
|
|
<section
|
|
{...attrs}
|
|
data-ui-component="Hero"
|
|
data-size='{size}'
|
|
data-color='{color}'
|
|
data-variant='{variant}'
|
|
data-layout='{layout}'
|
|
data-align='{align}'
|
|
data-visual-position='{visualPosition}'
|
|
data-visual-style='{visualStyle}'
|
|
data-max-width='{maxWidth}'
|
|
data-full-bleed='{fullBleed}'
|
|
aria-label='{title}'
|
|
class='wire-hero {class}'
|
|
>
|
|
{#if showDecorations}
|
|
<div class="wire-hero__decorations" aria-hidden="true">
|
|
<span class="wire-hero__glow wire-hero__glow--one"></span>
|
|
<span class="wire-hero__glow wire-hero__glow--two"></span>
|
|
<span class="wire-hero__grid-pattern"></span>
|
|
</div>
|
|
{/if}
|
|
|
|
<div class="wire-hero__inner">
|
|
<div class="wire-hero__layout">
|
|
<div class="wire-hero__content">
|
|
<slot name="eyebrow"></slot>
|
|
|
|
{#if eyebrow}
|
|
<div class="wire-hero__eyebrow">
|
|
{#if eyebrowIcon}
|
|
<span class='wire-hero__eyebrow-icon {eyebrowIcon}' aria-hidden="true"></span>
|
|
{:else}
|
|
<span class="wire-hero__eyebrow-dot" aria-hidden="true"></span>
|
|
{/if}
|
|
<span>{eyebrow}</span>
|
|
</div>
|
|
{/if}
|
|
|
|
<div class="wire-hero__heading-row">
|
|
{#if icon}
|
|
<div class="wire-hero__icon" aria-hidden="true">
|
|
<span class='{icon}'></span>
|
|
</div>
|
|
{/if}
|
|
|
|
<div class="wire-hero__heading-copy">
|
|
<h1 class="wire-hero__title">
|
|
<span>{title}</span>
|
|
{#if highlight}
|
|
<span class="wire-hero__highlight">{highlight}</span>
|
|
{/if}
|
|
</h1>
|
|
|
|
{#if description}
|
|
<p class="wire-hero__description">{description}</p>
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
|
|
{#if badges.length > 0}
|
|
<div class="wire-hero__badges">
|
|
{#each badges as badge}
|
|
<Badge
|
|
label='{badge.label || badge.title || badge}'
|
|
icon='{badge.icon || ""}'
|
|
color='{badge.color || color}'
|
|
variant='{badge.variant || "soft"}'
|
|
size='{badge.size || "sm"}'
|
|
/>
|
|
{/each}
|
|
</div>
|
|
{/if}
|
|
|
|
<div class="wire-hero__actions">
|
|
{#if primaryLabel}
|
|
<a
|
|
href='{primaryHref || "#"}'
|
|
target='{primaryTarget}'
|
|
rel='{primaryTarget === "_blank" ? "noopener noreferrer" : ""}'
|
|
class="wire-hero__action wire-hero__action--primary"
|
|
>
|
|
<span>{primaryLabel}</span>
|
|
{#if primaryIcon}
|
|
<span class='wire-hero__action-icon {primaryIcon}' aria-hidden="true"></span>
|
|
{/if}
|
|
</a>
|
|
{/if}
|
|
|
|
{#if secondaryLabel}
|
|
<a
|
|
href='{secondaryHref || "#"}'
|
|
target='{secondaryTarget}'
|
|
rel='{secondaryTarget === "_blank" ? "noopener noreferrer" : ""}'
|
|
class="wire-hero__action wire-hero__action--secondary"
|
|
>
|
|
{#if secondaryIcon}
|
|
<span class='wire-hero__action-icon {secondaryIcon}' aria-hidden="true"></span>
|
|
{/if}
|
|
<span>{secondaryLabel}</span>
|
|
</a>
|
|
{/if}
|
|
|
|
{#if tertiaryLabel}
|
|
<a
|
|
href='{tertiaryHref || "#"}'
|
|
target='{tertiaryTarget}'
|
|
rel='{tertiaryTarget === "_blank" ? "noopener noreferrer" : ""}'
|
|
class="wire-hero__action wire-hero__action--tertiary"
|
|
>
|
|
<span>{tertiaryLabel}</span>
|
|
{#if tertiaryIcon}
|
|
<span class='wire-hero__action-icon {tertiaryIcon}' aria-hidden="true"></span>
|
|
{/if}
|
|
</a>
|
|
{/if}
|
|
|
|
<slot name="actions"></slot>
|
|
</div>
|
|
|
|
{#if trustItems.length > 0}
|
|
<div class="wire-hero__trust" aria-label="Highlights">
|
|
{#each trustItems as item}
|
|
<span class="wire-hero__trust-item">
|
|
<span
|
|
class='wire-hero__trust-icon {(item.icon || "icon-[lucide--check-circle-2]")}'
|
|
aria-hidden="true"
|
|
></span>
|
|
<span>{item.label || item.title || item}</span>
|
|
</span>
|
|
{/each}
|
|
</div>
|
|
{/if}
|
|
|
|
<slot name="trust"></slot>
|
|
<slot></slot>
|
|
</div>
|
|
|
|
<div class="wire-hero__visual">
|
|
<slot name="visual"></slot>
|
|
|
|
{#if visualImage || visualTitle || visualDescription || visualItems.length > 0}
|
|
<div class="wire-hero__visual-card">
|
|
{#if visualImage}
|
|
<div class="wire-hero__visual-media">
|
|
<img
|
|
src='{visualImage}'
|
|
alt='{visualAlt || visualTitle || title}'
|
|
class="wire-hero__visual-image"
|
|
/>
|
|
</div>
|
|
{/if}
|
|
|
|
{#if visualIcon || visualEyebrow || visualTitle || visualDescription}
|
|
<div class="wire-hero__visual-header">
|
|
{#if visualIcon}
|
|
<span class="wire-hero__visual-icon" aria-hidden="true">
|
|
<span class='{visualIcon}'></span>
|
|
</span>
|
|
{/if}
|
|
|
|
<div class="wire-hero__visual-copy">
|
|
{#if visualEyebrow}
|
|
<p class="wire-hero__visual-eyebrow">{visualEyebrow}</p>
|
|
{/if}
|
|
|
|
{#if visualTitle}
|
|
<h2 class="wire-hero__visual-title">{visualTitle}</h2>
|
|
{/if}
|
|
|
|
{#if visualDescription}
|
|
<p class="wire-hero__visual-description">{visualDescription}</p>
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
{/if}
|
|
|
|
{#if visualItems.length > 0}
|
|
<div class="wire-hero__visual-items">
|
|
{#each visualItems as item}
|
|
<div class="wire-hero__visual-item">
|
|
{#if item.icon}
|
|
<span class='wire-hero__visual-item-icon {item.icon}' aria-hidden="true"></span>
|
|
{/if}
|
|
|
|
<div class="wire-hero__visual-item-copy">
|
|
<span class="wire-hero__visual-item-label">{item.label || item.title}</span>
|
|
{#if item.description}
|
|
<span class="wire-hero__visual-item-description">{item.description}</span>
|
|
{/if}
|
|
</div>
|
|
|
|
{#if item.value}
|
|
<strong class="wire-hero__visual-item-value">{item.value}</strong>
|
|
{/if}
|
|
</div>
|
|
{/each}
|
|
</div>
|
|
{/if}
|
|
</div>
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="wire-hero__footer">
|
|
<slot name="footer"></slot>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
}
|
|
|
|
style {
|
|
.wire-hero {
|
|
--wire-hero-accent: var(--wire-color-primary);
|
|
--wire-hero-accent-soft: var(--wire-color-primary-soft);
|
|
--wire-hero-accent-muted: var(--wire-color-primary-muted);
|
|
--wire-hero-contrast: var(--wire-color-primary-contrast);
|
|
|
|
position: relative;
|
|
isolation: isolate;
|
|
overflow: hidden;
|
|
width: 100%;
|
|
max-width: 100%;
|
|
box-sizing: border-box;
|
|
color: var(--wire-color-text);
|
|
background: transparent;
|
|
border: 1px solid transparent;
|
|
border-radius: 2rem;
|
|
}
|
|
|
|
.wire-hero[data-full-bleed="true"] {
|
|
width: 100vw;
|
|
max-width: 100vw;
|
|
margin-inline: calc(50% - 50vw);
|
|
border-right-width: 0;
|
|
border-left-width: 0;
|
|
border-radius: 0;
|
|
}
|
|
|
|
@supports (width: 100dvw) {
|
|
.wire-hero[data-full-bleed="true"] {
|
|
width: 100dvw;
|
|
max-width: 100dvw;
|
|
margin-inline: calc(50% - 50dvw);
|
|
}
|
|
}
|
|
|
|
.wire-hero[data-color="secondary"] {
|
|
--wire-hero-accent: var(--wire-color-secondary);
|
|
--wire-hero-accent-soft: var(--wire-color-secondary-soft, var(--wire-color-primary-soft));
|
|
--wire-hero-accent-muted: var(--wire-color-secondary-muted, var(--wire-color-primary-muted));
|
|
--wire-hero-contrast: var(--wire-color-secondary-contrast, var(--wire-color-primary-contrast));
|
|
}
|
|
|
|
.wire-hero[data-color="success"] {
|
|
--wire-hero-accent: var(--wire-color-success);
|
|
--wire-hero-accent-soft: var(--wire-color-success-soft, var(--wire-color-primary-soft));
|
|
--wire-hero-accent-muted: var(--wire-color-success-muted, var(--wire-color-primary-muted));
|
|
--wire-hero-contrast: var(--wire-color-success-contrast, var(--wire-color-primary-contrast));
|
|
}
|
|
|
|
.wire-hero[data-color="info"] {
|
|
--wire-hero-accent: var(--wire-color-info);
|
|
--wire-hero-accent-soft: var(--wire-color-info-soft, var(--wire-color-primary-soft));
|
|
--wire-hero-accent-muted: var(--wire-color-info-muted, var(--wire-color-primary-muted));
|
|
--wire-hero-contrast: var(--wire-color-info-contrast, var(--wire-color-primary-contrast));
|
|
}
|
|
|
|
.wire-hero[data-color="warning"] {
|
|
--wire-hero-accent: var(--wire-color-warning);
|
|
--wire-hero-accent-soft: var(--wire-color-warning-soft, var(--wire-color-primary-soft));
|
|
--wire-hero-accent-muted: var(--wire-color-warning-muted, var(--wire-color-primary-muted));
|
|
--wire-hero-contrast: var(--wire-color-warning-contrast, var(--wire-color-primary-contrast));
|
|
}
|
|
|
|
.wire-hero[data-color="danger"] {
|
|
--wire-hero-accent: var(--wire-color-danger);
|
|
--wire-hero-accent-soft: var(--wire-color-danger-soft, var(--wire-color-primary-soft));
|
|
--wire-hero-accent-muted: var(--wire-color-danger-muted, var(--wire-color-primary-muted));
|
|
--wire-hero-contrast: var(--wire-color-danger-contrast, var(--wire-color-primary-contrast));
|
|
}
|
|
|
|
.wire-hero[data-variant="soft"] {
|
|
background:
|
|
linear-gradient(135deg, var(--wire-hero-accent-soft), transparent 58%),
|
|
var(--wire-color-surface-raised);
|
|
border-color: var(--wire-color-border);
|
|
}
|
|
|
|
.wire-hero[data-variant="raised"] {
|
|
background: var(--wire-color-surface-raised);
|
|
border-color: var(--wire-color-border);
|
|
box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.14);
|
|
}
|
|
|
|
.wire-hero[data-variant="outline"] {
|
|
background: var(--wire-color-surface);
|
|
border-color: color-mix(in srgb, var(--wire-hero-accent) 35%, var(--wire-color-border));
|
|
}
|
|
|
|
.wire-hero[data-variant="gradient"] {
|
|
background:
|
|
radial-gradient(circle at 10% 15%, var(--wire-hero-accent-muted), transparent 32%),
|
|
radial-gradient(circle at 90% 85%, color-mix(in srgb, var(--wire-color-secondary) 24%, transparent), transparent 34%),
|
|
linear-gradient(145deg, var(--wire-color-surface-raised), var(--wire-color-surface));
|
|
border-color: color-mix(in srgb, var(--wire-hero-accent) 24%, var(--wire-color-border));
|
|
}
|
|
|
|
.wire-hero[data-variant="solid"] {
|
|
color: var(--wire-hero-contrast);
|
|
background:
|
|
radial-gradient(circle at 85% 15%, rgb(255 255 255 / 0.16), transparent 30%),
|
|
linear-gradient(135deg, var(--wire-hero-accent), color-mix(in srgb, var(--wire-hero-accent) 76%, black));
|
|
border-color: transparent;
|
|
}
|
|
|
|
.wire-hero[data-variant="minimal"] {
|
|
border-radius: 0;
|
|
}
|
|
|
|
.wire-hero__decorations {
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: -1;
|
|
overflow: hidden;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.wire-hero__glow {
|
|
position: absolute;
|
|
width: 22rem;
|
|
height: 22rem;
|
|
border-radius: 999px;
|
|
background: var(--wire-hero-accent-muted);
|
|
filter: blur(5rem);
|
|
opacity: 0.42;
|
|
}
|
|
|
|
.wire-hero__glow--one {
|
|
top: -12rem;
|
|
right: -8rem;
|
|
}
|
|
|
|
.wire-hero__glow--two {
|
|
bottom: -15rem;
|
|
left: -10rem;
|
|
opacity: 0.22;
|
|
}
|
|
|
|
.wire-hero__grid-pattern {
|
|
position: absolute;
|
|
inset: 0;
|
|
opacity: 0.035;
|
|
background-image:
|
|
linear-gradient(var(--wire-color-text) 1px, transparent 1px),
|
|
linear-gradient(90deg, var(--wire-color-text) 1px, transparent 1px);
|
|
background-size: 2.5rem 2.5rem;
|
|
mask-image: linear-gradient(to bottom, black, transparent 84%);
|
|
}
|
|
|
|
.wire-hero__inner {
|
|
width: 100%;
|
|
max-width: 80rem;
|
|
margin-inline: auto;
|
|
padding: 3rem 1.25rem;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.wire-hero[data-max-width="compact"] .wire-hero__inner,
|
|
.wire-hero[data-max-width="sm"] .wire-hero__inner {
|
|
max-width: 64rem;
|
|
}
|
|
|
|
.wire-hero[data-max-width="default"] .wire-hero__inner,
|
|
.wire-hero[data-max-width="lg"] .wire-hero__inner {
|
|
max-width: 72rem;
|
|
}
|
|
|
|
.wire-hero[data-max-width="wide"] .wire-hero__inner,
|
|
.wire-hero[data-max-width="xl"] .wire-hero__inner {
|
|
max-width: 80rem;
|
|
}
|
|
|
|
.wire-hero[data-max-width="2xl"] .wire-hero__inner {
|
|
max-width: 90rem;
|
|
}
|
|
|
|
.wire-hero[data-max-width="full"] .wire-hero__inner {
|
|
max-width: none;
|
|
}
|
|
|
|
.wire-hero[data-size="compact"] .wire-hero__inner,
|
|
.wire-hero[data-size="sm"] .wire-hero__inner {
|
|
padding-block: 2rem;
|
|
}
|
|
|
|
.wire-hero[data-size="lg"] .wire-hero__inner,
|
|
.wire-hero[data-size="large"] .wire-hero__inner {
|
|
padding-block: 4rem;
|
|
}
|
|
|
|
.wire-hero[data-size="xl"] .wire-hero__inner {
|
|
padding-block: 5rem;
|
|
}
|
|
|
|
.wire-hero__layout {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 2.5rem;
|
|
}
|
|
|
|
.wire-hero__content {
|
|
min-width: 0;
|
|
max-width: 46rem;
|
|
}
|
|
|
|
.wire-hero[data-align="center"] .wire-hero__content {
|
|
margin-inline: auto;
|
|
text-align: center;
|
|
}
|
|
|
|
.wire-hero[data-align="right"] .wire-hero__content {
|
|
margin-left: auto;
|
|
text-align: right;
|
|
}
|
|
|
|
.wire-hero__eyebrow {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.6rem;
|
|
width: fit-content;
|
|
margin-bottom: 1.4rem;
|
|
padding: 0.55rem 0.9rem;
|
|
color: var(--wire-hero-accent);
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
letter-spacing: 0.04em;
|
|
background: var(--wire-hero-accent-soft);
|
|
border: 1px solid color-mix(in srgb, var(--wire-hero-accent) 24%, transparent);
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.wire-hero[data-align="center"] .wire-hero__eyebrow {
|
|
margin-inline: auto;
|
|
}
|
|
|
|
.wire-hero[data-align="right"] .wire-hero__eyebrow {
|
|
margin-left: auto;
|
|
}
|
|
|
|
.wire-hero__eyebrow-dot {
|
|
width: 0.45rem;
|
|
height: 0.45rem;
|
|
flex: 0 0 auto;
|
|
background: currentColor;
|
|
border-radius: 999px;
|
|
box-shadow: 0 0 0 0.25rem color-mix(in srgb, currentColor 12%, transparent);
|
|
}
|
|
|
|
.wire-hero__eyebrow-icon {
|
|
width: 0.9rem;
|
|
height: 0.9rem;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.wire-hero__heading-row {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 1.25rem;
|
|
}
|
|
|
|
.wire-hero[data-align="center"] .wire-hero__heading-row {
|
|
justify-content: center;
|
|
}
|
|
|
|
.wire-hero[data-align="right"] .wire-hero__heading-row {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.wire-hero__heading-copy {
|
|
min-width: 0;
|
|
}
|
|
|
|
.wire-hero__icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 3.5rem;
|
|
height: 3.5rem;
|
|
flex: 0 0 auto;
|
|
color: var(--wire-hero-accent);
|
|
font-size: 1.5rem;
|
|
background: var(--wire-hero-accent-soft);
|
|
border-radius: 1.1rem;
|
|
}
|
|
|
|
.wire-hero__title {
|
|
max-width: 18ch;
|
|
margin: 0;
|
|
color: var(--wire-color-text);
|
|
font-size: clamp(2.35rem, 6vw, 4.8rem);
|
|
font-weight: 650;
|
|
line-height: 1.02;
|
|
letter-spacing: -0.045em;
|
|
text-wrap: balance;
|
|
}
|
|
|
|
.wire-hero[data-size="compact"] .wire-hero__title,
|
|
.wire-hero[data-size="sm"] .wire-hero__title {
|
|
font-size: clamp(2rem, 5vw, 3.4rem);
|
|
}
|
|
|
|
.wire-hero[data-size="lg"] .wire-hero__title,
|
|
.wire-hero[data-size="large"] .wire-hero__title {
|
|
font-size: clamp(2.8rem, 7vw, 5.6rem);
|
|
}
|
|
|
|
.wire-hero[data-size="xl"] .wire-hero__title {
|
|
font-size: clamp(3.1rem, 8vw, 6.4rem);
|
|
}
|
|
|
|
.wire-hero[data-variant="solid"] .wire-hero__title,
|
|
.wire-hero[data-variant="solid"] .wire-hero__description,
|
|
.wire-hero[data-variant="solid"] .wire-hero__trust {
|
|
color: var(--wire-hero-contrast);
|
|
}
|
|
|
|
.wire-hero__highlight {
|
|
display: block;
|
|
color: var(--wire-hero-accent);
|
|
background: linear-gradient(90deg, var(--wire-hero-accent), var(--wire-color-secondary));
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
|
|
.wire-hero[data-variant="solid"] .wire-hero__highlight {
|
|
color: inherit;
|
|
background: none;
|
|
-webkit-text-fill-color: currentColor;
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.wire-hero__description {
|
|
max-width: 42rem;
|
|
margin: 1.5rem 0 0;
|
|
color: var(--wire-color-text-muted);
|
|
font-size: 1.05rem;
|
|
line-height: 1.8;
|
|
text-wrap: pretty;
|
|
}
|
|
|
|
.wire-hero[data-align="center"] .wire-hero__title,
|
|
.wire-hero[data-align="center"] .wire-hero__description {
|
|
margin-inline: auto;
|
|
}
|
|
|
|
.wire-hero[data-align="right"] .wire-hero__title,
|
|
.wire-hero[data-align="right"] .wire-hero__description {
|
|
margin-left: auto;
|
|
}
|
|
|
|
.wire-hero__badges,
|
|
.wire-hero__actions,
|
|
.wire-hero__trust {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
}
|
|
|
|
.wire-hero__badges {
|
|
gap: 0.5rem;
|
|
margin-top: 1.5rem;
|
|
}
|
|
|
|
.wire-hero__actions {
|
|
gap: 0.75rem;
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
.wire-hero__actions:empty {
|
|
display: none;
|
|
}
|
|
|
|
.wire-hero__action {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 0.6rem;
|
|
min-height: 3rem;
|
|
padding: 0.75rem 1.15rem;
|
|
font-size: 0.9rem;
|
|
font-weight: 650;
|
|
line-height: 1.2;
|
|
text-decoration: none;
|
|
border: 1px solid transparent;
|
|
border-radius: 0.85rem;
|
|
transition:
|
|
transform 160ms ease,
|
|
background-color 160ms ease,
|
|
border-color 160ms ease,
|
|
color 160ms ease,
|
|
box-shadow 160ms ease;
|
|
}
|
|
|
|
.wire-hero__action:hover {
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.wire-hero__action:focus-visible {
|
|
outline: 3px solid color-mix(in srgb, var(--wire-hero-accent) 30%, transparent);
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
.wire-hero__action--primary {
|
|
color: var(--wire-hero-contrast);
|
|
background: var(--wire-hero-accent);
|
|
box-shadow: 0 0.75rem 2rem color-mix(in srgb, var(--wire-hero-accent) 24%, transparent);
|
|
}
|
|
|
|
.wire-hero__action--primary:hover {
|
|
box-shadow: 0 1rem 2.4rem color-mix(in srgb, var(--wire-hero-accent) 34%, transparent);
|
|
}
|
|
|
|
.wire-hero__action--secondary {
|
|
color: var(--wire-hero-accent);
|
|
background: color-mix(in srgb, var(--wire-color-surface-raised) 76%, transparent);
|
|
border-color: color-mix(in srgb, var(--wire-hero-accent) 45%, var(--wire-color-border));
|
|
}
|
|
|
|
.wire-hero__action--secondary:hover {
|
|
background: var(--wire-hero-accent-soft);
|
|
}
|
|
|
|
.wire-hero__action--tertiary {
|
|
color: var(--wire-color-text-muted);
|
|
background: transparent;
|
|
}
|
|
|
|
.wire-hero__action--tertiary:hover {
|
|
color: var(--wire-hero-accent);
|
|
background: var(--wire-hero-accent-soft);
|
|
}
|
|
|
|
.wire-hero__action-icon {
|
|
width: 1rem;
|
|
height: 1rem;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.wire-hero__trust {
|
|
gap: 0.75rem 1.25rem;
|
|
margin-top: 1.75rem;
|
|
color: var(--wire-color-text-muted);
|
|
font-size: 0.82rem;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.wire-hero__trust-item {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.45rem;
|
|
}
|
|
|
|
.wire-hero__trust-icon {
|
|
width: 1rem;
|
|
height: 1rem;
|
|
flex: 0 0 auto;
|
|
color: var(--wire-hero-accent);
|
|
}
|
|
|
|
.wire-hero[data-align="center"] .wire-hero__badges,
|
|
.wire-hero[data-align="center"] .wire-hero__actions,
|
|
.wire-hero[data-align="center"] .wire-hero__trust {
|
|
justify-content: center;
|
|
}
|
|
|
|
.wire-hero[data-align="right"] .wire-hero__badges,
|
|
.wire-hero[data-align="right"] .wire-hero__actions,
|
|
.wire-hero[data-align="right"] .wire-hero__trust {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.wire-hero__visual {
|
|
position: relative;
|
|
min-width: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.wire-hero__visual:not(:has(> *)) {
|
|
display: none;
|
|
}
|
|
|
|
.wire-hero__layout:not(:has(.wire-hero__visual > *)) {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.wire-hero[data-visual-style="card"] .wire-hero__visual {
|
|
padding: 0.75rem;
|
|
background: color-mix(in srgb, var(--wire-color-surface-raised) 88%, transparent);
|
|
border: 1px solid var(--wire-color-border);
|
|
border-radius: 1.75rem;
|
|
box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.14);
|
|
}
|
|
|
|
.wire-hero[data-visual-style="soft"] .wire-hero__visual {
|
|
padding: 1.25rem;
|
|
background: var(--wire-hero-accent-soft);
|
|
border-radius: 1.75rem;
|
|
}
|
|
|
|
.wire-hero__visual > * {
|
|
width: 100%;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.wire-hero__visual-card {
|
|
width: 100%;
|
|
overflow: hidden;
|
|
padding: 1.25rem;
|
|
color: var(--wire-color-text);
|
|
background: color-mix(in srgb, var(--wire-color-surface-raised) 92%, transparent);
|
|
border: 1px solid color-mix(in srgb, var(--wire-hero-accent) 18%, var(--wire-color-border));
|
|
border-radius: 1.75rem;
|
|
box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.14);
|
|
backdrop-filter: blur(1rem);
|
|
}
|
|
|
|
.wire-hero__visual-media {
|
|
overflow: hidden;
|
|
margin: -0.5rem -0.5rem 1.25rem;
|
|
border-radius: 1.25rem;
|
|
}
|
|
|
|
.wire-hero__visual-image {
|
|
display: block;
|
|
width: 100%;
|
|
aspect-ratio: 16 / 10;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.wire-hero__visual-header {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.wire-hero__visual-icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 3rem;
|
|
height: 3rem;
|
|
flex: 0 0 auto;
|
|
color: var(--wire-hero-accent);
|
|
background: var(--wire-hero-accent-soft);
|
|
border-radius: 1rem;
|
|
}
|
|
|
|
.wire-hero__visual-icon > span {
|
|
width: 1.35rem;
|
|
height: 1.35rem;
|
|
}
|
|
|
|
.wire-hero__visual-copy {
|
|
min-width: 0;
|
|
}
|
|
|
|
.wire-hero__visual-eyebrow {
|
|
margin: 0 0 0.35rem;
|
|
color: var(--wire-hero-accent);
|
|
font-size: 0.72rem;
|
|
font-weight: 600;
|
|
letter-spacing: 0.12em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.wire-hero__visual-title {
|
|
margin: 0;
|
|
color: var(--wire-color-text);
|
|
font-size: 1.35rem;
|
|
font-weight: 650;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.wire-hero__visual-description {
|
|
margin: 0.55rem 0 0;
|
|
color: var(--wire-color-text-muted);
|
|
font-size: 0.9rem;
|
|
line-height: 1.65;
|
|
}
|
|
|
|
.wire-hero__visual-items {
|
|
display: grid;
|
|
gap: 0.75rem;
|
|
margin-top: 1.25rem;
|
|
}
|
|
|
|
.wire-hero__visual-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.8rem;
|
|
min-width: 0;
|
|
padding: 0.9rem 1rem;
|
|
background: color-mix(in srgb, var(--wire-color-surface) 82%, transparent);
|
|
border: 1px solid var(--wire-color-border);
|
|
border-radius: 1rem;
|
|
}
|
|
|
|
.wire-hero__visual-item-icon {
|
|
width: 1.1rem;
|
|
height: 1.1rem;
|
|
flex: 0 0 auto;
|
|
color: var(--wire-hero-accent);
|
|
}
|
|
|
|
.wire-hero__visual-item-copy {
|
|
display: flex;
|
|
flex: 1 1 auto;
|
|
flex-direction: column;
|
|
min-width: 0;
|
|
}
|
|
|
|
.wire-hero__visual-item-label {
|
|
color: var(--wire-color-text);
|
|
font-size: 0.88rem;
|
|
font-weight: 600;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.wire-hero__visual-item-description {
|
|
margin-top: 0.15rem;
|
|
color: var(--wire-color-text-muted);
|
|
font-size: 0.76rem;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.wire-hero__visual-item-value {
|
|
flex: 0 0 auto;
|
|
color: var(--wire-hero-accent);
|
|
font-size: 0.9rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.wire-hero[data-variant="solid"] .wire-hero__visual-card,
|
|
.wire-hero[data-variant="solid"] .wire-hero__visual-title,
|
|
.wire-hero[data-variant="solid"] .wire-hero__visual-item-label {
|
|
color: var(--wire-hero-contrast);
|
|
}
|
|
|
|
.wire-hero[data-variant="solid"] .wire-hero__visual-description,
|
|
.wire-hero[data-variant="solid"] .wire-hero__visual-item-description {
|
|
color: color-mix(in srgb, var(--wire-hero-contrast) 74%, transparent);
|
|
}
|
|
|
|
.wire-hero__footer:not(:has(> *)) {
|
|
display: none;
|
|
}
|
|
|
|
.wire-hero__footer {
|
|
margin-top: 2rem;
|
|
padding-top: 1.5rem;
|
|
border-top: 1px solid var(--wire-color-border);
|
|
}
|
|
|
|
@media (min-width: 640px) {
|
|
.wire-hero__inner {
|
|
padding-inline: 2rem;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.wire-hero__actions {
|
|
gap: 0.9rem;
|
|
}
|
|
|
|
.wire-hero__action {
|
|
padding-inline: 1.35rem;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.wire-hero__inner {
|
|
padding-inline: 3rem;
|
|
}
|
|
|
|
.wire-hero[data-layout="split"] .wire-hero__layout {
|
|
grid-template-columns: minmax(0, 1.08fr) minmax(20rem, 0.92fr);
|
|
gap: 4rem;
|
|
}
|
|
|
|
.wire-hero[data-layout="stacked"] .wire-hero__layout,
|
|
.wire-hero[data-layout="content"] .wire-hero__layout {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.wire-hero[data-layout="stacked"] .wire-hero__content {
|
|
max-width: 58rem;
|
|
}
|
|
|
|
.wire-hero[data-layout="stacked"] .wire-hero__visual {
|
|
max-width: 68rem;
|
|
}
|
|
|
|
.wire-hero[data-layout="content"] .wire-hero__visual {
|
|
display: none;
|
|
}
|
|
|
|
.wire-hero[data-visual-position="left"] .wire-hero__visual {
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.wire-hero[data-visual-position="left"] .wire-hero__content {
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.wire-hero[data-layout="stacked"][data-visual-position="left"] .wire-hero__visual,
|
|
.wire-hero[data-layout="stacked"][data-visual-position="left"] .wire-hero__content {
|
|
grid-column: 1;
|
|
}
|
|
|
|
.wire-hero[data-layout="stacked"][data-visual-position="left"] .wire-hero__visual {
|
|
grid-row: 1;
|
|
}
|
|
|
|
.wire-hero[data-layout="stacked"][data-visual-position="left"] .wire-hero__content {
|
|
grid-row: 2;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 639px) {
|
|
.wire-hero:not([data-full-bleed="true"]) {
|
|
border-radius: 1.25rem;
|
|
}
|
|
|
|
.wire-hero__inner {
|
|
padding: 2.25rem 1rem;
|
|
}
|
|
|
|
.wire-hero__heading-row {
|
|
gap: 0.85rem;
|
|
}
|
|
|
|
.wire-hero__icon {
|
|
width: 2.75rem;
|
|
height: 2.75rem;
|
|
font-size: 1.2rem;
|
|
border-radius: 0.85rem;
|
|
}
|
|
|
|
.wire-hero__description {
|
|
font-size: 0.95rem;
|
|
line-height: 1.7;
|
|
}
|
|
|
|
.wire-hero__actions {
|
|
align-items: stretch;
|
|
}
|
|
|
|
.wire-hero__action {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.wire-hero__action {
|
|
transition: none;
|
|
}
|
|
|
|
.wire-hero__action:hover {
|
|
transform: none;
|
|
}
|
|
}
|
|
}
|
|
}
|