first pass - kryz inspired

This commit is contained in:
2026-06-10 18:34:23 +00:00
parent 3063d01ec5
commit 771e1e166f
53 changed files with 10521 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
<section class="contact">
<div class="container">
<div class="contact-header">
<img src="assets/svg/small-flower.svg" alt="" class="contact-flower" aria-hidden="true">
<h2>Get in <span class="text-accent">Touch</span></h2>
<p class="section-intro">
Have a song request, want to volunteer, or just want to say hello?
We'd love to hear from you.
</p>
</div>
<div class="contact-grid">
<!-- Contact form -->
<div class="contact-form-wrapper">
<form class="contact-form" (ngSubmit)="onSubmit()" #contactForm="ngForm">
<div class="form-group">
<label for="name">Your Name</label>
<input id="name" type="text" ngModel name="name" required placeholder="Jane Doe">
</div>
<div class="form-group">
<label for="email">Email Address</label>
<input id="email" type="email" ngModel name="email" required placeholder="jane@example.com">
</div>
<div class="form-group">
<label for="subject">Subject</label>
<select id="subject" ngModel name="subject" required>
<option value="" disabled selected>Choose a topic</option>
<option value="general">General Inquiry</option>
<option value="volunteer">Volunteer</option>
<option value="donation">Donation Question</option>
<option value="advertising">Community Announcement</option>
<option value="song">Song Request</option>
<option value="technical">Technical Support</option>
</select>
</div>
<div class="form-group">
<label for="message">Message</label>
<textarea id="message" rows="5" ngModel name="message" required placeholder="Your message..."></textarea>
</div>
<button type="submit" class="btn btn-form">Send Message</button>
</form>
</div>
<!-- Station info -->
<div class="contact-info">
<div class="info-card">
<h4><span aria-hidden="true">📍</span> Studio Location</h4>
<p>42 Pine Street<br>Mountain View, CO 80424</p>
</div>
<div class="info-card">
<h4><span aria-hidden="true">📞</span> Phone</h4>
<p>(970) 555-0198<br>MonFri 8 AM 6 MT</p>
</div>
<div class="info-card">
<h4><span aria-hidden="true">✉️</span> Email</h4>
<p><a href="mailto:hello@kmountainflower.org">hello@kmountainflower.org</a></p>
</div>
<div class="info-card">
<h4><span aria-hidden="true">📡</span> Frequencies</h4>
<p>98.7 FM — Mountain Region<br>Stream: kmountainflower.org/live</p>
</div>
</div>
</div>
</div>
</section>
+135
View File
@@ -0,0 +1,135 @@
@use '../../styles/variables' as *;
@use '../../styles/mixins' as *;
.contact {
padding: $spacing-3xl 0;
background: var(--color-cream);
}
.contact-header {
text-align: center;
margin-bottom: $spacing-2xl;
.contact-flower {
width: 50px;
height: 50px;
margin: 0 auto $spacing-md;
opacity: 0.5;
}
}
.contact-grid {
display: grid;
grid-template-columns: 1.5fr 1fr;
gap: $spacing-2xl;
align-items: start;
}
// Form
.contact-form-wrapper {
background: var(--color-white);
padding: $spacing-xl;
border-radius: $radius-lg;
box-shadow: $shadow-md;
}
.contact-form {
display: flex;
flex-direction: column;
gap: $spacing-md;
}
.form-group {
display: flex;
flex-direction: column;
gap: $spacing-xs;
label {
font-weight: 600;
font-size: 0.9rem;
color: var(--color-primary);
}
input,
select,
textarea {
padding: $spacing-sm;
border: 1px solid var(--color-light);
border-radius: $radius-sm;
font-family: var(--font-primary);
font-size: 0.95rem;
color: var(--color-dark);
background: var(--color-white);
transition: border-color $transition-fast, box-shadow $transition-fast;
&:focus {
outline: none;
border-color: var(--color-accent);
box-shadow: 0 0 0 3px rgba(232, 122, 46, 0.15);
}
&::placeholder {
color: var(--color-medium);
}
}
textarea {
resize: vertical;
min-height: 120px;
}
}
.btn-form {
@include button-style($accent-orange, $neutral-white, $accent-orange-dark);
align-self: flex-start;
font-size: 1rem;
padding: $spacing-sm $spacing-xl;
}
// Info
.contact-info {
display: flex;
flex-direction: column;
gap: $spacing-md;
}
.info-card {
background: var(--color-white);
padding: $spacing-lg;
border-radius: $radius-md;
box-shadow: $shadow-sm;
h4 {
font-size: 1rem;
color: var(--color-primary);
margin-bottom: $spacing-sm;
display: flex;
align-items: center;
gap: $spacing-xs;
span {
font-size: 1.2rem;
}
}
p {
font-size: 0.9rem;
color: var(--color-dark);
line-height: 1.6;
a {
color: var(--color-accent);
}
}
}
@media (max-width: #{$bp-md - 1px}) {
.contact-grid {
grid-template-columns: 1fr;
}
.btn-form {
width: 100%;
justify-content: center;
}
}
+15
View File
@@ -0,0 +1,15 @@
import { Component } from '@angular/core';
import { FormsModule } from '@angular/forms';
@Component({
selector: 'app-contact',
standalone: true,
imports: [FormsModule],
templateUrl: './contact.component.html',
styleUrl: './contact.component.scss',
})
export class ContactComponent {
onSubmit(): void {
alert('Thank you for your message! We will get back to you shortly.');
}
}