Design language tweaks, improvements

This commit is contained in:
2026-05-13 20:44:01 +12:00
parent de8b60b9c3
commit baafafabdb
22 changed files with 1302 additions and 998 deletions
+122
View File
@@ -0,0 +1,122 @@
<script lang="ts">
import Icon from '$lib/components/Icon.svelte';
export let eyebrow = 'Get in touch';
export let title: string;
export let description: string;
export let ctaHref: string;
export let ctaLabel: string;
export let email: string | undefined = undefined;
export let phone: string | undefined = undefined;
export let phoneHref: string | undefined = undefined;
export let showIcons = false;
$: resolvedPhoneHref = phoneHref ?? (phone ? `tel:${phone.replace(/[^0-9+]/g, '')}` : undefined);
</script>
<div class="cta-card">
<span class="cta-card__eyebrow">{eyebrow}</span>
<h2>{title}</h2>
<p class="cta-card__desc">{description}</p>
<a class="btn btn-yellow btn-mobile-center cta-card__btn" href={ctaHref}>{ctaLabel}</a>
{#if email || phone}
<div class="cta-card__links">
{#if email}
<a class="cta-card__link" href="mailto:{email}">
{#if showIcons}<Icon name="fas fa-envelope" />{/if}
{email}
</a>
{/if}
{#if phone && resolvedPhoneHref}
<a class="cta-card__link" href={resolvedPhoneHref}>
{#if showIcons}<Icon name="fas fa-phone" />{/if}
{phone}
</a>
{/if}
</div>
{/if}
</div>
<style>
.cta-card {
background: var(--gw-green);
color: #fff;
border-radius: 28px;
padding: 56px 48px;
text-align: center;
box-shadow: 0 20px 48px rgba(33, 48, 33, 0.18);
}
.cta-card__eyebrow {
display: inline-block;
margin-bottom: 14px;
padding: 7px 12px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.14);
color: #fff;
font-size: 12px;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.cta-card h2 {
margin: 0 0 10px;
font-family: var(--font-head);
font-size: clamp(28px, 3vw, 42px);
font-weight: 800;
line-height: 1.08;
letter-spacing: -0.03em;
color: #fff;
}
.cta-card__desc {
max-width: 460px;
margin: 0 auto 28px;
color: rgba(255, 255, 255, 0.75);
font-size: 16px;
line-height: 1.6;
}
.cta-card__btn {
display: flex;
width: fit-content;
margin: 0 auto;
}
.cta-card__links {
display: flex;
justify-content: center;
gap: 32px;
flex-wrap: wrap;
margin-top: 22px;
}
.cta-card__link {
display: inline-flex;
align-items: center;
gap: 8px;
color: rgba(255, 255, 255, 0.72);
font-size: 15px;
font-weight: 500;
text-decoration: none;
transition: color 0.18s ease;
}
.cta-card__link:hover {
color: #fff;
}
@media (max-width: 768px) {
.cta-card {
padding: 36px 24px;
border-radius: 24px;
}
.cta-card__links {
flex-direction: column;
align-items: center;
gap: 14px;
}
}
</style>