feat: add Angular frontend skeleton

This commit is contained in:
2026-04-29 12:17:07 +02:00
parent 35ae0278b7
commit 5f30029f4b
20 changed files with 818 additions and 3 deletions

View File

@@ -0,0 +1,72 @@
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { MatCardModule } from '@angular/material/card';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
@Component({
standalone: true,
imports: [MatCardModule, MatFormFieldModule, MatInputModule],
template: `
<section class="page">
<header class="page-header">
<p class="eyebrow">Staff check-in</p>
<h1>Mobile-friendly placeholder</h1>
<p class="supporting">
This route is ready for the authenticated token preview and check-in confirmation flow.
</p>
</header>
<mat-card class="content-card">
<mat-card-title>Future scan/lookup input</mat-card-title>
<mat-card-content>
<mat-form-field appearance="outline" class="full-width">
<mat-label>Opaque QR token</mat-label>
<input matInput placeholder="Paste or scan token" readonly>
</mat-form-field>
</mat-card-content>
</mat-card>
</section>
`,
styles: [`
.page {
max-width: 760px;
margin: 0 auto;
}
.page-header {
margin-bottom: 22px;
}
.eyebrow {
margin: 0 0 10px;
color: var(--azionelab-accent);
text-transform: uppercase;
font-size: 0.78rem;
font-weight: 700;
}
h1 {
margin: 0;
font-size: clamp(2rem, 4vw, 3rem);
}
.supporting {
color: var(--azionelab-muted);
line-height: 1.6;
max-width: 50ch;
}
.content-card {
border-radius: 8px;
border: 1px solid var(--azionelab-border);
background: var(--azionelab-surface);
box-shadow: var(--azionelab-shadow);
}
.full-width {
width: 100%;
}
`],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class CheckInPlaceholderPageComponent {}