add get involved and footer
This commit is contained in:
parent
b54522ddfc
commit
a621510226
1 changed files with 239 additions and 0 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue