Phase 2
Base app architecture:
Route groups for customer, staff and owner.
* Reusable design system with around 20 UI components.
* Complete Prisma schema.
* Authentication with email/password and Google.
* Role and permission model.
* Protected routes.
* Clean separation between features, services, components and shared utilities.
This commit is contained in:
201 files changed
+31984
No files matched your search
@@ -0,0 +1,121 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<script>
|
||||
window.FontAwesomeConfig = { autoReplaceSvg: 'nest' };
|
||||
</script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
||||
<title>Appointment Details — TrimTime</title>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||||
<script>
|
||||
tailwind.config = {
|
||||
theme: {
|
||||
extend: {
|
||||
colors: { ink: '#111b15', stone: '#f4f6f4', surface: '#ffffff', muted: '#6c7870', line: '#e1e7e2', accent: '#10b981' },
|
||||
fontFamily: { sans: ['Inter', 'sans-serif'] },
|
||||
borderRadius: { jumbo: '1.5rem', tile: '1rem' }
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-stone text-ink min-h-screen pb-32">
|
||||
|
||||
<header class="px-6 pt-12 pb-6 flex items-center justify-between">
|
||||
<button onclick="history.back()" class="w-10 h-10 rounded-full border border-line bg-white flex items-center justify-center">
|
||||
<i class="fa-solid fa-arrow-left text-sm"></i>
|
||||
</button>
|
||||
<h1 class="text-lg font-bold tracking-tight">Appointment Details</h1>
|
||||
<div class="w-10"></div>
|
||||
</header>
|
||||
|
||||
<main class="px-6 space-y-5">
|
||||
|
||||
<div class="flex justify-center">
|
||||
<span class="inline-block px-4 py-1.5 bg-accent/10 text-accent text-[10px] font-bold uppercase tracking-widest rounded-full">Confirmed</span>
|
||||
</div>
|
||||
|
||||
<!-- Details Card -->
|
||||
<div class="bg-white p-6 rounded-jumbo border border-line shadow-sm space-y-6">
|
||||
<div class="flex items-center gap-4 pb-6 border-b border-line">
|
||||
<img src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-3.jpg" class="w-14 h-14 rounded-full object-cover" alt="Marcus Reed">
|
||||
<div>
|
||||
<h2 class="text-lg font-bold">Standard Cut</h2>
|
||||
<p class="text-sm text-muted">with Marcus Reed</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-2 gap-6">
|
||||
<div>
|
||||
<span class="text-[10px] font-bold uppercase tracking-widest text-muted block mb-1">Date</span>
|
||||
<p class="text-sm font-bold">Sat, Oct 12</p>
|
||||
</div>
|
||||
<div>
|
||||
<span class="text-[10px] font-bold uppercase tracking-widest text-muted block mb-1">Time</span>
|
||||
<p class="text-sm font-bold">2:00 PM</p>
|
||||
</div>
|
||||
<div>
|
||||
<span class="text-[10px] font-bold uppercase tracking-widest text-muted block mb-1">Duration</span>
|
||||
<p class="text-sm font-bold">30 min</p>
|
||||
</div>
|
||||
<div>
|
||||
<span class="text-[10px] font-bold uppercase tracking-widest text-muted block mb-1">Price</span>
|
||||
<p class="text-sm font-bold">£22.00</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pt-6 border-t border-line">
|
||||
<span class="text-[10px] font-bold uppercase tracking-widest text-muted block mb-1">Location</span>
|
||||
<p class="text-sm font-medium">Blake Heritage Barbershop</p>
|
||||
<p class="text-xs text-muted mt-0.5">79 Joel Street, HA6 1LW, Northwood</p>
|
||||
</div>
|
||||
|
||||
<div class="pt-6 border-t border-line">
|
||||
<span class="text-[10px] font-bold uppercase tracking-widest text-muted block mb-2">Your Notes</span>
|
||||
<p class="text-sm text-gray-700 italic">Keep length on top, skin fade on the sides.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Policy Note -->
|
||||
<div class="bg-white p-5 rounded-jumbo border border-line flex items-start gap-3">
|
||||
<i class="fa-solid fa-circle-info text-muted mt-0.5"></i>
|
||||
<p class="text-xs text-muted leading-relaxed">Free cancellation or rescheduling up to 24 hours before your appointment. Later changes may incur a fee.</p>
|
||||
</div>
|
||||
|
||||
<!-- Actions -->
|
||||
<div class="space-y-3 pt-2">
|
||||
<button class="w-full py-4 bg-white border border-line rounded-jumbo flex items-center justify-center gap-2 text-sm font-bold">
|
||||
<i class="fa-solid fa-calendar-plus text-accent"></i> Add to Calendar
|
||||
</button>
|
||||
<a href="27-NextChair - Customer - Reschedule.html" class="w-full py-4 bg-white border border-line rounded-jumbo flex items-center justify-center gap-2 text-sm font-bold">
|
||||
<i class="fa-solid fa-clock-rotate-left text-accent"></i> Reschedule
|
||||
</a>
|
||||
<button class="w-full py-4 border border-red-200 text-red-500 rounded-jumbo flex items-center justify-center gap-2 text-sm font-bold hover:bg-red-50 transition-colors">
|
||||
<i class="fa-solid fa-xmark"></i> Cancel Appointment
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<!-- Bottom Navigation -->
|
||||
<nav class="fixed bottom-0 left-0 right-0 z-50 bg-white border-t border-line py-2 px-5 flex justify-between items-center">
|
||||
<a href="23-NextChair - Customer - Home (Logged In).html" class="flex flex-col items-center gap-1 text-muted hover:text-ink transition-colors">
|
||||
<i class="fa-solid fa-house text-xl"></i>
|
||||
<span class="text-[10px] font-bold uppercase tracking-widest">Home</span>
|
||||
</a>
|
||||
<a href="24-NextChair - Customer - Appointments Upcoming.html" class="flex flex-col items-center gap-1 text-ink">
|
||||
<i class="fa-solid fa-calendar-check text-xl"></i>
|
||||
<span class="text-[10px] font-bold uppercase tracking-widest">Bookings</span>
|
||||
</a>
|
||||
<a href="10-NextChair - Customer - Setting.html" class="flex flex-col items-center gap-1 text-muted hover:text-ink transition-colors">
|
||||
<i class="fa-solid fa-user text-xl"></i>
|
||||
<span class="text-[10px] font-bold uppercase tracking-widest">Settings</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user