Contact Us

A contact form with name, email, message fields and a success alert.

Preview

Get in Touch

We'd love to hear from you. Send us a message.

html
<div class="flex justify-center">
  <div class="card max-w-lg w-100">
    <header>
      <h3 class="mb-0">Get in Touch</h3>
      <p class="text-light mb-0">We'd love to hear from you.</p>
    </header>
    <div class="vstack gap-3">
      @if (submitted()) {
        <ng-oat-alert variant="success">✓ Message sent!</ng-oat-alert>
      }
      <div class="grid cols-2">
        <label>First name <input type="text" placeholder="John" /></label>
        <label>Last name <input type="text" placeholder="Doe" /></label>
      </div>
      <label>Email <input type="email" placeholder="you@example.com" /></label>
      <label>Subject
        <select>
          <option value="">Select a topic</option>
          <option>General Inquiry</option>
          <option>Bug Report</option>
        </select>
      </label>
      <label>Message <textarea rows="4" placeholder="Tell us more..."></textarea></label>
      <button class="btn" (click)="submitted.set(true)">Send Message</button>
    </div>
  </div>
</div>

SFC Source

typescript
import { Component, signal } from '@angular/core';
import { NgOatAlert } from '@letsprogram/ng-oat';

@Component({
  selector: 'app-contact',
  imports: [NgOatAlert],
  template: `
    <div class="flex justify-center p-8">
      <div class="card max-w-lg w-100">
        <header>
          <h3 class="mb-0">Get in Touch</h3>
          <p class="text-light mb-0">We'd love to hear from you.</p>
        </header>
        <div class="vstack gap-3">
          @if (submitted()) {
            <ng-oat-alert variant="success">✓ Message sent!</ng-oat-alert>
          }
          <div class="grid cols-2">
            <label>First name <input type="text" placeholder="John" /></label>
            <label>Last name <input type="text" placeholder="Doe" /></label>
          </div>
          <label>Email <input type="email" placeholder="you@example.com" /></label>
          <label>Subject
            <select>
              <option value="">Select a topic</option>
              <option>General Inquiry</option>
              <option>Bug Report</option>
              <option>Feature Request</option>
            </select>
          </label>
          <label>Message <textarea rows="4" placeholder="Tell us more..."></textarea></label>
          <button class="btn" (click)="submitted.set(true)">Send Message</button>
        </div>
      </div>
    </div>
  `,
})
export class ContactComponent {
  submitted = signal(false);
}