grubflip/messages.html
Sarah 05dd55e0b6 Add GrubFlip consumer app — feed, trades, chat, post, landing, admin login
Full vanilla HTML/CSS/JS consumer app with mobile-first responsive design.
Pages: feed (index), post meal, trades, messages inbox, chat, landing page,
and admin login skeleton. Uses Ava's design tokens throughout.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 05:44:30 +00:00

185 lines
8.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GrubFlip — Messages</title>
<meta name="theme-color" content="#FF6B35">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@600;700;800&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/styles.css">
<link rel="stylesheet" href="css/chat.css">
</head>
<body>
<!-- Header -->
<header class="gf-header">
<div class="gf-header__logo">Grub<span>Flip</span></div>
<div class="gf-header__actions">
<button class="btn-icon" aria-label="New message">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 013 3L7 19l-4 1 1-4L16.5 3.5z"/></svg>
</button>
</div>
</header>
<!-- Messages Inbox -->
<main class="messages-inbox">
<div class="container">
<!-- Search Bar -->
<div class="chat-search">
<svg class="chat-search__icon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
<input type="text" class="chat-search__input" placeholder="Search conversations..." aria-label="Search conversations">
</div>
<!-- Active Trade Context Banner -->
<div class="trade-context-banner">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 16l-4-4m0 0l4-4m-4 4h18M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
<span>3 active trade chats</span>
</div>
<!-- Conversation List -->
<ul class="conversation-list" role="list" aria-label="Conversations">
<!-- Unread conversation -->
<li class="conversation-item conversation-item--unread" role="listitem">
<a href="chat.html" class="conversation-item__link">
<div class="conversation-item__avatar">
<img src="img/avatar-placeholder.svg" alt="" width="48" height="48">
<span class="conversation-item__online" aria-label="Online"></span>
</div>
<div class="conversation-item__content">
<div class="conversation-item__header">
<h3 class="conversation-item__name">Marcus J.</h3>
<time class="conversation-item__time">2m</time>
</div>
<p class="conversation-item__preview">Sounds good! I can meet at the corner of 5th and Main around 6pm 👍</p>
<div class="conversation-item__meta">
<span class="conversation-item__trade-tag">
🍕 Margherita → 🍜 Pad Thai
</span>
<span class="conversation-item__badge" aria-label="2 unread messages">2</span>
</div>
</div>
</a>
</li>
<!-- Unread conversation -->
<li class="conversation-item conversation-item--unread" role="listitem">
<a href="chat.html" class="conversation-item__link">
<div class="conversation-item__avatar">
<img src="img/avatar-placeholder.svg" alt="" width="48" height="48">
</div>
<div class="conversation-item__content">
<div class="conversation-item__header">
<h3 class="conversation-item__name">Priya K.</h3>
<time class="conversation-item__time">15m</time>
</div>
<p class="conversation-item__preview">Hey! Is your butter chicken still available? I've got fresh naan and tikka that I made tonight</p>
<div class="conversation-item__meta">
<span class="conversation-item__trade-tag">
🍗 Butter Chicken → 🫓 Naan & Tikka
</span>
<span class="conversation-item__badge" aria-label="1 unread message">1</span>
</div>
</div>
</a>
</li>
<!-- Read conversation -->
<li class="conversation-item" role="listitem">
<a href="chat.html" class="conversation-item__link">
<div class="conversation-item__avatar">
<img src="img/avatar-placeholder.svg" alt="" width="48" height="48">
<span class="conversation-item__online" aria-label="Online"></span>
</div>
<div class="conversation-item__content">
<div class="conversation-item__header">
<h3 class="conversation-item__name">Alex R.</h3>
<time class="conversation-item__time">1h</time>
</div>
<p class="conversation-item__preview">Trade completed! Thanks for the amazing tacos 🌮🔥</p>
<div class="conversation-item__meta">
<span class="conversation-item__trade-tag conversation-item__trade-tag--complete">
✅ Trade completed
</span>
</div>
</div>
</a>
</li>
<!-- Read conversation -->
<li class="conversation-item" role="listitem">
<a href="chat.html" class="conversation-item__link">
<div class="conversation-item__avatar">
<img src="img/avatar-placeholder.svg" alt="" width="48" height="48">
</div>
<div class="conversation-item__content">
<div class="conversation-item__header">
<h3 class="conversation-item__name">Sofia M.</h3>
<time class="conversation-item__time">3h</time>
</div>
<p class="conversation-item__preview">I'll check if I still have some left after my shift ends at 10</p>
<div class="conversation-item__meta">
<span class="conversation-item__trade-tag">
🥘 Ramen → 🌯 Burrito Bowl
</span>
</div>
</div>
</a>
</li>
<!-- Read conversation -->
<li class="conversation-item" role="listitem">
<a href="chat.html" class="conversation-item__link">
<div class="conversation-item__avatar">
<img src="img/avatar-placeholder.svg" alt="" width="48" height="48">
</div>
<div class="conversation-item__content">
<div class="conversation-item__header">
<h3 class="conversation-item__name">Chris T.</h3>
<time class="conversation-item__time">Yesterday</time>
</div>
<p class="conversation-item__preview">No worries, maybe next time!</p>
<div class="conversation-item__meta">
<span class="conversation-item__trade-tag conversation-item__trade-tag--expired">
⏰ Trade expired
</span>
</div>
</div>
</a>
</li>
</ul>
</div>
</main>
<!-- Bottom Nav -->
<nav class="gf-bottom-nav" aria-label="Main navigation">
<a href="index.html" class="gf-bottom-nav__item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
Feed
</a>
<a href="post.html" class="gf-bottom-nav__item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>
Post
</a>
<a href="messages.html" class="gf-bottom-nav__item active" aria-current="page">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/></svg>
Chat
<span class="gf-bottom-nav__badge">3</span>
</a>
<a href="trades.html" class="gf-bottom-nav__item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 16l-4-4m0 0l4-4m-4 4h18M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
Trades
</a>
<button class="gf-bottom-nav__item" aria-label="Profile">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
Profile
</button>
</nav>
</body>
</html>