Spaces:
Running
Running
File size: 7,831 Bytes
f2323ff | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | <!DOCTYPE html>
<html lang="en" data-theme="midnight">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<meta name="theme-color" content="#07070f" />
<meta name="description" content="GlassGrid — Share Your World" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<title>GlassGrid</title>
<!-- Token Layers: Load order matters -->
<link rel="stylesheet" href="tokens/tokens.css" />
<link rel="stylesheet" href="tokens/theme-midnight.css" id="theme-midnight" />
<link rel="stylesheet" href="tokens/theme-aurora.css" id="theme-aurora" />
<link rel="stylesheet" href="tokens/theme-ember.css" id="theme-ember" />
<link rel="stylesheet" href="tokens/theme-ocean.css" id="theme-ocean" />
<!-- Style Layers -->
<link rel="stylesheet" href="styles/base.css" />
<link rel="stylesheet" href="styles/glass.css" />
<link rel="stylesheet" href="styles/layout.css" />
<link rel="stylesheet" href="styles/components.css" />
<link rel="stylesheet" href="styles/animations.css" />
<!-- Google Fonts -->
<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=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
</head>
<body>
<div class="app-shell">
<!-- ══════════════════════════════════
NAVBAR — Component: Navbar
══════════════════════════════════ -->
<header class="navbar glass-nav" role="banner">
<div class="navbar-inner">
<span class="navbar__logo" aria-label="GlassGrid home">GlassGrid</span>
<div style="display:flex;gap:8px;align-items:center;">
<button class="navbar__icon-btn" aria-label="Notifications" id="btn-notifs">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/>
</svg>
</button>
<button class="navbar__icon-btn" aria-label="New post" id="btn-new-post">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="3" width="18" height="18" rx="2"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/>
</svg>
</button>
</div>
</div>
</header>
<!-- ══════════════════════════════════
CONTENT AREA
══════════════════════════════════ -->
<main class="content-area" role="main">
<!-- ── Story Reel — Component: StoryReel ── -->
<section aria-label="Stories" class="story-reel-wrapper">
<div class="story-reel stagger" id="story-reel">
<!-- Populated by StoryReel.js -->
<!-- Skeleton Loaders -->
<div class="story-item">
<div class="story-item__ring skeleton" style="width:60px;height:60px;border-radius:9999px;"></div>
<div class="skeleton" style="width:48px;height:10px;margin-top:6px;"></div>
</div>
<div class="story-item">
<div class="story-item__ring skeleton" style="width:60px;height:60px;border-radius:9999px;"></div>
<div class="skeleton" style="width:48px;height:10px;margin-top:6px;"></div>
</div>
<div class="story-item">
<div class="story-item__ring skeleton" style="width:60px;height:60px;border-radius:9999px;"></div>
<div class="skeleton" style="width:48px;height:10px;margin-top:6px;"></div>
</div>
</div>
</section>
<!-- ── Feed — Populated by PostCard.js ── -->
<div class="page-container">
<section class="feed-layout stagger" id="feed" aria-label="Home feed" aria-live="polite">
<!-- Skeleton Post Cards -->
<div class="post-card glass" style="padding:16px;">
<div style="display:flex;gap:12px;align-items:center;margin-bottom:12px;">
<div class="skeleton" style="width:40px;height:40px;border-radius:9999px;flex-shrink:0;"></div>
<div style="flex:1;">
<div class="skeleton" style="width:120px;height:13px;margin-bottom:6px;"></div>
<div class="skeleton" style="width:80px;height:10px;"></div>
</div>
</div>
<div class="skeleton" style="width:100%;aspect-ratio:1;border-radius:12px;"></div>
<div style="margin-top:12px;">
<div class="skeleton" style="width:60%;height:11px;"></div>
</div>
</div>
</section>
</div>
</main>
<!-- ══════════════════════════════════
BOTTOM NAVIGATION — Component: Navbar
══════════════════════════════════ -->
<nav class="bottombar glass-bottom" aria-label="Main navigation" role="navigation">
<a class="bottombar-item active" href="index.html" aria-current="page" aria-label="Home feed">
<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>
<span class="bottombar-item__label">Home</span>
<span class="bottombar-item__dot" aria-hidden="true"></span>
</a>
<a class="bottombar-item" href="explore.html" aria-label="Explore">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
<span class="bottombar-item__label">Explore</span>
</a>
<button class="bottombar-item" id="btn-upload" aria-label="Create post">
<div style="width:42px;height:42px;border-radius:14px;background:var(--color-accent-gradient);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow);">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
</div>
</button>
<a class="bottombar-item" href="#" id="nav-notifs" aria-label="Notifications">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/></svg>
<span class="bottombar-item__label">Activity</span>
</a>
<a class="bottombar-item" href="profile.html" aria-label="Your profile">
<div class="avatar avatar--sm" style="border-radius:9999px;overflow:hidden;">
<img src="/assets/images/default-avatar.png" alt="Your profile" width="22" height="22" id="nav-avatar" />
</div>
<span class="bottombar-item__label">Profile</span>
</a>
</nav>
<!-- ══════════════════════════════════
COMMENT MODAL — Component: CommentBox
══════════════════════════════════ -->
<div class="modal-overlay" id="comment-modal" style="display:none;" role="dialog" aria
|