add get involved and footer

This commit is contained in:
Yisroel Baum 2026-05-16 22:09:18 +03:00
parent b54522ddfc
commit a621510226
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9

View file

@ -59,6 +59,16 @@ function previousTestimonial(): void {
testimonialIndex.value = (testimonialIndex.value - 1 + testimonials.length) % testimonials.length
}
const newsletterFullName = ref('')
const newsletterEmail = ref('')
function submitNewsletter(submitEvent: Event): void {
submitEvent.preventDefault()
// No backend wiring yet - field values stay in component state.
newsletterFullName.value = ''
newsletterEmail.value = ''
}
interface Sponsor {
name: string
src: string
@ -335,6 +345,63 @@ const projects: Project[] = [
</div>
</div>
</section>
<section class="get-involved" data-cy="get-involved">
<div class="get-involved__card">
<div class="get-involved__copy">
<h2 class="get-involved__heading">Get Involved</h2>
<p class="get-involved__subtext">
Subscribe for updates as we release new content, chaburot and events.
</p>
</div>
<form class="get-involved__form" @submit="submitNewsletter">
<label class="get-involved__field">
<span class="get-involved__label">Full Name</span>
<input
v-model="newsletterFullName"
name="fullName"
type="text"
class="get-involved__input"
autocomplete="name"
/>
</label>
<label class="get-involved__field">
<span class="get-involved__label">Email Address</span>
<input
v-model="newsletterEmail"
name="email"
type="email"
class="get-involved__input"
autocomplete="email"
/>
</label>
<button type="submit" class="get-involved__submit">Submit</button>
</form>
</div>
</section>
<footer class="site-footer" data-cy="footer">
<div class="site-footer__inner">
<div class="site-footer__brand">
<img src="/assets/signature.png" alt="R' Yehoshua Gerzi" class="site-footer__signature" />
<div class="site-footer__social">
<a href="#" class="site-footer__social-link" aria-label="YouTube"></a>
<a href="#" class="site-footer__social-link" aria-label="Spotify"></a>
</div>
</div>
<nav class="site-footer__links">
<ul class="site-footer__link-column">
<li><a href="/media">Torah Media</a></li>
<li><a href="/about">About</a></li>
</ul>
<ul class="site-footer__link-column">
<li><a href="/donate">Donate</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</nav>
</div>
<p class="site-footer__copyright">© Rabbi Gerzi 2025</p>
</footer>
</div>
</template>
@ -874,6 +941,168 @@ const projects: Project[] = [
max-width: 30ch;
}
.get-involved {
background: var(--color-cream);
padding: 0 2rem 5rem;
}
.get-involved__card {
max-width: 1100px;
margin: 0 auto;
background: rgba(255, 255, 255, 0.4);
border-radius: 14px;
padding: 3rem;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 3rem;
align-items: center;
}
.get-involved__heading {
font-family: var(--font-serif);
font-weight: 400;
font-size: clamp(1.6rem, 2.6vw, 2.4rem);
color: var(--color-text);
margin: 0 0 1.25rem 0;
}
.get-involved__subtext {
font-family: var(--font-serif);
font-size: 1rem;
line-height: 1.55;
color: var(--color-text-muted);
margin: 0;
max-width: 36ch;
}
.get-involved__form {
display: flex;
flex-direction: column;
gap: 1rem;
}
.get-involved__field {
display: flex;
flex-direction: column;
gap: 0.4rem;
}
.get-involved__label {
font-family: var(--font-sans);
font-size: 0.85rem;
color: var(--color-text-muted);
}
.get-involved__input {
background: var(--color-cream);
border: 1px solid rgba(0, 0, 0, 0.08);
border-radius: 8px;
padding: 0.75rem 1rem;
font-family: var(--font-sans);
font-size: 1rem;
color: var(--color-text);
}
.get-involved__input:focus {
outline: 2px solid var(--color-slate);
outline-offset: 2px;
}
.get-involved__submit {
background: var(--color-text);
color: var(--color-white);
border: none;
border-radius: 8px;
padding: 0.85rem 1rem;
font-family: var(--font-sans);
font-weight: 500;
font-size: 1rem;
margin-top: 0.5rem;
}
.get-involved__submit:hover {
background: var(--color-slate);
}
.site-footer {
background: var(--color-white);
padding: 4rem 2rem 2rem;
border-top: 1px solid var(--color-border);
}
.site-footer__inner {
max-width: 1100px;
margin: 0 auto 2rem;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem;
align-items: start;
}
.site-footer__brand {
display: flex;
flex-direction: column;
gap: 1rem;
}
.site-footer__signature {
height: 40px;
width: auto;
}
.site-footer__social {
display: flex;
gap: 0.75rem;
}
.site-footer__social-link {
width: 2rem;
height: 2rem;
border-radius: 6px;
border: 1px solid var(--color-border);
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--color-text-muted);
}
.site-footer__social-link:hover {
background: var(--color-cream);
}
.site-footer__links {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1rem;
}
.site-footer__link-column {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 0.6rem;
}
.site-footer__link-column a {
font-family: var(--font-sans);
font-size: 0.95rem;
color: var(--color-text);
}
.site-footer__link-column a:hover {
color: var(--color-slate);
}
.site-footer__copyright {
text-align: center;
font-family: var(--font-sans);
font-size: 0.85rem;
color: var(--color-text-muted);
margin: 0;
}
@media (max-width: 768px) {
.site-header {
padding: 0.75rem 1rem;
@ -910,6 +1139,16 @@ const projects: Project[] = [
.journey__cards {
grid-template-columns: 1fr;
}
.get-involved__card {
grid-template-columns: 1fr;
padding: 2rem;
gap: 2rem;
}
.site-footer__inner {
grid-template-columns: 1fr;
}
}
@media (max-width: 480px) {