grubflip/index.html
Sarah 358f35c6d0 Add meal detail modal — tap any meal card to see full info
New bottom-sheet modal opens when users tap a meal card in the feed.
Shows full image, description, dietary tags, user profile with rating,
pickup/trade details, and a "Propose a Trade" CTA. Handles own-meal
edit/delete, expired states, and message button. Mobile-first with
desktop centered dialog variant. Resolves the TODO in feed.js:120.

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

58 lines
2.5 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 — Swap Meals Near You</title>
<meta name="description" content="Trade homemade meals with people nearby. Share food, discover new flavors.">
<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">
</head>
<body>
<!-- Header -->
<header class="gf-header">
<div class="gf-header__logo">Grub<span>Flip</span></div>
<div class="gf-header__actions">
<a href="post.html" class="btn btn--primary btn--sm" aria-label="Post a meal">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
Post
</a>
</div>
</header>
<!-- Main Feed -->
<main class="feed">
<div class="container">
<div id="feed-container"></div>
</div>
</main>
<!-- Bottom Nav -->
<nav class="gf-bottom-nav" aria-label="Main navigation">
<a href="index.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="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="trades.html" class="gf-bottom-nav__item" style="position:relative">
<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>
<script src="js/app.js"></script>
<script src="js/meal-detail.js"></script>
<script src="js/feed.js"></script>
</body>
</html>